¿Cómo puedo acceder a los archivos en "/data/data" y copiarlos en la tarjeta de memoria sin root?

¿Hay alguna forma de acceder a los archivos /data/datay copiarlos en la tarjeta de memoria? No tengo acceso de root.

Respuestas (1)

Sin acceso de root tienes 2 opciones. Ambas opciones (pueden) permitirle acceder a los archivos de una aplicación en particular, por ejemplo, la carpeta /data/data/com.app.packagename.

  1. Si la aplicación se puede depurar, puede usar el run-ascomando en adb shell (puede encontrar más información sobre qué es adb y cómo instalarlo aquí )

    adb shell
    run-as com.your.packagename` 
    cp /data/data/com.app.packagename/
    
  2. Si la aplicación no se puede depurar, puede utilizar la función de copia de seguridad de Android.

    adb backup -noapk com.app.packagename
    

    Ahora se le pedirá que "desbloquee su dispositivo y confirme la operación de copia de seguridad". Es mejor NO proporcionar una contraseña, de lo contrario se vuelve más difícil leer los datos. Simplemente haga clic en 'copia de seguridad de mis datos'. El archivo 'backup.ab' resultante en su computadora contiene todos los datos de la aplicación en formato de copia de seguridad de Android. Básicamente es un archivo tar comprimido. Esta página explica cómo puede usar el comando zlib de OpenSSL para descomprimirlo. Puede usar el adb restore backup.dbcomando para restaurar la copia de seguridad.

¿Esto también se aplica a las aplicaciones con android:allowbackup="false"?
@Drejon No, no creo que funcione en ese caso (pero no lo he probado, así que no estoy 100% seguro).
Estoy seguro de que hay algunos casos de aplicación que no permiten la copia de seguridad. Al crear una copia de seguridad de todas las aplicaciones, simplemente no hacen una copia de seguridad de nada. AFAIK, alguna aplicación puede proporcionar un subconjunto restringido de archivos o tal vez incluso algo personalizado, así que no lo consideres como siempre 1:1 del directorio en /data/data. Por cierto, BlackBerry me obliga a usar alguna contraseña, pero es posible descifrarla (si tienes la contraseña). Creo que he usado sourceforge.net/projects/adbextractor para eso.
Logré obtenerlo con adb backup -noapk com.app.packagename Obtendrás backup.ab y luego necesitarás convertirlo a tar (para abrirlo con 7zip) Puedes convertirlo con sourceforge.net/projects/adbextractor - allí es jar dentro de thi llamado abe.jar. Luego puede ejecutar el comando java -jar abe.jar unpack backup.ab backup.tar
Si adb backupproduce un archivo pequeño (41-47 bytes), es posible que el APK esté marcado como allowBackup=0. corre aapt dump xmltree whatever.apk AndroidManifest.xml | grep allowBackup_