¿Copiar todo desde /data/app y /data/data será suficiente para la copia de seguridad de la aplicación?

Tengo un dispositivo Android (Xiaomi MiPad-I, ROM estable) que no es del todo apto para rootear, por lo que no puedo instalar la copia de seguridad de Titanium en eso. Sin embargo, puedo arrancar el dispositivo usando la recuperación CWM y montar las particiones /sistema y /datos en modo RW durante el arranque.

En este modo, puedo copiar lo que quiera conectándome a una PC y usando adbcomandos. Sin embargo, quiero saber si copiar los contenidos de /data/app y /data/data a mi PC es suficiente para la copia de seguridad de todas las aplicaciones. ¿O hay algo más que haga la copia de seguridad de Titanium? Solo necesito las aplicaciones de usuario, las aplicaciones del sistema ya están disponibles mediante un restablecimiento de fábrica o una ROM estándar.

También desea copiar todo en formato /sdcard/Android. Algunas aplicaciones almacenan datos allí y todos los archivos OBB también están allí.
También necesita hacer una copia de seguridad de los enlaces simbólicos. Solo TAR puede hacer eso ( adb pullno es suficiente, si simplemente desea recuperar todo con adb push, no puede hacerlo de manera realista).
@GiantTree ¡Gracias! ¿Qué enlaces simbólicos se necesitan? ¿Las aplicaciones no root pueden crear enlaces simbólicos y almacenar datos allí? Tenía la impresión de que las aplicaciones que no son raíz solo pueden acceder a /data/data/package_name y están aisladas solo allí.
Además, solo necesito una copia de seguridad de los datos , puedo instalar las aplicaciones por separado. Por ejemplo, necesito el caché de Firefox. Puedo instalar Firefox apk en cualquier momento, pero necesito hacer una copia de seguridad y restaurar mi historial de navegación.
Todas las aplicaciones tienen un enlace simbólico /data/data/<package name>/libsa algún directorio que contiene sus bibliotecas. Fallarán si simplemente restaura el directorio, necesitan el enlace simbólico apropiado a la carpeta de la biblioteca (debido a permisos, identificaciones y algo más de magia). Reinstalar la aplicación asegurará que el enlace simbólico se cree correctamente.
¿Qué pasa si no quiero hacer una copia de seguridad de las aplicaciones (APK) y solo de sus datos? Como dije en el ejemplo de Firefox, solo me preocupan los datos (historial de navegación) que ha almacenado Firefox. Tengo todos los APK respaldados por separado (ES File Explorer ya lo hace). Así que mi idea de restauración es: 1. Instale primero el APK por separado (firefox_47.apk). 2. Reinicie CWM y copie los archivos /data/data. ¿Eso funcionará?
Sí, pero solo si recuerda configurar la propiedad y los permisos correctamente. Puede obtener el propietario correcto desde el propio directorio y los permisos deben ser 660 para archivos y 771 para carpetas (rw-rw---- y rwxrwx--x). Algunas recuperaciones vienen con una función de "Reparar permisos", puede usarla en su lugar.

Respuestas (1)

Para hacer una copia de seguridad como la que desea, puede simplemente copiar todo /data/dataexcepto los libdirectorios/enlaces simbólicos (fallarán cuando desee restaurarlos/empujarlos).

Una cosa muy fácil de hacer es adb pull /data/datay luego eliminar todos los libarchivos (ya que los enlaces simbólicos son solo archivos pero se refieren a directorios).

Al restaurar, puede instalar cada aplicación, usando, adb installpor ejemplo, y restaurar los datos manualmente, es decir. simplemente empújelo hacia atrás y corrija los permisos.
Asegúrese de que las aplicaciones en cuestión no se estén ejecutando.

Para corregir los permisos, puede hacerlo manualmente o con un script de shell rápido. Lea el propietario del directorio de datos de cada aplicación y establezca recursivamente ese propietario (y grupo) en ese propietario y grupo (usando chown user:group -R /data/data/<package name>). Los usuarios y grupos tienen el formato u0_a000, el enlace simbólico a libes propiedad de install.