4 votos

¿cómo hacer una copia de seguridad manual de los datos de una aplicación?

Puedo hacer una copia de seguridad de los datos de mi aplicación desde el root/data/data/you.package.name Sin embargo, cuando invierto el proceso, es decir, pego los datos para simular una restauración, la aplicación se cierra a la fuerza, lo he probado con un montón de aplicaciones y he notado la misma reacción. ¿En qué me equivoco?

1 votos

Supongo que los permisos se han estropeado. No copiar en la tarjeta SD directamente, sino hacer un archivo tar que conserve los permisos de los archivos de origen (datos de la aplicación). Restaura los datos de tal manera que se restauren los mismos permisos, restaura el contexto de SELinux (en caso de que SELinux esté en modo de aplicación). Por cierto, ¿qué dispositivo y versión de Android estás utilizando?

0 votos

Además, antes de restaurar, asegúrate de que la aplicación cuyos datos intentas restaurar está completamente detenida. Hazlo a través de la línea de comandos o de la aplicación Ajustes. Asegúrate también de borrar sus datos antes de restaurar los tuyos. Tal vez mi respuesta pueda ayudar aquí: Copia de seguridad de los datos completos de una aplicación cuando el teléfono está atascado en el bootloop

0 votos

los permisos sólo se requieren para las carpetas del sistema mi dawg no los datos del usuario mi homie me dijo

5voto

Izzy Puntos 45544

Como no hay más opiniones, resumiré a partir de los comentarios para aquellos que se encuentren con un problema similar:

Firelord señaló correctamente lo más probable es que se trate de un problema con los permisos de los archivos. El almacenamiento interno utiliza un sistema de archivos que soporta permisos granulares de archivos 1 - que no son compatibles con el sistema de archivos utilizado en las tarjetas SD 2 . Así que la copia de todos los contenidos en su tarjeta SD ha perdido esa información, y la propiedad se perdió 3 . Así que copiando esto de nuevo a su almacenamiento interno, todavía tiene la propiedad equivocada, por lo que la aplicación no puede acceder a ella correctamente. No esperaba esto 4 la aplicación, por supuesto, se comportará mal: un excepción se producirá sin ser manejado, por lo que la aplicación se bloquea (force-close).

Para los que lo comprobaron con el mount y ahora argumentar ¡te equivocas, la tarjeta SD no utiliza FAT sino FUSE! - Es cierto que es FUSE, pero en este caso actúa como FAT. ¿Qué sistema de archivos es FUSE, por favor? :) No es un físico sistema de archivos por sí mismo, sino un virtual uno (FUSE significa Sistema de archivos en el espacio de usuario que se opone al "espacio del sistema", también conocido como "espacio del núcleo") que proporciona un "puente" a las interfaces reales del núcleo. Hay varios sistemas de archivos que utilizan FUSE: SSHFS, DAVFS y otros tienen implementaciones de FUSE. Una vez más, fue El Señor del Fuego trae un poco de apoyo a mi reclamación: _El programa sdcard hace el trabajo de montar FUSE y en config.jd se menciona que el programa sdcard es utilizado por algunos dispositivos para exponer el almacenamiento interno a través de FUSE._

Conclusión: Usted tomó un enfoque completamente equivocado para copia de seguridad y restaurar aquí. Si realmente querías lidiar con eso a nivel de sistema de archivos, deberías haber usado una herramienta como alquitrán (que está disponible y suele estar preinstalado en los dispositivos Android) para archivar los contenidos conservando los permisos (el "tarball" resultante puede copiarse a la tarjeta SD, y los contenidos seguir siendo extraídos a su ubicación original correctamente). Por otro lado, como nuestro copia de seguridad de la etiqueta-wiki te dirá, esto es exactamente lo que adb o aplicaciones como Helium - Sincronización y copia de seguridad de aplicaciones y Copia de seguridad en titanio son para.


1: en las versiones más antiguas de Android esto solía ser YAFFS , en el más nuevo es Extfs
2: normalmente FAT
3: o más bien "restablecer" los valores predeterminados utilizados para el contenido almacenado en la tarjeta SD
4: un usuario normal no puede hacer esas cosas, ya que /data/data/<package_name> no es accesible a nadie más que a su propietario y a Root

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X