User Tag List

Resultados 1 al 8 de 8

Tema: [GUIA] CIFS&BIND - Usar unidad de red como "sdcard" en android

  1. #1

    Fecha de ingreso
    Dec 2011
    Mensajes
    2,411
    Mencionado
    55 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    9
    Agradecer Thanks Received 
    419
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    7

    Post [GUIA] CIFS&BIND - Usar unidad de red como "sdcard" en android

    CIFS & DirectoryBind (& Sambadroid), un paquete de utilidades con utilidades muy interesantes. [CIFS&BIND]

    Uso de este artículo
    Se permite utilizar este articulo, ya sea copiandolo entero o partes de el, o referenciándola mediante un link, a cualquiera que lo desee, con la única condición de que se mantenga el autor y un enlace a la fuente original de este artículo, y que se encuentra en mi blog.

    Para actualizaciones sobre este artículo, sugiero visitar el enlace mencionado anteriormente

    Introducción
    Hasta hace poco venía hablando en foros sobre el uso de algunas aplicaciones que, en mi uso diario, resultaban tan normales y "triviales", que no me habia parado a pensar que quizás existan personas que no se enteran de lo que comento, o no pueden seguirme por que no han tenido oportunidad de probar estas utilidades, o simplemente las conocen pero no ven en que pueden serles útiles.

    Este pequeño articulo será para explicar algunas de las que estoy utilizando y que, en mi opinión, resultan de lo mas interesantes y prácticas, además de que intento explicar un uso un poco mas "avanzado" en términos de cómo implementar estas herramientas de manera de generar un escenario de ejecución y/o pruebas interesante en un entorno de dispositivos Android. En foros, me referiré a este sistema como Cifs&Bind, por si alguien me quiere hacer alguna pregunta al respecto.

    ¿Para que sirve todo esto?
    Por si alguien no se aclara para que sirve todo esto, lo diré de una manera mas bien simple: Instalar y cargar juegos y aplicaciones con sus datos a una unidad de red, para no tener que utilizar la memoria de nuestro dispositivo android.

    Un ejemplo práctico de uso, cuando recibo un dispositivo para probarlo y hacer una review, lo primero que verifico es si acaso tiene soporte CIFS. En caso de tenerlo, simplemente enlazo el directorio que tengo preparado y en unos pocos minutos ya tengo instalado todos los programas, juegos (con sus datos incluídos), ficheros de multimedia, etc, para probar la tablet,. En pocas palabras, en unos 10 minutos tengo el sistema totalmente instalado, con unas 100 aplicaciones instaladas, y todo listo para ejecutar en el dispositivo (Tablet, consola, android tv, móvil, etc).

    ¿Y para que podría ser útil para un usuario normal, que no prueba tantos dispositivos de manera tan frecuente?, pues hay una razón importante, y es que si deseas "limpiar" tu tablet y empezar de cero, ya sea flasheando o formateando la sdcard interna, o volviendo a los valores de fábrica, en pocos minutos puedes tener tu dispositivo android limpio, funcional y con las aplicaciones actualizadas, y lo mas importantes, sin descargar nada de internet. Esto significa que podrías llevarte el contenido del directorio instalado en un disco duro, pendrive, etc, y no perder Megas de tu tarifa de datos, para descargar datos de una aplicación (a excepción de que descargues una actualización), y simplemente utilizar la conexión de datos de, por ejemplo, tu movil o tablet, para verificar licencias y ese tipo de cosas.

    Como ya se puede suponer, este sistema es bastante "flexible", ya que con unos pocos cambios se podría enlazar a un dispositivo USB, o a una microSD, etc. y toda la estructura seguiría siendo válida.

    Todo este sistema de directorios surgió como idea base cuando estaba realizando el firmware Recustom de la JXDS7300B, y he seguido implementando la idea, extendiéndola de manera de hacerla mas práctica, pero no por eso mas complicada (que no lo es, aunque parezca lo contrario)

    Para quienes tengan conocimientos avanzados de Android, estaré encantado de recibir vuestros comentarios/críticas sobre lo que expongo. Mis conocimientos están basados en mi experiencia utilizando y probando dispositivos, pero evidentemente puedo cometer errores, y por tanto agradezco cualquier correccción al respecto que se pueda hacer.

    Este artículo está dedicado principalmente a los usuarios con menos conocimientos, pero con inquietudes de hacer cosas, y a los cuales intento explicarles las cosas que hago en términos que podamos entender todos. (o lo intento al menos)

    Nota: La primera parte de este artículo intenta explicar de donde sale la idea y como llego a implementarla. La seguna parte comenta en pocos pasos como implementarla, asi que si quieres evitarte mi explicación, que mas que explicar incluso puede llegar a confundir, puedes saltarte directamente a la última sección de este artículo (Descargas y puesta en funcionamiento), con descargas y explicaciones breves sobre los pasos a seguir.

    Nota2: Aunque intento explicar el procedimiento lo menos técnico que puedo, es posible que para algunas cosas se necesiten unos datos mínimos básicos para poder entender el procedimiento. Por favor, si es necesario usad google para buscar información en los puntos que no explico en detalle.

    DirectoryBind

    Esta aplicación es muy "simple" en cuanto a lo que hace, y es tan simple, que cuesta imaginar para que podríamos necesitarla. Dentro de mis instalaciones en Android, resulta ser una de las aplicaciones básicas y fundamentales, por el tiempo que me ahorra a la hora de instalar aplicaciones y ejecutarlas, en distintos dispositivos, y no perder tiempo en la descarga de los ficheros, etc.

    Esta aplicación genera "enlaces simbólicos", o "atajos directos". Para quienes entiendan mejor la terminología de Windows, es como poner un acceso directo de un elemento en el escritorio, pero que en realidad se encuentra en otra parte del disco.

    En este caso, DirectoryBind solo hace enlaces (accesos directos) de directorios, asi, cuando el sistema accede a una carpeta que está enlazada, en realidad va a otra carpeta, y mira/actualiza su interior.

    para no complicar el tema, voy a poner un ejemplo de como podríamos utilizar este programa.

    Imaginemos que tenemos un dispositivo android, con un HUB USB conectado con 5 discos duros/pendrives, y en cada uno de ellos tenemos una carpeta con roms de varios sistemas.

    • HDD1
      • /myroms/psx
      • /myroms/nes

    • HDD2
      • /games/emulation/mame
      • /games/emulation/gba
      • /games/emulation/nes
      • /mydownloads/test/mameroms

    • HDD3
      • /roms/psx
      • /roms/n64


    • HDD4
      • /downloading/mamesroms/emule/mame


    • HDD5
      • /test1/nes
      • /n64/mygames/

    en este ejemplo, tenemos varios sistemas repartidos por cada disco.
    Si cargamos un emulador, para buscar un juego de nes, por ejemplo, tendríamos que navegar entre varios dispositivos, carpetas, para dar con la rom que queremos.

    Obviando que podemos simplemente organizar los directorios, voy a utilizar DirectoryBind para generar una estructura que me sea mas fácil para acceder a estos contenidos. En mi caso, voy a generar la estructura ordenando por sistemas, de tal manera que cuando acceda a la microsd del dispositivo android, tenga carpetas de roms por sistema.

    En la microsd, genero la estructura:

    • /microsd/roms/nes
      • hdd1
      • hdd2
      • hdd5
    • /microsd/roms/psx
      • hdd1
      • hdd3
    • /microsd/roms/n64
      • hdd3
    • /microsd/roms/gba
      • hdd2
    • /microsd/roms/mame
      • hdd2
      • hdd2b
      • hdd5

    luego, en directorybind, enlazo los siguientes enlaces:
    • /microsd/roms/nes
      • hdd1 -> /myroms/nes
      • hdd2 -> /games/emulation/nes
      • hdd5 -> /test1/nes
    • /microsd/roms/psx
      • hdd1 -> /myroms/psx
      • hdd3 -> /roms/psx
    • /microsd/roms/n64
      • hdd3 -> /roms/n64
    • /microsd/roms/gba
      • hdd2 -> /games/emulation/gba
    • /microsd/roms/mame
      • hdd2 -> /games/emulation/mame
      • hdd2b -> /mydownloads/test/mameroms
      • hdd4 -> /downloading/mamesroms/emule/mame
    con la estructura anterior, lo que he hecho es "ordenar" los discos que tenía sin normalizar, y me es mas fácil buscar información cuando estoy dentro de una aplicación, por que si estoy en Retroarch, y busco un juego de mame, simplemente tengo que abrir la carpeta:
    • /microsd/roms/mame

    y dentro solo me encontraré con los directorios de que he generado por cada disco duro/directorio:
    • hdd2
    • hdd2b
    • hdd4
    y dentro de estos directorios, solo hay roms, por lo que es mucho mas fácil buscar una rom específica, si no está en el directorio "hdd2", vuelvo atrás solo un nivel y voy al siguiente directorio "hdd2b", y lo mismo para "hdd4", en vez de estas cambiando entre "HDD2/games/emulation/mame", "HDD2/mydownloads/test/mameroms" o "HDD4/downloading/mamesroms/emule/mame".
    Otra ventaja que tiene la generación de estructuras con DirectoryBind, es que si un dispositivo/directorio no está disponible, no se genera el enlace, por lo que para nosotros veriamos en nuestro caso los directorios limpios
    Por poner un ejemplo, si en el mismo ejemplo anterior tenemos que el disco duro HDD4 no lo hemos conectado, entonces el directorio quedaría así:
    • /microsd/roms/mame
      • hdd2 -> /games/emulation/mame
      • hdd2b -> /mydownloads/test/mameroms
      • hdd4 -> /microsd/roms/mame/hdd4
    en este caso, hdd4 no mostraría ningún fichero, por que el enlace hacia el disco duro "HDD4/downloading/mamesroms/emule/mame" no se ha realizado.
    A esto le podemos sacar una ventaja y funcionalidad muy interesante, que paso a detallar.
    Tener 2 (o mas) Perfiles de contenidos, segun como nos conectemos

    Supongamos el siguiente escenario:
    • /microsd/roms/mame -> HDDUSB/myroms/mame

    tengo un directorio de roms, que se alimenta de lo que se encuentra en el disco duro conectado por USB, y en el directorio de roms especificado.
    Ahora, supongamos que estoy con una tablet, con ese disco duro conectado, y tengo que salir. Evidentemente sería muy molesto tener que ir cargando con la tablet, y un disco duro conectado por USB para poder disfrutar de mis roms de mame.
    Podría copiar en un directorio algunas roms (por ejemplo, street fighter), y desde el emulador cargarlas. Evidentemente es la mejor de las soluciones, pero voy a ir un poco mas allá, y la rom del street fighter, la voy a copiar en la ruta:
    • /microsd/roms/mame/romstreetfighter.zip

    Bien, ahora que sucede?, si tengo conectado el disco duro HDDUSB y habilito el DirectoryBind, voy a ver el contenido del disco duro dentro de la carpeta de roms de mame, pero NO voy a ver "romstreetfighter.zip", a no ser que el disco duro (la carpeta del disco) tenga esta rom, que podria ser algo como esto:
    • HDDUSB/myroms/mame/psychicsoscar.zip
    • HDDUSB/myroms/mame/rabiolepus.zip
    • HDDUSB/myroms/mame/marvelvscapcom.zip
    • HDDUSB/myroms/mame/romstreetfighter.zip
    • HDDUSB/myroms/mame/ghostngoblins.zip

    Pero la gracia viene cuando desconecto el disco duro y/o deshabilito el DirectoryBind, ya que no voy a ver el contenido enlazado del disco (las 5 roms anteriores), pero si el contenido real de la carpeta (1 rom), por lo que pasaré de tener todas las roms que antes veía, a solo las que tenga copiadas aquí, que en este caso es la romstreetfighter.zip
    Asi, en este directorio puedo copiar varias roms que me interesa llevar "encima", para cuando no tengo el disco duro conectado. No tengo necesidad de llevarme el directorio completo de roms de mame, solo algunas, para usar mientras no estoy con el disco USB conectado a la tablet.
    Por tanto, para este ejemplo, cuando tengo habilitado correctamente el DirectoryBind, tendré 5 roms (Perfil 1), y cuando esté deshabilitado, sólo 1 (Perfil 2).
    De aquí en adelante, ya es cuestión de cada uno el ver la utilidad práctica de estas configuraciones, pero se pueden aplicar a todos los ámbitos: películas, música, instalación de aplicaciones, etc.

    Alternativa al Swap de la microSD
    Cuantas veces no he oído expresiones similares a "no tengo espacio en el teléfono, pero si acabo de instalar una microsd de 32GB que está nueva!", y claro, es normal que suceda esto, y es que el sistema android tiene configurado de forma predeterminada el uso del punto de montaje /sdcard/ como su "disco duro", y por lo general esta muchos dispositivos vienen con una unidad interna de memoria, que está asociada a ese directorio (/sdcard/).
    Generalmente, esta unidad tiene muy poca capacidad, y con 2 o 3 juegos instalados, ya no tienes espacio para poder seguir instalando nada mas, y tienes que eliminar algun juego y sus datos asociados, para poder seguir instalando mas cosas. (aún cuando hayas instalado una microSD de muchos GB que esté recién formateada)
    La solución general para esto es, por norma, editar el fichero vold.fstab, y realizar lo que se llama un "swap", para cambiar la memoria interna, por la microsd, y que sea ésta la que se destine para instalación de datos de programas/juegos. Pero este cambio no siempre se puede hacer, y requiere de algunos conocimientos, aunque no muy avanzados, pero si no se sabe lo que se hace, podrían dejar la tablet en un estado que no permita su uso normal.
    Para este caso, una forma de solucionar el problema es generar un enlace de los directorios mas utilizados en el punto /sdcard/, y enlazarlos con otros en una microsd o el medio externo que queramos.
    Los directorios que mas se utilizan en una instalación Android standard, pueden ser:
    • /sdcard/android (aquí se descargan e instalan la mayoría de aplicaciones, y sobre todo juegos. esta carpeta es, por lo general, la que mas espacio ocupa dentro de la microsd y está conformada por los directorios "data" y "obb")
    • /sdcard/DCIM (Directorio donde se almacenan las fotografías tomadas con el dispositivo)
    • /sdcard/pictures (Directorio donde se almacenan generalmente las capturas de pantalla que realizamos en el dispositivo)
    • /sdcard/gameloft (Directorio donde algunas aplicaciones y juegos mas antiguos de Gameloft, descargaban sus datos. Era un directorio que ocupaba mucho espacio generalmente)

    asi, y poniendo en práctica lo que he comentado hasta ahora sobre DirectoryBind, lo que genralmente hago en mis instalaciones (tablets, smartphones, etc) es hacer el siguiente enlace.
    Suponiendo que ma microsd está montada en la ruta "/mnt/external_sdcard/"
    /sdcard/android --> /mnt/external_sdcard/android/sdcard/DCIM --> /mnt/external_sdcard/DCIM/sdcard/pictures --> /mnt/external_sdcard/pictures/sdcard/gameloft --> /mnt/external_sdcard/gameloft
    Nota: La ruta de la microsd puede variar de un dispositivo a otro. Para el ejemplo anterior he utilizado "/mnt/external_sdcard", pero algunas de las rutas frecuentes también pueden ser:
    • /mnt/sdcard/ext_sd
    • /mnt/ext_sd
    • /mnt/sdcard1
    • /mnt/microsd

    otra ventaja de esto es que si tenemos 2 dispositivos (2 teléfonos por ejemplo) y nos queremos pasar de uno a otro, pero no tener que descargar los datos de las aplicaciones (aunque hay que instalar los apk, por lo menos), simplemente basta con tener los directory bind correspondientes en cada uno de ellos y quitar la microsd de un dispositivo para insertarla en el otro, y ya tendremos pasados los datos de juegos, etc, sin necesidad de descargarlos nuevamente.

    CIFS

    Este protocolo/módulo/capa/etc (no se muy bien como definirlo, pero para el caso nos dará igual ya que es mas importante saber como usarlo) nos permite generar enlaces a directorios compartidos en la red, de manera que podamos acceder a ellos de forma directa, como parte del sistema de ficheros de Android.
    Para explicarlo mejor, sobre todo para quienes sean menos técnicos, voy a utilizar un ejemplo.
    Suponiendo que tenemos un directorio compartido en nuestro PC, y dentro tenemos una película que ocupa 2GB de espacio.
    En Android, existen alternativas para poder ver estas unidades de red, como puede ser ES File Explorer, que puede escanear y conectarse a estas unidades de red. Hasta aquí no vemos problemas, pero si intentamos abrir la película que tenemos en esta carpeta compartida (con el mismo es file explorer), nos daremos cuenta que muy probablemente la aplicación se "congele" y no responda por un buen rato.
    Bueno, en realidad no es que tenga problemas, sino que como le he mos dicho que queremos abrir el vídeo, lo que hace el sistema es copiar el fichero entero a nuestro dispositivo para, a continuación, abrirlo, y con todo lo que supone copiar un fichero de 2GB por red, ver si tenemos espacio en la microsd para almacenar el fichero, etc.
    ¿Por que hace esto el sistema? básicamente, por que las aplicaciones NO tienen acceso a estas unidades de red, ya que para ellas no existe dicha unidad. Solo el ES File Explorer (o la herramienta que estemos utilizando) serán capaces de acceder a este recurso y su contenido, por lo que para dejarlo a disposición del resto de aplicaciones (para visualizar su contenido, por ejemplo), lo mejor que puede hacer ES File Explorer es copiar el contenido que el puede acceder (recurso de red) y dejarlo en alguna parte que el sistema si pueda acceder a el sin problemas (la microsd, por ejemplo)
    La herramienta ES File Explorer está muy bien para algunas cosas, pero no es práctica para otras como el ejemplo que antes he comentado.
    Aquí es donde vemos la principal diferencia que puede suponer el utilizar CIFS, ya que esta herramienta permite conectar una unidad compartida, pero al mismo tiempo la monta como parte de su propio sistema de ficheros, por lo que está disponible para que cualquier aplicación acceda a ella directamente. Así, en el mismo ejemplo anterior, si con ES File Explorer por ejemplo vamos a la carpeta:
    • /mnt/cifs/recursocompartido

    Al cargar la película, veremos que se lanzará inmediatamente el reproductor que tengamos instalado, y la reproducción empezará también. Como el sistema puede acceder directamente al contenido, no es necesario realizar una copia de la película para, posteriormente realizar su visualizado.
    El mismo caso para cargar una rom o iso desde un emulador. Imagina estar en un emulador de PSX, y quieres cargar la ISO que has generado de tu Tekken3 (sin rippear, una iso completa)... y claro, son 640MB de datos... y le das a ejecutar y se toma 15 minutos en copiar el ISO correspondiente para, a continuación, ejecutarlo (y eliminar la iso temporal que ha copiado localmente, cuando hayas terminado de utilizarla).
    Con CIFS, simplemente ejecutas la ISO de forma directa, y "rápida" (sin la tardanza en esperar a que empiece la emulación).

    Uso extendido de CIFS

    Vamos a sumar lo que he comentado hasta ahora de DirectoryBind y del Mount Manager (para CIFS)
    Tambien voy a asumir que el sistema tiene soporte para CIFS (no todos los sistemas tienen soporte, esto ya es cuestión de cada rom/firmware)

    Antes de seguir, debo aclarar que he decidido utilizar el programa Mount Manager, por que la alternativa mas conocida "Cifs Manager" me ha generado problemas a la hora de escribir datos en los recursos compartidos en red, pero con Mount Manager no he tenido estos problemas, basicamente por que los recursos los conecta en el modo que le indiquemos (por defecto, están en lectura/escritura, por lo que no hay que hacer nada especial). Además, este programa permite cargar módulos CIFS, sin tener necesidad de modificar scripts de arranque del dispositivo, lo que es de agradecer sobre todo para usuarios mas novatos.

    Eso sí, no todos los dispositivos vienen con el módulo CIFS pre-cargado, por lo que es cuestión de cada usuario buscar información al respecto. (cada dispositivo tiene su propio módulo, por lo que no sirve cargar uno "genérico". Pero por probar, se pueden buscar módulos y tratar de cargarlos con este programa, por si alguno de ellos es "compatible")
    Por un lado, ya sabemos como enlazar directorios para que el sistema acceda a ubicaciones que no son las que realmente cree que son.
    Por otro lado, podemos generar ubicaciones remotas, pero que el sistema vea como locales, con lo que las aplicaciones acceden directamente a estos contenidos.
    Y lo que viene ahora es bastante obvio creo yo, y es que podemos "generar" una "microsd"... remota.
    En un PC, vamos a crear una carpeta llamada "ANDROIDHDD" (en mi caso, D:\ANDROIDHDD) y la vamos a compartir con ese mismo nombre (estoy asumiendo que estamos en windows. Si es en linux o similar, compartir el recurso de red por medio de Samba)
    Dentro vamos a crear las siguientes carpetas:D:\ANDROIDHDD\android\data_COMMOND:\ANDROIDHDD\android\obb_COMMON
    D:\ANDROIDHDD\Romsets
    D:\ANDROIDHDD\Romsets\Mame
    D:\ANDROIDHDD\Romsets\Mame\Mame0.37b11
    D:\ANDROIDHDD\Romsets\Mame\Mame0.139
    Nota: Esta es una sugerencia de estructura. He puesto el ejemplo de los Mame, para separar los romsets y así poder asignarlos mas fácilmente en el uso de emuladores, dependiendo del tipo de romset que utilizan.
    Luego, en el dispositivo, vamos a abrir el Mount Manager (previamente instalado desde el market), y conectamos el recurso compartido. Para este ejemplo, pondré como IP de ejemplo una común dentro de una instalación de red normal, la 192.168.0.2, que será la de nuestro PC. En el caso de seguir este ejemplo, cambiar esta IP por la del pc que estéis usando.
    Nota: El recurso DEBE estar compartido con un usuario y password, con permisos de escritura. Si no hay ninguno, crear un usuario/password específico para compartir esta carpeta. Para este ejemplo, el usuario será ANDROIDUSER y la password ANDROIDPASS. En vuestro caso, usad un usuario y password propios. Esto no afectará al resto del uso de esta guía.
    recurso: 192.168.0.2/ANDROIDHDD/punto de montaje: /mnt/cifs/ANDROIDHDD

    En la pantalla, hay un botón "+" a la derecha. Hacer click en el y en la ventana siguiente seleccionar "User".
    Aparecerá una nueva variable "User" y pondremos lo siguiente:

    User: ANDROIDUSER
    Dar denuevo al botón "+" da la derecha, seleccionar "Password" y poner lo siguiente:

    Pass: ANDROIDPASS
    Dar al botón "Save" para volver a la ventana anterior, donde veremos el nuevo punto de montaje CIFS que hemos creado.
    Una vez generado el punto de acceso, lo activamos, dando un toque sobre la línea que acabmos de crear en el Mount Manager. El icono de la derecha se pondrá en verde si hemos conectado todo correctamente. (si está en rojo, verificar los datos)


    Finalmente, vamos a generar una estructura con DirectoryBind, y vamos a enlazar algunos directorios:

    /mnt/sdcard/cifs/ANDROIDHDD/ -- /sdcard/ANDROIDHDD/
    /sdcard/ANDROIDHDD/Android/data_COMMON/ -- /sdcard/Android/data/
    /sdcard/ANDROIDHDD/Android/obb_COMMON/ -- /sdcard/Android/obb/
    /sdcard/ANDROIDHDD/Romsets/ -- /sdcard/Romsets/
    /sdcard/Romsets/Mame/Mame0.37b11/ -- /sdcard/ROMs/MAME4all/roms/
    /sdcard/Romsets/Mame/Mame0.139/ -- /sdcard/ROMs/MAME4droid/roms/

    Explicación de los enlaces
    ANDROIDHDD : Será un enlace interno que utilizaremos dentro del propio DirectoryBind, para ahorrarnos pasos si necesitamos cambiar la redirección de un servidor a otro.
    Con este directorio, estamos generando un enlace que entenderemos como ANDROIDHDD (o el nombre que sea), y que apuntará a la dirección de red que tengamos compartida por CIFS.
    Luego, cada subdirectorio que necesitamos, dependerá de este directorio principal para enlazar correctamente.
    Ejemplo:
    Tengo 2 discos duros. Uno está en mi casa y el otro está en la casa de un amigo.
    En mi casa, el recurso compartido es:192.168.0.2/ANDROIDHDD
    En casa de mi amigo el recurso compartido es:192.168.3.12/SHAREDATA
    Para mi caso, en el Mount Manager me basta con tener ambos recursos conectados, por ejemplo, de esta manera:192.168.0.2/ANDROIDHDD -- Este será mi recurso en casa, que llamaré HDD_HOUSE192.168.3.12/SHAREDATA -- Este será mi recurso en casa de mi amigo Pepe, que llamaré HDD_PEPE
    por lo que la estructura cifs quedará en :/sdcard/cifs/HDD_HOUSE/sdcard/cifs/HDD_PEPE
    luego, tengo 2 alternativas para poder reconfigurar mi dispositivo:
    Edito el fichero directorybind, y si estoy en casa pongo:/mnt/sdcard/cifs/HDD_HOUSE/ -- /sdcard/ANDROIDHDD/
    Edito el fichero directorybind, y si estoy en casa de Pepe pongo:/mnt/sdcard/cifs/HDD_PEPE/ -- /sdcard/ANDROIDHDD/
    el resto no debo cambiar nada, por que los directorios enlazados en DirectoryBind, están enlazados al directorio principal ANDROIDHDD, y por lo tanto no se ven afectados por el cambio.
    luego, la siguiente alternativa, que es la mas práctica, es agregar las entradas correspondientes a cada conexión en el fichero directorybind_conf.csv, y activar solo la redirección que necesitemos, por ejemplo:

    En este ejemplo, he puesto varios recursos compartidos para que se vea el efecto buscado.Asimismo, he puesto un recurso compartido en blanco, para hacer una línea de división entre los enlaces principales (ANDROIDHDD) y los que dependen de el.
    Activamos los enlaces con DirectoryBind, y ya tenemos nuestra microSD remota, donde se descargarán los datos de las aplicaciones y juegos que instalemos en el dispositivo.
    Hay que señalar que este sistema será eficiente o no, dependiendo de la calidad de la red que nos encontremos. Recordar que una conexión USB puede tener una tasa de transferencia de 480mb/s, mientras en una red como en mi caso, puede oscilar entre 54mb/s a 11mb/s (en mi caso, tengo el PC en una posición que recibe una muy mala señal), y que por tanto estamos hablando de que en casi cualquier escenario vamos a perder mucha velocidad de transferencia (en el mejor de los casos, quizás tengamos una red standard cableada de 100mb/s, o conexiones wifi de 150mb/s o 300 mb/s, pero tomando como standard los 100mb/s, estamos hablando de una velocidad de cerca de un 25% de la que puede ofrecer un dispositivo USB)
    Aún asi, la diferencia de carga de una aplicación puede ser que si antes demoraba 20 segundos en cargar, ahora se tome 50, pero en mi caso, compensa sin problemas por el ahorro de espacio que eso supone. Esta velocidad dependerá única y exclusivamente de la velocidad general de nuestra red, asi que a la hora de decidir donde montar el recurso compartido, mis recomendaciones son que sea en un equipo que tenga una cobertura excelente WIFI, una antena/receptor WIFI de alta velocidad, y en su defecto, conectarlo a la red cableada de casa, que nos dará por lo menos 100mbs de transmisión, que es menos de la cuarta parte de un dispositibo USB (480mbs), lo que implica tener que esperar 4 veces mas por que un programa arranque, pero creo que no es mucho problema, si consideramos que un juego android puede demorar 10 segundos en arrancar, pues serán 40 segundos aprox, con la ventaja de tener ahorrado el espacio de ese juego para todos los dispositivos android que conectemos.

    Romsets : Este directorio lo utilizo para enlazar directamente al directorio donde tengo almacenados roms de distintos sistemas.

    Así, puedo tener un directorio con roms y estar distribuído de la siguiente manera en mi PC:
    D:\ANDROIDHDD\Romsets\ATARID:\ANDROIDHDD\Romsets\M AMED:\ANDROIDHDD\Romsets\NESD:\ANDROIDHDD\Romsets\ PSP

    D:\ANDROIDHDD\Romsets\PSX
    Como la mayoría sabe, los emuladores MAME generalmente dependen de un romset específico para poder ejecutar correctamente dichas roms, por lo tanto lo ideal y mas conveniente, es clasificar las roms dependiendo de su romset. En mi caso, utilizo 2 romsets específicos, el 0.37b11 y el 0.139, además de un directorio con roms sueltas, que no he clasificado aún. Por lo tanto, mi estructura en realidad queda de la siguiente forma:
    D:\ANDROIDHDD\Romsets\ATARID:\ANDROIDHDD\Romsets\M AMED:\ANDROIDHDD\Romsets\MAME\Mame0.37b11D:\ANDROI DHDD\Romsets\MAME\Mame0.139D:\ANDROIDHDD\Romsets\M AME\MameXD:\ANDROIDHDD\Romsets\NESD:\ANDROIDHDD\Ro msets\PSP

    D:\ANDROIDHDD\Romsets\PSX
    Así, lo que resta para enlazar dentro de los emuladores es bastante sencillo.
    En mi caso, utilizo los emuladores Mame4All y Mame4All Reloaded. Utilizo los directorios por defecto de estos emuladores, para especificar la localización de las roms, así los directorios por defecto de estos emuladores son:
    Mame4All Reloaded : /sdcard/ROMs/MAME4all/roms/Mame4All (Mame4Droid) : /sdcard/ROMs/MAME4droid/roms/
    Ahora, en vez de estar configurando cada vez que instalo estos emuladores, la ruta de las roms, etc, simplemente tengo una entrada en directorybind que enlaza directamente los directorios de las roms correspondientes para cada emulador. de esta manera:
    Mame4All (Mame4Droid) utiliza el romset 0.37b11, por lo tanto:/sdcard/Romsets/Mame/Mame0.37b11/ -- /sdcard/ROMs/MAME4all/roms/
    Mame4All Reloaded, utiliza el romset 0.139, por lo tanto:/sdcard/Romsets/Mame/Mame0.139/ -- /sdcard/ROMs/MAME4droid/roms/
    Llegados a este punto, estamos de acuerdo que esta entrada es totalmente innecesaria y opcional, pero sugiero intentar a probar esta configuración, que ahorra muchos quebraderos de cabeza sobre todo a la hora de generar los directorios necesarios para utilizar los Mame, ya que estas aplicaciones generan su propia estructura estática, y esto puede complicar a mas de un usuario a la hora de saber donde copiar sus roms.
    Para el resto de emuladores, generalmente tienen una opción para especificar el path de las roms, por lo que simplemente la apuntaremos a la siguiente ruta, para que queden configurados correctamente:
    Ruta de todas las roms: /sdcard/Romsets/Ruta para roms de NES: /sdcard/Romsets/NES/Ruta para roms de PSP: /sdcard/Romsets/PSP/etc...

    Observaciones y consideraciones
    No está de mas comentar que todo lo anteriormente expuesto funcionará sólo cuando estén las condiciones para que el sistema de directorios y recursos en red se encuentren disponibles. Si estamos con nuestro dispositivo Android conectado a una unidad de red, y estamos utilizando dicho recurso para almacenar información o leer los ficheros de algún juego, y tenemos problemas de red (desconexión, baja señal, etc) o simplemente apagamos el ordenador o disco duro, tendremos un efecto inesperado en el dispositivo Android, por lo que sugiero utilizar este sistema solo para quienes tengan una forma segura de utilizarlo, con un recurso compartido fiable (que no se apagará).

    También es importante recalcar que si conectamos este recurso en, por ejemplo, nuestro móvil, es muy posible que cuando salgamos del área efectiva de la cobertura de la Wifi tengamos un sistema inestable y por lo mismo sea necesario reiniciar el terminal. Para este caso tengo una sugerencia/alternativa.

    En mi caso, tengo conectado el móvil, pero no tengo enlazado el directorio "data" (/sdcard/ANDROIDHDD/data_common), y dejo que los datos sean los propios que el movil almacena en la microSD.

    Cuando necesito desconectar el dispositivo de la red, simplemente voy a DirectoryBind, y hago "unbind all" para que se desconecten los enlaces a las unidades de red. Si enlazo el directorio "data" (data_COMMON), es muy probable que alguna aplicación de Android tenga abierto algún fichero (el reproductor de medios, navegador, etc) y no me deje hacer unbind, y por este motivo prefiero no enblazar este directorio en dispositivos que sean móviles, para evitar problemas.

    Alternativamente, para desconectar las unidades enlazadas, ya que el sistema está montado sobre la carpeta cifs, que se encuentra dentro de la microSD, se puede hacer un "Desmontar SD" para que se liberen todos los recursos que estén abiertos en la microSD, y a continuación ya podemos montarla nuevamente, pero sin activar CIFS o DirectoryBind (quitar la opción automontar de directorybind, para cuando se conecte el puerto USB).

    Una vez que se ha entendido el funcionamiento, y sobre todo, las posibilidades de este "sistema", se puede ganar mucho, sobre todo en espacio y en especial para aquellas personas que tengan varios dispositivos android (Tablets, Set Top Box, Android TV, Móviles, Consolas, etc).

    Asimismo, otra ventaja que se obtiene de todo esto, es que si actualizo los datos de una aplicación, por ejemplo, de un juego, solo los tengo que descargar una vez en un dispositivo, y el resto de dispositivos simplemente bastará con actualizar el APK de la aplicación o juego correspondiente, sin necesidad de descargar los datos asociados.

    Otra cosa a considerar es que asumo que todos los ficheros del directorio /sdcard/Android/data y /sdcard/Android/obb, son comunes para todos los dispositivos. Esto significa que cuando se modifica uno, se modificará en todos.

    Si queremos separar directorios por dispositivo para, por ejemplo, tener distintas partidas guardadas del mismo juego, habrá que duplicar la carpeta data y enlazar con DirectoryBind a la nueva carpeta.

    Por ejemplo, si en la misma instalación del hogar, tenemos un directorio para DEEN0X, otro para PEPE y otro para SKELTON, podemos hacer lo siguiente:

    PEPE enlazará a:
    /sdcard/ANDROIDHDD/Android/data_PEPE/ -- /sdcard/Android/data/

    SKELTON enlazará a:
    /sdcard/ANDROIDHDD/Android/data_SKELTON/ -- /sdcard/Android/data/

    Deen0X enlazará a:
    /sdcard/ANDROIDHDD/Android/data_DEEN0X/ -- /sdcard/Android/data/

    el directorio obb se mantiene común para todos los dispositivos/sdcard/ANDROIDHDD/Android/obb_COMMON/ -- /sdcard/Android/obb/
    y con esto cada uno podría tener su partida del mismo juego, guardada por separado.
    En la siguiente sección, dejaré los ficheros necesarios para poder configurar una pequeña red con todo este sistema, pero antes voy a comentar una utilidad mas que podria utilizarse con este sistema.

    Y Sambadroid, ¿para que me puede servir?

    En la store de google existen varias aplicaciones con las que podemos compartir una carpeta de nuestro dispositivo, utilizando el protocolo de red SAMBA, que es el utilizado entre otros por Windows. Con este tipo de herramientas, podemos compartir una carpeta y verla directamente como un recurso compartido desde nuestro PC, sin tener necesidad de instalar gestores de ficheros, ni un cable MicroUSB.
    Entre las opciones existentes, he estado utilizando varias para probar que tal van, y aunque la mas popular del momento puede ser Samba Filesharing, lo cierto es que esta utilidad es bastante limitada y, sobre todo, inestable a la hora de implementar un sistema de recursos compartidos estable.
    Probando, he llegado a la conclusión de que la herramienta que cumple con mis necesidades y que hasta el momento tiene un buen desempeño, es una aplicación llamada SambaDroid, que tiene una versión gratuíta que no permite cambiar el nombre del recurso compartido, ni del nombre NetBIOS (de la máquina), ni incorporar sistema de protección con password por usuario, vamos, que es bastante "limitado" en cuanto a opciones para configurar el programa, pero la versión PRO (licencia comprada desde la propia apliación), permite hacer todo este tipo de configuraciones, y funciona muy bien.
    Ya sea la versión Free o la Pro, este programa también se puede utilizar para implementar us sistema de ficheros compartidos, utilizando como servidor un dispositivo Android para compartir el recurso de red que, en este caso, lo mas práctico es que sea la propia /SDCARD.
    Montar los recursos en un sistema así, mas que práctico, es curioso, por que la velocidad de transferencia de este modo es bastante baja, y no resulta práctico para utilizar de manera habitual.
    Aún así, algunos contenidos si se pueden compartir y disfrutar correctamente utilizando este sistema. Roms, Música, Vídeo, etc, este tipo de ficheros se pueden compartir sin mayores problemas por medio de una red WIFI local generada entre 2 dispositivos Android. Intentar cargar un juego tipo Nova3 o similares, podrían suponer que tomen un tiempo considerable en la carga, además de la batería que el proceso se consumiría.
    Me ha parecido adecuado comentar la facilidad de uso de este programa, ya que estoy hablando de un tema que tiene relación. Ahí lo dejo por si alguien lo quiere probar.
    Descargas y puesta en funcionamiento
    Esta sección es para poner en práctica todo lo comentado anteriormente.

    Ficheros necesarios:
    DirectoryBind (de los foros XDA)
    Mount Manager (versión gratuíta de la store de google play)
    directorybind_conf.csv (crear un fichero con la información que hay a continuación)

    Como el fichero directorybind_conf.csv no tiene mayor complicación para editar, voy a dejar aquí el contenido del mismo para poder copiarlo y pegarlo en un editor de textos (sugerencia: notepad++), y asi realizar las modificaciones oportunas para cada necesidad.

    CONTENIDO FICHERO DE CONFIGURACION DE DIRECTORYBIND (directorybind_conf.csv)

    ----BASE MOUNT POINTS BY NET--------------------------------;;0
    /mnt/sdcard/cifs/ANDROIDHDD/;/sdcard/ANDROIDHDD/;1
    /mnt/sdcard/cifs/MUSICHDD/;/sdcard/MUSICHDD/;1
    /mnt/sdcard/cifs/VIDEOHDD/;/sdcard/VIDEOHDD/;1
    ----BASE MOUNT POINTS BY USB--------------------------------;;0
    /mnt/usb/ANDROIDHDD/;/sdcard/ANDROIDHDD/;0
    /mnt/usb/MUSICHDD/;/sdcard/MUSICHDD/;0
    /mnt/usb/VIDEOHDD/;/sdcard/VIDEOHDD/;0
    ----BASE MOUNT POINTS BY EXTERNAL_SDCARD--------------------------------;;0
    /mnt/external_sdcard/ANDROIDHDD/;/sdcard/ANDROIDHDD/;0
    /mnt/external_sdcard/MUSICHDD/;/sdcard/MUSICHDD/;0
    /mnt/external_sdcard/VIDEOHDD/;/sdcard/VIDEOHDD/;0
    ----GENERAL BINDS--------------------------------;;0
    /sdcard/ANDROIDHDD/Android/data_COMMON/;/sdcard/Android/data/;1
    /sdcard/ANDROIDHDD/Android/obb_COMMON/;/sdcard/Android/obb/;1
    /sdcard/ANDROIDHDD/Gameloft/;/sdcard/Gameloft/;1
    /sdcard/ANDROIDHDD/Romsets/;/sdcard/Romsets/;1
    /sdcard/Romsets/Mame/Mame0.37b11/;/sdcard/ROMs/MAME4all/roms/;1
    /sdcard/Romsets/Mame/Mame0.139/;/sdcard/ROMs/MAME4droid/roms/;1
    /sdcard/ANDROIDHDD/Pictures/;/sdcard/Pictures/;0
    /sdcard/ANDROIDHDD/backups/;/sdcard/backups/;0
    /sdcard/ANDROIDHDD/DCIM/;/sdcard/DCIM/;0
    /sdcard/ANDROIDHDD/TitaniumBackup/;/sdcard/TitaniumBackup/;0
    ----MEDIA BINDS--------------------------------;;0
    /sdcard/MUSICHDD/;/sdcard/Music/MUSICHDD/;0
    /sdcard/MUSICHDD/;/sdcard/Media/MUSICHDD/;0
    /sdcard/MEDIAHDD/;/sdcard/Video/VIDEOHDD/;0
    /sdcard/MEDIAHDD/;/sdcard/Media/VIDEOHDD/;0
    Nota: No dejar espacios ni líneas en blanco entre medio de cada entrada. He dejado líneas con títulos de cada "grupo" o "sección", para que sea mas fácil entender y leer el fichero dentro del propio directorybind.
    Nota2: El fichero que está para descargar tiene menos opciones que las de las líneas que he puesto aquí, por que lo he ido editando para agregar mas opciones

    Importante: El nombre del punto de montaje de la microsd externa, puede variar de un dispositivo a otro.
    Hay que establecer el nombre correcto en el fichero directorybind_conf.csv, para que el sistema esté correctamente configurado. Para esto, se puede hacer de muchas formas, y la mas fácil es ir con algún explorador de ficheros que permita navegar en /mnt/, y verificar el nombre de la microsd externa.

    La microsd interna, en caso de que el dispositivo tenga memoria interna (un disco interno) se llamará "sdcard", por lo que tendremos que buscar otro punto de montaje que corresponda a la microsd que tenemos insertada en el dispositivo.

    Los nombres de la memoria externa pueden ser múltiples, y estos son sólo algunos ejemplos:
    /mnt/sdcard1
    /mnt/ext_sd
    /mnt/external_sd
    /mnt/external_sdcard
    /mnt/extsd
    /mnt/sdcard/sdcard1
    /mnt/sdcard/ext_sd
    /mnt/sdcard/external_sd
    /mnt/sdcard/external_sdcard
    /mnt/sdcard/extsd
    etc...
    Nota: la sdcard externa (microsd), también puede estar montada dentro de la propia memoria interna sdcard, en forma de carpeta (como /mnt/sdcard/external_sdcard). Esto es común en varios dispositivos/fabricantes que lo montan de esta manera.
    Una vez identificado el nombre, editar el fichero directorybind_conf.csv y cambiar las siguientes entradas, reemplazando "external_sdcard" por el nombre correspondiente al dispositivo.

    ...
    /mnt/external_sdcard/ANDROIDHDD/;/sdcard/ANDROIDHDD/;0
    /mnt/external_sdcard/MUSICHDD/;/sdcard/MUSICHDD/;0
    /mnt/external_sdcard/VIDEOHDD/;/sdcard/VIDEOHDD/;0
    ...
    [/b]Siguiendo con el tema, la forma de entender el fichero directorybind_conf.csv es muy simple:[Ruta_donde_están_los_ficheros/Source];[Ruta_que_reemplaza/Target];[0-deshabilitado/1-habilitado]

    Editar (crear) el fichero con los datos anteriores (contenido de directorybind_conf.csv + modificación del nombre del punto de montaje de la microsd), y guardarlos en la raíz de la sdcard del dispositivo Android, con el nombre directorybind_conf.csv (debe quedar en /mnt/sdcard/directorybind_conf.csv). Si no estás seguro cual de las unidades del dispositivo android es /sdcard, guardalo en todas las unidades del dispositivo, en el directorio raiz.

    Dentro de esta estructura, están incluídos enlaces para conectar un "servidor" de música y otro de vídeos.

    en la microSD, estos se verán como
    /sdcard
    ----/Music
    --------/MUSICHDD
    ----/Video
    --------/VIDEOHDD
    ----/Media
    --------/MUSICHDD
    --------/VIDEOHDD

    Habilitar/deshabilitar los enlaces segun vuestras preferencias. En mi caso, yo utilizo el directorio Media para meter dentro todos los ficheros de música y vídeo. Así, en el mismo directorio, junto con los que tengo en la microSD, tendré acceso a los directorios de los recursos de red con estos contenidos.

    También he incluído otros directorios que pueden resultar interesantes:
    Romsets -- Para roms
    DCIM -- Para sacar fotos con el dispositivo directamente a la unidad de red
    Pictures -- Para capturar pantallas directamente a la unidad de red
    Backups -- Si utilizo un programa como ES File Explorer, y guardar los APK que tengo instalados en la unidad de red
    TitaniumBackup -- Para hacer/recuperar backups de titanium, directamente de la unidad de red

    Ya es cuestión de cada uno agregar o modificar estos enlaces de acuerdo a sus preferencias y necesidades.

    Para Mount Manager, vamos a compartir los siguientes recursos en nuestro PC o HDD de red

    Creamos una carpeta llamada ANDROIDHDD (o como queráis llamarla), asumiré que estamos trabajando en el disco D:\ del pc, por tanto, generar la siguiente estructura:

    D:\ANDROIDHDD
    ----\Android
    --------\data_COMMON
    --------\obb_COMMON
    ----\Romsets
    --------\Mame
    ------------\Mame0.37b11
    ------------\Mame0.139
    ----\DCIM
    ----\Pictures
    ----\Backups
    ----\TitaniumBackup
    ----\Gameloft

    Nota: Si se utliza un disco duro USB conectado al PC, sugiero crear la misma carpeta dentro del disco, y compartir la carpeta, no la unidad completa.

    A continuación, compartimos la carpeta ANDROIDHDD, con privilegios totales (Lectura/Escritura) sobre esta carpeta.
    Como sugerencia, poner una IP estática a vuestro PC, para poder conectarlo sin problemas.

    Nos quedamos con la IP del PC, que la vamos a utilizar en el dispositivo Android

    Tip: Inicio->ejecutar->cmd.exe, y a continuación poner lo siguiente:
    ipconfig
    La ip será la que tenga un formato xxx.xxx.xxx.xxx, y que generalmente puede empezar por 192.168.xxx.xxx, que para este caso asumiremos que es 192.168.0.2

    Luego, en Android, cargamos Mount Manager, damos a "Add Mount" (el segundo icono de la barra de herramientas, el que tiene la cruz azul), y poner los datos necesarios

    Share Path = 192.168.0.2/ANDROIDHDD
    Mount Point = (se llenará automáticamente)
    Agregar la opción Username
    Username = ANDROIDUSER
    Agregar la opción Password
    Password = ANDROIDPASS

    Nota: ANDROIDUSER y ANDROIDPASS son usuarios definidos en el pc, y pueden ser cualquier usuario. estos son solo un ejemplo.

    Dar al botón Aceptar (Accept/Save) y volver a la ventana anterior.

    Activar el punto de montaje CIFS, tocando la opción recién creada.

    Si no se monta correctamente, verificar los datos y verificar los módulos, si está ejecutando el CIFS.

    Hacer lo mismo por los puntos de montaje para MUSICHDD y VIDEOHDD (si es que se van a utilizar)

    Cargar DirectoryBind, dar a Options -- More -- Restore database (si pregunta, responder que Si quieres sobreescribir)

    Aparecerán las entradas que hemos editado anteriormente (o que hemos descargado el fichero directamente). Marcar o desmarcar las casillas, de acuerdo con las preferencias de cada uno, y finalmente dar Options -- Bind Checked

    Si todo está bien configurado, veremos que los iconos de cada opción que está seleccionada se pondrán verdes.

    En caso de que alguna se ponga en azul, quiere decir que existe algún problema que posiblemente lo podemos solucionar. Daremos a Options -- Unbind all, y seleccionamos y mantenemos presionado sobre la opción, nos abrirá una ventana que nos permite configurar el enlace.

    Mantenemos presionado sobre la primera caja de texto (Source data path), y verificamos que esté apuntando correctamente donde queremos que apunte, y le damos a "Select"

    Repetimos la operación con la segunda caja de texto (Mount target path)

    Guardamos la configuración, volvermos a la ventana anterior y le damos a Options -- Bind Checked.

    Repetir por cada opción que necesite que la verifiquen. En caso de las opciones en rojo, es que algun directorio o punto de montaje no se encuentra correctamente configurado.

    Verificar que en la microSD existan los directorios Destino (Targets). Si estamos montando "Picture", pero en la microsd no existe esta carpeta, entonces dará error al intentar montarla (aunque generalmente el propio DirectoryBind genera estas carpetas de forma automática)

    Ya podemos utilizar estos directorios de manera directa dentro de nuestras aplicaciones.
    • Abrir cualquier emulador, y a la hora de buscar roms, ir a /sdcard/Romsets/ , para encontrar los directorios correspondientes a cada sistema.
    • Para escuchar música, vamos a /sdcard/Music/MUSICHDD, para tener nuestra biblioteca de música, además de la existente en la propia MicroSD
    • Para instalar un juego Android, basta con instalarlo normalmente desde Google Play Store. Tanto los datsod del directorio obb como los del directorio data, se guardarán directamente en la unidad de red asociada.
    • Si tenemos asociado el directorio DCIM, podemos sacar una foto con nuestro dispositivo, y ésta se almacenará directamente en nuestro ordenador.

    En fin, las posibilidades son muy variadas, y cada uno puede encontrar el uso que mejor le parezca a este sistema.

    Cambiar entre distintas "fuentes" de soporte para datos

    Todo lo explicado hasta aquí toma como referencia la utilización de una unidad de red para almacenar los datos, pero también se podría cambiar que el sistema se "alimente" de una unidad USB (disco duro, pendrive, etc), o una SDCard instalada en el dispositivo Android.

    Para esto, simplemente hay que cambiar las entradas base del fichero del Directory Bind.

    Vamos a suponer que nuestro directorio original ANDROIDHDD en realidad es un disco duro USB que tenemos compartido en el PC.

    Nos vamos de viaje, y queremos llevarnos este disco duro para conectar nuestro Set Top Box (Android TV, Pincho Android, etc) en nuestra casa en la playa.

    Asumiendo que tenemos soporte para conectar un disco duro o pendrive en nuestro dispositivo, vamos a conectar el disco y verificamos que tengamos acceso a el.

    Lo mas probable, es que lo veamos en la siguiente ruta:

    /mnt/usb

    Suponiendo que en el disco duro, nuestra carpeta para android se llame "ANDROIDHDD" (y que era la que teníamos compartida como "ANDROIDHDD"), entonces en nuestro dispositivo la veríamos en la siguiente ruta, y con los siguientes directorios:

    /mnt/usb/ANDROIDHDD
    ----/Android
    --------/data_COMMON
    --------/obb_COMMON
    ----/backups
    ----/Gameloft
    ...etc

    Nota: Si vuestra instalación del disco duro o pendrive se encuentra en otra posición, editar la entrada correspondiente en el fichero directorybind_conf.csv para que el directorio USB apunte correctamente donde se encuentra el dispositivo conectado.

    Si se ha copiado el contenido del directorybind_conf.csv, para agregar las líneas que he puesto en esta guía, existe una sección con entradas base para NET y otras para USB

    ...
    ----BASE MOUNT POINTS BY NET--------------------------------;;0
    /mnt/sdcard/cifs/ANDROIDHDD/;/sdcard/ANDROIDHDD/;1
    /mnt/sdcard/cifs/MUSICHDD/;/sdcard/MUSICHDD/;1
    /mnt/sdcard/cifs/VIDEOHDD/;/sdcard/VIDEOHDD/;1
    ----BASE MOUNT POINTS BY USB--------------------------------;;
    0/mnt/usb/ANDROIDHDD/;/sdcard/ANDROIDHDD/;0
    /mnt/usb/MUSICHDD/;/sdcard/MUSICHDD/;0
    /mnt/usb/VIDEOHDD/;/sdcard/VIDEOHDD/;0
    ...
    Desactivar las entradas correspondientes a NET (Recurso de red), y activar las de USB (dispositivo conectado por USB)


    y con este cambio, ya podemos acceder al mismo contenido que teníamos por red, pero ahora por el disco duro o pendrive directamente conectado por USB
    Si por otra parte tenemos una microSD, y copiamos el contenido de la carpeta ANDROIDHDD (o parte del contenido), y queremos acceder a el desde android, el cambio es similar al anterior, aunque esta vez hay que verificar el nombre que android da a nuestra microSD externa.
    como ya hemos editado el fichero directorybind_conf.csv y tenemos el nombre correcto de nuestra microSD, simplemente nos basta con desactivar y activar las opciones correspondientes a la microsd para que el sistema funcione con estos directorios enlazados.
    Y de esta manera tenemos un sistema "dinámico" que nos permite direccionar de manera rápida y cómoda los contenidos para nuestro dispositivo, dependiendo de donde tengamos almacenada la información del mismo.

    Palabras finales
    Hasta aquí este manual introductorio sobre como utilizar DirectoryBind y Cifs de una manera un tanto "alternativa", que espero que sea del interés de algunas personas que seguramente vean mas utilidades que yo a estas herramientas.

    He querido compartir este artículo, por que es algo que hago de forma normal en mis instalaciones, pero que posiblemente exista alguna persona interesada en sacar ideas de esto mismo para implementar en sus propias instalaciones, y que estaría encantado de conocer si me dejáis algún comentario al respecto, para sacar mas ideas aún para poder seguir probando.

    Disculpad si en algún punto no he sido lo suficientemente claro. He escrito esto un poco de manera rápida, por que he tenido un momento libre para hacerlo, y no quería desaprovechar la oportunidad.

    Zalu2!

    Deen0X
    Última edición por Deen0X; 23/07/2013 a las 14:43

  2. Los siguientes 2 usuarios agradecen a Deen0X este post:

    imeko (23/07/2013), Meldinov (23/07/2013)

  3. #2

    Fecha de ingreso
    Sep 2005
    Mensajes
    4,197
    Mencionado
    15 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    8
    Agradecer Thanks Received 
    32
    Thanked in
    Agradecido 29 veces en [ARG:2 UNDEFINED] posts
    Y esto viene de lujo para la OUYA, de hecho lo integran en las roms modificadas
    "Al río que todo lo arranca todos lo llaman violento, pero nadie llama violento al lecho que lo oprime."

  4. #3

    Fecha de ingreso
    Dec 2011
    Mensajes
    2,411
    Mencionado
    55 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    9
    Agradecer Thanks Received 
    419
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    7
    es mas, todo esto nació por que lo implementé en la OUYA como primer paso. luego, todas las aplicaciones las he instalado desde OUYA hacia la unidad de red.

    el problema original que tuve es que en algún momento tenía algunas aplicaciones instaladas en la OUYA, y tenía redireccionado todo hacia un pendrive por usb, y cuando quise instalar NOVA3 o MC4, no recuerdo, OUYA me dijo que no tenía espacio (en el pendrive tenía unos 40GB libres!), y me di cuenta que OUYA (bueno, android), antes de instalar, verifica si en la memoria sdcard (en este caso, la memoria interna) tiene espacio para descargar la aplicación e instalarla. El tema es que el juego en cuestión ocupaba unos 1.4GB o asi, y la memoria de ouya tenía 1.2GB o asi libres... y claro, ahí estaba el "truco"

    formateé la memoria interna, enlacé hacia el USB, y claro, ahora me dejó instalar por que tenía 5GB libres en OUYA.
    El resto es cuestión de prueba y error hasta que dí con la forma correcta de enlazar todo por red.

    Ahora mismo en la OUYA no tengo ninguna aplicación instalada localmente (bueno, si, un par de aplicaciones, ES FIle Explorer y similares), y siempre que se verifica el espacio, tiene 5GB libres aproximadamente, por lo que nunca tengo el mensaje de que no tengo espacio para instalar la aplicación.

    ya te digo, he instalado cerca de 60GB de aplicaciones directamente desde la OUYA (un par de días con la consola conectada y solo instalando), y ya tengo mi directorio de red alimentado con todas estas instalaciones, y ahora las utilizo con los demás dispositivos.

    resumiendo, OUYA nunca se queda sin espacio (bueno, en algún momento se quedará sin espacio para instalar los apk, pero eso es otra cosa), ahorro en descargas de ficheros, puedo copiar directamente mis datos de "android/data" y "android/obb" a otro dispositivo y así llevarme el programa en cuestión... y me ahorro en microSD ^_^

    a ver si alguna otra persona ve la forma de utilizar este sistema para sacarle partido también.


    y si, casi todos los dispositivos tipo android tv, muchas tablets y consolas vienen con CIFS implementado (incluso ahora he descargado un módulo CIFS para la Archos Gamepad, así que en casa lo probaré también)

    Zalu2!

  5. #4

    Fecha de ingreso
    Dec 2011
    Mensajes
    2,411
    Mencionado
    55 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    9
    Agradecer Thanks Received 
    419
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    7
    a ver si alguien alguien quiere probarlo.

    todo lo que he escrito en el artículo, lo he resumido en un fichero/script, que intenta automatizar la mayoría de los pasos.

    requisitos:
    windows (donde se ejecuta el script)
    dispositivo android con CIFS habilitado (OUYA con el custom firmware vale)
    que tanto windows como android estén en la misma red (no importa si es por wifi o por cable)

    ok, el fichero es este:
    https://mega.co.nz/#!uJlnALgQ!Jccs5Q...H4Xz57YsBQGT4g

    descargarlo, descomprimir en la raíz de vuestro disco duro, y ejecutar.
    creará una carpeta ANDROIDHDD, y dentro generará una estructura de directorios.
    compartirá esta carpeta en full access para todos los usuarios del pc
    generará el fichero de configuración del DirectoryBind
    descargará (mediante vuestro navegador) el DirectoryBind apk desde el foro de XDA
    guiará en el proceso para configurar el dispositivo android

    al final, tendréis enlazado el dispositivo con vuestra unidad de red, haciendo como si fuese una microsd.
    Nota: En algunos pc puede que el código para obtener la IP del pc no funcione correctamente. Para estos casos, asumiré que sabéis que IP es la de vuestro PC, para ponerla correctamente.

    a ver si alguien lo prueba y me comenta que tal le va.

    Zalu2!

  6. El siguiente usuario agradece a Deen0X este mensaje:

    Dante_moraes (27/07/2013)

  7. #5

    Fecha de ingreso
    Dec 2011
    Mensajes
    2,411
    Mencionado
    55 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    9
    Agradecer Thanks Received 
    419
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    7
    He generado un script mas depurado para realizar los pasos necesarios y habilitar CIFS&BIND.

    https://mega.co.nz/#!uJlnALgQ!Jccs5Q...H4Xz57YsBQGT4g

    Para mas información, mirar el artículo original.

    Zalu2!

  8. El siguiente usuario agradece a Deen0X este mensaje:

    Dante_moraes (27/07/2013)

  9. #6

    Fecha de ingreso
    Dec 2010
    Ubicación
    Brasil
    Mensajes
    106
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    7
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Voy a tentar la "Alternativa al Swap de la microSD".

    Gracias por el post!

    Saludos!


  10. #7

    Fecha de ingreso
    Jan 2014
    Mensajes
    1
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Buenas, soy nueva en el mundo Android (hasta ahora mi mundo era exclusivamente c# y .net, con algunos añadidos ultimamente de php) y me ha parecido de lo más interesante el post (que sepas que me he registrado simplemente para dejarte un comentario, el post lo vale )

    Estoy investigando opciones para tener conectado por USB un Disco Duro externo a un Android (enfocado a engancharlo por hdmi a la tele o proyector) para tener las pelis, musica, etc Tambien quería tener la opción de conectarlo a carpetas compartidas de los PCs que pueda haber en la red local.

    Obviamente el quid está en poder acceder directamente a los archivos sin que se copien al almacenamiento del android, reproducir por ejemplo. Y sobre eso me has dado una gran idea. Para el futuro próximo intentare empezar a hacer algun programilla en android e iba a empezar por un gestor de contenidos multimedia para este montaje (para manejar desde la tv). Una parte que no sabia como solucionar era como darle acceso directo a los archivos y poder enviarle a un reproductor una ruta de archivo fija para reproducir sin salir del gestor multimedia, pero me imagino que se podrá hacer usando tu solución.

    Vamos, que muchas gracias por tu aporte.
    Si tienes algun consejo sobre este tema también te lo agradezco

  11. #8

    Fecha de ingreso
    Dec 2011
    Mensajes
    2,411
    Mencionado
    55 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    9
    Agradecer Thanks Received 
    419
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    7
    te agradezco a tí la molestia de haber contestado.

    soy consciente que este tipo de artículos poca gente los lee y, sobre todo, los entiende (lo que trato de explicar), pero aprecio mucho cuando alguien muestra interés en ellos.

    por mi parte, no se si podría serte de ayuda. soy un usuario bastante normal en android, que tiene algo mas de experiencia y poco mas. Soy ex-programador (por que hace mucho tiempo que no toco nada, que no sea programar por hobby) en VB6, y me he quedado estancado en esa época.

    Ahora mismo, es mas probable que encuentres usuarios que postean poco pero que saben muchísimo mas que yo, y que probablemente si te pueden ayudar mucho mas, pero aún así si quieres que pruebe algo o me quieres preguntar lo que sea, si puedo responder, yo encantado.

    un saludo! y espero (de verdad de la buena) ver esa aplicación que quieres hacer!


Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •