|
||
|
|
|
|||||||
| Avisos |
| Discusión general sobre Android Exclusivo para hablar de Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
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: <u>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</u>. 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. RESUMEN Dado que este foro limita la cantidad de carácteres por mensaje, y que no son suficientes para publicar el artíuclo completo, este post es un resumen del artículo original que se encuentra en mi blog. 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) Cita:----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 ![]() 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. Cita:...
/mnt/external_sdcard/ANDROIDHDD/;/sdcard/ANDROIDHDD/;0 /mnt/external_sdcard/MUSICHDD/;/sdcard/MUSICHDD/;0 /mnt/external_sdcard/VIDEOHDD/;/sdcard/VIDEOHDD/;0 ... ![]() 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.
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 Cita:...
----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 ... ![]() 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 |
| Gracias de parte de: | ||
|
|
|
#2
|
||||
|
||||
|
He generado un script 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! |
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
Joder, un trabajo impresionante, si solo se quieren modificar las rutas de almacenamiento x ejemplo : mnt/sdcard x mnt/ext_sdcard de forma permanente, cual seria el comando en dicho archivo?
|
|
#4
|
||||
|
||||
|
si lo que quieres hacer es un swap de la memoria interna por la microsd, simplemente cambia los directorios importantes (android, dcim, pictures).
He intentando hacer un swap completo de sdcard por una microsd, pero directorybind no me lo permite. en todo caso, se pueden agregar nuevas líneas en el fichero, de modo que si tienes una microsd compartida en tu pc, o tienes la misma estructura montada, y quieres apuntar a tu microsd insertada en tu dispositivo, agrega las siguientes lineas para hacerlo de manera mas simple: Cita:----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 MICROSD--------------------------------;;0 /mnt/ext_sdcard/;/sdcard/ANDROIDHDD/;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 ![]() evidentemente, cambia "ext_sdcard" por el nombre de la microsd que tengas, que ya debes saber que existen miles: ext_sd extsd external_sd external_sdcard sdcard/ext_sd sdcard/extsd sdcard/external_sd sdcard/external_sdcard etc. espero que esto sea la respuesta a lo que me estabas preguntando. Zalu2! |
|
#5
|
||||
|
||||
|
Hola. Tengo un hd en el usb del router compartido por samba. En el mountmanager pongo //SMBSHARE/samba/usb1_1/Comics, q es el directorio q qiero acceder. Como ruta d montaje me pone /storage/emulated/legacy/cifs/Comics automaticamte, igual q 0777 en file_mode y dir_mode. Tb me pone guest como usuario, cosa q no tengo ni usr ni psw puestos en samba. La cuestion es q no me monta el recurso, y no se pq. Tengo una samsung galaxy tab4. Me podeis ayudar? Mercy
Última edición por sukoruiz Día 10/04/15 a las 01:19:11. |
|
#6
|
||||
|
||||
|
buenas.
antes que nada, has confirmado que tienes CIFs habilitado en la tablet? me suena que los Samsung no vienen con CIFs en general, a no ser que pongas algún custom firmware, etc. conecta a cualquier carpeta que tengas compartida en tu PC, para verificar. crea una carpeta 1 comparte en usuario, crea uno específico como "usuarioshare" asignale una password como "share" (no dejes sin usuario o password, que android le cuesta conectar a ese tipo de recursos) luego en el mountmanager o el que uses, pones: ipdelpc/1 usuario y password si conectas, entonces tienes CIFS, si no conecta, es que no tienes soporte. |
![]() |
Estás aquí
|
||||||
|
||||||