2010-06-10 19 views
12

Estoy intentando acceder a la base de datos de la aplicación que estoy desarrollando directamente en mi Nexus, pero recibo un "permiso denegado" cuando intento ejecutar el comando "sqlite3". También traté de iniciar el adb en root mod, pero de nuevo, denegaron el permiso en el dispositivo ... Supongo que tendré que hacer eso con el emulador, pero tengo muchos datos para cargar y habría sido 10 veces más rápido con el teléfono en Wifi que con el emulador ... ¿A menos que alguien tenga alguna idea? graciassqlite3 permission denied android

Respuesta

3

Typical.

Trabajé en torno a esta molestia añadiendo una función a mi aplicación que realiza una copia de seguridad (copias) del DB en la tarjeta SD. adb pull funciona contra cualquier archivo sdcard.

EDIT:... Fijo falta de ortografía "adb" (era "SDP"

+0

sí, es un buen truco. Yo haré eso. gracias – Sephy

+0

¿Qué es sdp? ¿Puedes publicar un enlace a sdp? Gracias. –

+0

@kilaka: Gracias - He reparado mi error tipográfico - debería decir: "use el comando pull de adb" - Android Debug Bridge. –

4

Los archivos se leen protegidos, es necesario extirpar el teléfono o utilizar el emulador

0

tuve un problema similar Saqué sqlite3 del emulador e ingresado en mi dispositivo y no pude ejecutarlo - permiso denegado.

Aparentemente el binario sqlite3 no tenía permiso de ejecución (-rw-rw-rw-) así que chmod + x sqlite3 resolvió el problema.

8

Luché con esto por un tiempo, así que aquí está mi solución on, que funciona en un dispositivo sin raíz:

#!/bin/sh 

# fill these values in 
PACKAGE=com.example.android 
DB=something.db 

# copy db to sdcard using package permission (using cat because no cp command) 
adb shell "run-as $PACKAGE cat /data/data/$PACKAGE/databases/$DB > /sdcard/$DB" 

# pull file from sd card 
adb pull /sdcard/$DB 

# do something with it (need to install sqlitebrowser obviously) 
sqlitebrowser $DB 
+0

Gracias @eggbert. Es muy útil y funcionó para mí (con Ubuntu 10.04) y probé con la aplicación debugible en un dispositivo sin raíz. – user755499

+0

Esto funcionó, pero en mi teléfono (HTC Desire), el archivo de base de datos no tenía una extensión '.db' al final. – HRJ

+0

Excelente, ................ –