¿Cómo acceder a la carpeta de datos/datos en un dispositivo Android?
Estoy desarrollando una aplicación y sé que mi base de datos *.db
aparecerá endata/data/com.****.***
Puedo acceder a este archivo desde AVD en Eclipse con la ayuda de sqlite manager
Pero no puedo acceder a este archivo en mi teléfono Android.
Lo busqué en Google y dice que necesito rootear mi teléfono para hacerlo, pero no quiero hacerlo.
¿Cómo puedo acceder a mi data/data/.....
directorio en mi teléfono Android " sin rootearlo? "?
¿ Puedo cambiar los permisos de usuario para el directorio data/data.....
sin rootearlo?
Acceder a los archivos directamente en tu teléfono es difícil, pero es posible que puedas copiarlos a tu computadora, donde podrás hacer lo que quieras con ellos. Sin rootear tienes 2 opciones:
Si la aplicación se puede depurar, puede usar el
run-as
comando en adb shelladb shell run-as com.your.packagename cp /data/data/com.your.packagename/
Alternativamente, puedes utilizar la función de copia de seguridad de Android.
adb backup -noapk com.your.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 será más difícil leer los datos. Simplemente haga clic en 'hacer 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 utilizar el comando zlib de OpenSSL para descomprimirlo:
dd if=mybackup.ab bs=24 skip=1|openssl zlib -d > mybackup.tar
Si el openssl zlib
comando no funciona en su sistema, existen otras opciones .
Puede utilizar el adb restore backup.db
comando para restaurar la copia de seguridad.
Si está utilizando Android Studio 3.0 o una versión posterior, siga estos pasos.
- Haga clic en Ver > Ventanas de herramientas > Explorador de archivos de dispositivos .
- Expanda los nodos /data/data/[nombre-paquete] .
Sólo puede expandir paquetes que se ejecutan en modo de depuración en un dispositivo no rooteado.
También puedes intentar recuperar la base de datos usando la aplicación Root Explorer. Y si eso no funciona, puedes probar esto:
- abrir cmd
- Cambie su directorio y vaya a 'Herramientas de plataforma'
- Tipo '
adb shell
' su
- Presione 'Permitir' en el dispositivo
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
- Abra la vista DDMS en Eclipse y desde allí abra 'FileExplorer' para obtener el archivo deseado
Después de esto, debería poder explorar los archivos en el dispositivo rooteado.
Para hacer cualquiera de las cosas anteriores (es decir, acceder a carpetas protegidas desde el propio teléfono), aún necesita root. (Eso incluye cambiar los permisos de montaje en la carpeta /data y acceder a ella)
Sin root, no es posible acceder /data
directamente para leer, excepto desde su aplicación a través del código. Por lo tanto, podría intentar copiar ese archivo en la tarjeta SD o en algún lugar accesible y luego debería poder acceder a él normalmente.
El rooteo no anulará la garantía si tiene un dispositivo de desarrollador. Lo siento, no hay otra manera que yo sepa.
- Abra su símbolo del sistema
- Cambie el directorio a E:\Android\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
- Ingrese los siguientes comandos
adb -d shell
run-as com.your.packagename cat databases/database.db > /sdcard/database.db
- Cambie el directorio para
cd /sdcard
asegurarse dedatabase.db
que esté allí. adb pull /sdcard/database.db
o simplemente puede copiar la base de datos.db desde el dispositivo.