2011-05-01 7 views
6

Acabo de rootear mi teléfono porque necesito acceder a la base de datos que está usando mi aplicación. Sin embargo, aunque mi teléfono está rooteado, aún no puedo abrir la carpeta de datos en Eclipse File Explorer.No se puede abrir el directorio de datos en el teléfono Android rooteado

¿Hay algo que he olvidado? ¿Debo decirle a Eclipse que soy superusuario o algo así? Puedo acceder a la carpeta de datos en el emulador, pero no en mi dispositivo real.

Y realmente quiero desarrollar en mi dispositivo, el emulador es mucho más lento y no puedo hacer que la conexión a Internet funcione.

¿Alguna idea?

Respuesta

5

Otra opción es verificar el base de datos usando Root Explorer desde el dispositivo mismo. Puede leer .db archivos. Si necesita modificarlos, existe el SQLite editor (por la misma compañía), pero no tengo mucha experiencia con él.


actualización: Estaba jugando con mi teléfono después de llegar a esta página: http://www.screaming-penguin.com/node/7742

En lugar del emulador como en ese puesto, tuve mi teléfono conectado al USB (Samsung Captivate, personalizada 2,2 ROM), con la depuración usb habilitada.

corro los siguientes comandos, como ejemplo:

$adb -d shell 
# su 
# cd /dbdata/databases/com.android.browser 
# sqlite3 browser.db 
sqlite> .tables 
.tables 
android_metadata bookmarks folders searches 
sqlite> select * from bookmarks; 
(listed all my bookmarks) 

Básicamente, puede ejecutar cualquier comando SQL desde ADB en cualquier base de datos que abierto (siempre que se ejecutó como su)

+0

Sí, pero hackbod tiene un buen punto, que no necesita ser root para hacer esto si es su propia aplicación. Puede establecer la depuración en su compilación, luego usar run-as, luego cd directamente a la ruta privada de su aplicación en/data o darle a sqlite3 el nombre de ruta completo de la base de datos que desea explorar. –

+0

Oye, ¿en qué terminal se supone que debo escribir estos comandos, es esto algo dentro del DDMS?Nunca he podido encontrarlo .. – networkprofile

+0

@Ticket no, solo el símbolo del sistema (es posible que deba agregar adb a su RUTA) – Aleadam

5

En las versiones actuales de Android no necesita hacer esto. Simplemente coloque android: debuggable = "true" en su manifiesto y luego puede usar el "run-as <package_name>" del shell para cambiar al usuario de su aplicación para que pueda acceder a su directorio de datos.

Esto definitivamente funciona en 2.3 o posterior; podría funcionar en 2.2. No recuerdo exactamente cuándo entró.

+0

y el feo hackear equivalente en un dispositivo ya rooteado es probablemente usar 'su' del shell adb. Más importante aún, hasta donde yo sé, ni esto ni el run-run más oficial permitirán que el explorador de archivos de la PC vea cosas en/data, aunque cambie la configuración segura del dispositivo (gran mala idea a menos que sea una prueba) -solo uno sin simulación) presumiblemente lo haría. –

2

Otra opción a considerar sería hacer una compilación de prueba de su aplicación que agrega un botón para copiar la base de datos a la tarjeta SD donde puede examinarla desde la PC.

Como alternativa, puede establecer el modo del archivo de base de datos en compartido, pero aún no podrá navegar hasta él; deberá indicarle al navegador de archivos que vaya directamente al archivo de la base de datos (es decir, escriba su ruta completa en) ya que no puede navegar por niveles intermedios de carpetas como/data. No sé si el navegador te permite hacerlo (hoy no me abre para nada, pero nunca lo uso desde como conchas de línea de comandos ;-)

Cuestiones relacionadas