Acceder

Ver la Versión Completa : ¿dónde se guarda la configuración de las apps en Android?


Cixert
25/09/17, 18:35:09
Pretendo guardar todos los idiomas sin conexión de la app Google Translate para traspasarlos de un teléfono a otro.
-Los he descargado desde el menú de la propia app.
-9 GiB se han almacenado en la ruta
sdcard0/Android/data/com.google.android.apps.translate
En otras apps con copiar y pegar estos datos en otro teléfono ya se muestran los idiomas como instalados, pero en Google Translate no funciona. Aunque borre la carpeta de datos el menú de la app sigue mostrando los idiomas que instalé como instalados, y viceversa, si reinstalo la app y copio los datos a esta ruta el menú de la app sigue diciendo que no están instalados los idiomas.
Necesitaría conocer dónde se guarda la info que configura la app con las opciones activadas o desactivadas en su menú.
Gracias.

fm4r1n
25/09/17, 19:07:42
Si lo tienes root usa titanium backup

Enviado desde mi Edison 3 mediante Tapatalk

chucky6600
25/09/17, 21:51:02
Hola Cixert:
Movemos a discusión general sobre Android.

Cixert
27/09/17, 03:34:04
Titanium Backup sería una opción, el problema es que no restaura datos de aplicaciones entre dispositivos distintos. Además no se si Titanium será capaz de copiar los 9 GiB comprimidos a la SD, teniendo en cuenta que el límite de archivo en FAT32 son 4 GiB. Por otra parte también existe Helium que aun no lo he probado pero parece ser que también copia los datos, en este caso al PC. Desconozco si es capaz de trasladar los datos de un dispositivo a otro.

En cualquier caso preferiría realizar la copia manualmente puesto que no pretendo restaurar todos los idiomas del Google Translate en cada teléfono sino solo los necesarios en cada país que pueda visitar.
-------------------------------------------------------------
Me acabo de pasar 12 horas del tirón intentando comprender la estructura de directorios en Android. No he encontrado información fiable en español en Internet. Casi todos los artículos que he leido son erroneos. Aun así he conseguido recabar algunos datos y deducir el resto dándole vueltas al coco horas y horas.
En mi mi vida me había encontrado con nada más enrevesado que esto. Cómo de costumbre en la telefonía computacional los fabricantes consideran al usuario como a un "inepto" que no sabe y nos ponen opciones supuestamente más fáciles o agradables que no hacen más que dificultar el conocimiento de lo que realmente estamos haciendo.
En el caso de la estructura de ficheros de Android esta casi consigue romper mis límites neuronales. Aunque el sistema no es malo en sí, si se explicaran los cambios a los usuarios con cada salida de una nueva versión de Android y se ayudara a comprender el sistema. Pero se hace al revés, no se da ni un manual de Android y se trata de bloquear al usuario para que este no consiga hacerse root.

Voy a tratar de explicar mis conclusiones pre-eliminares y agradecería que se me corrigiera si estoy equivocado. Solo manejo las versiones de Android 2.3, 4.1 y 4.2. Me basaré en estas. Supongo que en versiones más nuevas el modelo será aun más complejo.
-------------------------------------------------------------------------------------------
En Android nos encontramos una estructura "única y mezclada" de "particiones (visible u ocultas, incluso siendo root)", "puntos de montaje", "carpetas reales" y "accesos directos" (nótese la flechita en el icono de la carpeta).
Desde la versión 4.0 Android cuenta además con una tarjeta SD emulada dentro del espacio de almacenamiento interno. Sin ser usuario root es la única parte a la que podremos entrar y se realiza por medio de "accesos directos" a la "ubicación real" dentro de la estructura de carpetas.
Es decir, no se trata de un espacio a parte sino de una parte del directorio real de las carpetas dentro de la partición /data.
Con cada nueva versión de Android el nombre de estos accesos directos ha cambiado, por lo que en cada nueva versión se conserva dentro de la estructura de carpetas los accesos directos utilizados en las versiones anteriores (el caos solo acaba de empezar).
El hecho de que esta tarjeta sea tan solo una emulación ficticia explica el porque cuando se instalan aplicaciones de usuario el tamaño disponible en esta tarjeta emulada disminuye y el porque al desinstalar aplicaciones de usuario su tamaño disponible aumenta.
No disminuye, sin embargo, el tamaño disponible para aplicaciones del sistema y de la cache, ya que estas son particiones distintas /system y /cache.
Las aplicaciones de información del espacio de almacenamiento nos mostrarán las particiones "visibles" en nuestro Android. Generalmente no mostraran las ocultas /boot /misc y /recovery.
Se puede además consultar Link2SD para conocer la ubicación de los datos de la aplicaciones pero este muestra en algunos casos "rutas de accesos directos" en vez de rutas reales.

En verdad es una estructura muy similar a la de Linux y todas las rutas comienzan por el directorio raíz / (también llamado dispositivo).

A continuación esquematizo la estructura real de las aplicaciones y sus datos de configuración. Esta es la misma en todas las versiones de Android*.


RUTAS REALES DE APLICACIONES Y SU CONFIGURACIÓN

PARTICIÓN /SYSTEM

Aplicaciones del sistema:
/system/app (solo lectura)


PARTICION /DATA

Aplicaciones de usuario
/data/app
No se mostrarán si se han movido a la tarjeta SD. En este caso se mostrarán en el punto de montaje /mnt/asec
Según leo parece ser que las aplicaciones cifradas están en otra parte.
(posiblemente en la carpeta .android_secure)

data/data (datos de configuración de la aplicación)
/data/data/nombredelaapp
databases/ - Contiene bases de datos de la app
lib/ - Archiva las bibliotecas y ayudas de la aplicación
files/ - Contiene archivos relacionados
shared_prefs/ - Guarda las preferencias y ajustes de la app
cache/ - Contiene la caché de la aplicación

Las aplicaciones pueden usar datos ¿multimedia?, a continuación relato las rutas reales de estos datos.
En Android 2.3 estos datos se guardaban en la tarjeta SD externa. Desde Android 4.0 están contenidos dentro de unas carpetas del espacio de almacenamiento interno.
Estos son los datos a los que tienen acceso los usuarios no root, se trata de la ubicación real de la tarjeta emulada
(aunque ellos ven otras rutas que solo son accesos directos a estas)

Android/data (descargas de sonidos, idiomas, etc)
/mnt//sdcard/Android/data (Android 2.3)
/data/media/Android/data (Android 4.1)
/data/media/0/Android/data (Android 4.2)*

Android/OBB (mapas, niveles de juegos, etc)
Se pegan tras instalar un apk en
/mnt/sdcard/Android/obb (Android 2.3)
/data/media/Android/obb (Android 4.1)
/data/media/0/Android/obb (Android 4.2)*

*Desde la versión 4.2 los datos de cada usuario del teléfono se dividen en una estructura paralela, a mitad de camino, con carpetas númeradas, empezando por la número "0".


PARTICIONES EXTERNAS

En el caso de los espacios de almacenamiento extraibles las rutas de montaje cambian de una versión a otra de Android. Además existen varios accesos directos, debajo de cada estructura real de carpetas relaciono los accesos directos utilizados en cada versión de Android. Además cada nueva versión contiene rutas de los accesos directos utilizados en versiones anteriores.

Tarjeta SD
mnt/sdcard (Android 2.3)
/storage/extSdCard (Android 4.1)
/storage/removable/sdcard1 (Android 4.2)
Accesos directos:
/storage/sdcard1
/ext_card

2ª Partición tarjeta SD
/sd-ext
Se puede acceder por /data/sd2ext

Unidad USB
storage/UsbDriveA (Android 4.1)
storage/removable/usbdisk (Android 4.2)
Accesos directos:
/storage/usbdisk
/usbdisk


Y, para finalizar, relaciono las rutas emuladas de almacenamiento de aplicaciones y datos, es decir las que son de "mentira", así como los accesos directos a estas ubicaciones "emuladas".
PARTICIÓN EMULADA (realmente está dentro de la partición /data)
ALMACENAMIENTOS EMULADOS DE APLICACIONES Y DATOS
(las rutas no son reales)

Tarjeta interna emulada
/storage/sdcard0 (Android 4.1)
/storage/emulated/legacy (Android 4.2)
Accesos directos Android 4.2:
mnt/sdcard (ruta original tarjeta SD en Android 2.3)
(fijarse en la flecha de acceso directo)
/storage/sdcard0 (ruta original Android 4.1)
OJO a veces sale:
/storage/emulated/0
El " 0" significa que es el usuario propietario .
Si creamos usuarios adicionales , este número se incrementará para cada uno.

Ruta emulada de la carpeta "data/media/Android/data":
/storage/sdcard0/Android/data/nombredelaapp (Android 4.1)
/storage/emulated/legacy/Android/data/nombredelaapp (Android 4.2)
Accesos directos Android 4.2:
mnt/sdcard/Android/data/nombredelaapp (ruta original tarjeta SD en Android 2.3)
(fijarse en la flecha de acceso directo)
/storage/sdcard0/Android/data/nombredelaapp (ruta original Android 4.1)

Ruta emulada a la carpeta data/media/Android/OBB:
/storage/sdcard0/Android/OBB/nombredelapp (Android 4.1)
/storage/emulated/legacy/Android/OBB/nombredelapp (Android 4.2)
Accesos directos Android 4.2:
mnt/sdcard/Android/OBB/nombredelaapp (ruta original tarjeta SD en Android 2.3)
(fijarse en la flecha de acceso directo)
/storage/sdcard0/Android/OBB/nombredelaapp (ruta original Android 4.1)

Pues bien, después de darle tantas vueltas al "coco" todavía no he conseguido extraer todos los idiomas de Google Translate, desinstalar la app y que tras volverla a instalar al pegar las carpetas de datos estos aparezcan como instalados en el menú de la aplicación. Así que todavía hay algo que se me escapa.
¡Salud!

Edito: La explicación está aquí http://www.htcmania.com/showthread.php?t=1353932