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 del administrador sqlite
Pero no puedo acceder a este archivo en mi teléfono Android.
Lo busco en Google y dice que necesito rootear mi teléfono para hacerlo, pero no quiero hacerlo. (Teléfono nuevo, problemas de garantía y problemas de seguridad)
Así que aquí está mi pregunta: ¿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?
android
android-emulator
android-sqlite
adb
Naveen Prince P
fuente
fuente
Respuestas:
Acceder a los archivos directamente en su teléfono es difícil, pero puede copiarlos a su computadora donde puede hacer lo que quiera con él. Sin rooting tienes 2 opciones:
Si la aplicación es depurable, puede usar el
run-as
comando en adb shellAlternativamente, puede utilizar la función de copia de seguridad de Android.
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 'respaldar 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.db
comando para restaurar la copia de seguridad.fuente
adb backup -f \location\on\local\drive -noapk app.package.name
funcionó para mí sin rootdd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
adb backup -noapk com.your.packagename
guardará el archivo ab en el directorio actual , así que asegúrese de haber navegado en el directorio correcto (por ejemplocd Desktop..
)android:allowBackup="false"
en el manifiesto.Si está utilizando Android Studio 3.0 o una versión posterior, siga estos pasos.
Solo puede expandir paquetes que se ejecutan en modo de depuración en dispositivos no rooteados.
fuente
3.0.1
, ¿se ha movido?También puede intentar buscar el db usando la aplicación de exploración de raíz. Y si eso no funciona, puedes probar esto:
adb shell
'su
chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
Después de esto, debería poder explorar los archivos en el dispositivo rooteado.
fuente
Para hacer cualquiera de los anteriores (es decir, acceder a carpetas protegidas desde su 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 a leer excepto desde su aplicación a través del código. Por lo tanto, puede intentar copiar ese archivo en una tarjeta SD o en un lugar accesible, y luego, debería poder acceder a él normalmente.El enraizamiento no anulará su garantía si tiene un dispositivo desarrollador. Lo siento, no hay otra manera AFAIK.
fuente
adb pull
como se menciona en la respuesta a continuación.La forma más fácil (solo un simple paso) de extraer un archivo de su carpeta de aplicación depurable (digamos
/data/data/package.name/databases/file
) en un dispositivo Android 5.0+ sin raíz es mediante este comando:fuente
adb -d shell
run-as com.your.packagename cat databases/database.db > /sdcard/database.db
cd /sdcard
para asegurarse de quedatabase.db
esté allí.adb pull /sdcard/database.db
o simplemente puede copiar database.db del dispositivo.fuente
Use el Explorador de archivos en eclipse. Seleccione Windows => Mostrar vista => Otro ... => Explorador de archivos.
Otra forma es extraer el archivo a través de adb:
fuente
También tuve el mismo problema una vez. No hay forma de acceder directamente al archivo dentro de los dispositivos Android, excepto adb shell o dispositivo de rooteo.
Además de aquí hay 02 alternativas:
1)
2) Pruebe esto: https://github.com/sanathp/DatabaseManager_For_Android
fuente
Para hacer una copia de seguridad de Android en el escritorio
Abra la línea de comando cmd y ejecute esto: adb backup -f C: \ Intel \ xxx.ab -noapk your.app.package . No ingrese la contraseña y haga clic en Respaldar mis datos. Asegúrese de no guardar en la unidad C root. Se te puede negar. Es por eso que guardé en C: \ Intel.
Para extraer el archivo * .ab
fuente
En un dispositivo rooteado , la solución correcta es esta:
La solución original funcionó, pero el chmod devolvería un directorio desconocido. Cambiar el comando chmod a / data / data / * dio acceso a todas las subcarpetas en el directorio de datos desde DDMS en Intellij. Supongo que la misma solución es cierta para Eclipse DDMS.
ACTUALIZACIÓN Entonces, lo que he encontrado es extraño. Estoy ejecutando un Nexus 6 usando DDMS en IntelliJ (Android Device Monitor). He creado una pequeña aplicación de inicio. Dicha aplicación guarda datos en un archivo .csv en data / data / com.example.myapp / files
Cuando comencé a intentar acceder a este archivo en mi Nexus 6, descubrí que tenía que rootear el dispositivo. Podía ver la carpeta de datos, pero intentar abrirlo no funcionaría. Como se mencionó en línea en otros lugares, el expandir + desaparecería y luego reaparecería poco después (tenga en cuenta que hay soluciones en la web que afirman permitir el acceso a estas carpetas sin rootear, no las encontré hasta demasiado tarde, y estoy no estoy seguro si prefiero no rootear de todos modos ((prefiero poder hacerlo manualmente que confiar en una aplicación o símbolo del sistema para darme mis soluciones))). Rooteé mi 6 e intenté DDMS nuevamente.
En este punto, me mostró la carpeta de datos y pude expandir la carpeta y ver el com. directorios, pero no pude abrir ninguno de ellos. Fue entonces cuando descubrí la solución anterior. Las instrucciones iniciales no funcionarían en esta parte:
Fue entonces cuando probé la solución que publiqué:
Esa solución parecía funcionar, pero solo en ciertas carpetas. Ahora podría expandir mi carpeta myapp, pero no podría expandir el directorio de archivos en ella.
En este punto, jugué un rato y luego pensé por qué no solo probarlo en el directorio que necesitaba en lugar de probar estas entradas comodín.
Seguido por:
Estos comandos me permitieron expandir y ver los archivos en el directorio de mi aplicación para confirmar que el .csv se estaba guardando correctamente.
Espero que esto ayude a alguien. ¡Luché con esto por horas!
(para agravar esto un poco más, por extraño que parezca, los permisos no pasaron al archivo .csv que pasó al directorio de archivos. Mis permisos del directorio de archivos leen drwxrwxrwx y mis permisos de archivo log.csv leen -rw-rw --- - .. solo para tu información)
fuente
Puede descargar un archivo sigle así:
adb exec-out run-as debuggable.app.package.name cat files/file.mp4 > file.mp4
Antes de descargar puede que desee echar un vistazo a la estructura de archivos en su App-Directory. Para ello, realice los siguientes pasos que se han
THelper
indicado anteriormente:El androide-Studio manera
Shahidul
mencionada ( https://stackoverflow.com/a/44089388/1256697 trabajo) también. Para aquellos que no ven laDeviceFile Explorer
Opción en el Menú: Asegúrese de abrir el directorio / android en Android Studio. Por ejemplo, los usuarios de react-native tienen esto dentro de su Project-Folder directamente en el mismo nivel que el / ios-Directory.fuente
Una de las formas simples es crear su base de datos en la tarjeta SD. Porque no puede obtener acceso a la carpeta de datos de su teléfono en la memoria interna, a menos que arraigue su teléfono. Entonces, ¿por qué no simplemente crear su base de datos en la tarjeta SD?
Además, si lo desea, puede escribir un código de copia de archivo para copiar su archivo de base de datos existente (desde la memoria interna) a la memoria externa sin requerir ninguna raíz.
fuente
File
a la tarjeta SD ypuede ser para acceder a esta carpeta necesita derechos administrativos.
Así que tienes dos opciones:-
ps: si está utilizando cualquiera de las dos opciones anteriores, puede acceder a esta carpeta siguiendo estos pasos
y desde allí puedes abrir tu archivo
fuente
adb backup
no funcionó para mí, así que esto es lo que hice (Xiaomi Redmi Note 4X, Android 6.0):1. Vaya a Configuración> Configuración adicional> Copia de seguridad y restablecer> Copias de seguridad locales .
2. Toque 'Copia de seguridad' en la parte inferior de la pantalla.
3. Desmarque las marcas de verificación 'Sistema' y 'Aplicaciones'.
4. Toque el botón de divulgación de detalles a la derecha de la celda 'Aplicaciones' para navegar a la pantalla de selección de aplicaciones.
5. Seleccione la aplicación deseada y toque Aceptar.
6. Una vez completada la copia de seguridad, el archivo real debe ubicarse de alguna manera. La mía se puede encontrar en / MIUI / backup / AllBackup / _FOLDER_NAMED_AFTER_BACKUP_CREATION_DATE_ .
7. Luego seguí los pasos de esta respuesta de RonTLVpara convertir realmente el archivo de respaldo (.bak en mi caso) a tar (duplicando la respuesta original):
"
a) Vaya aquí y descargue: https://sourceforge.net/projects/adbextractor/
b) Extraiga el archivo descargado y navegue a la carpeta donde extrajo.
c) ejecute esto con sus propios nombres de archivo: java -jar abe.jar descomprima c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar
"
fuente
puede copiar este archivo db en algún lugar de eclipse explorer (por ejemplo: sdcard o PC), y puede usar sqlite para acceder y actualizar este archivo db.
fuente
La pregunta es: ¿cómo acceder a la carpeta de datos de datos en el dispositivo Android?
Si el dispositivo Android es Bluestacks * Root Browser APK muestra datos / datos / ...
Intente descargar Root Browser desde https://apkpure.com/root-browser/com.jrummy.root.browserfree
Si el archivo es un archivo de texto, debe hacer clic en "Abrir como", "Archivo de texto", "Abrir como", "Editor de texto RB"
fuente
También puede intentar copiar el archivo a la carpeta de la tarjeta SD, que es una carpeta pública, luego puede copiar el archivo a su PC donde puede usar sqlite para acceder a él.
Aquí hay un código que puede usar para copiar el archivo de datos / datos a una carpeta de almacenamiento público:
Manifiesto:
fuente
La base de datos SQLlite se almacena en el teléfono del usuario y se esconde debajo de la ruta:
Tienes 2 opciones aquí:
fuente