I am developing an app where i am using sqllite3 database to store values. I have Nexus S and Nexus 7 both are unrooted devices. How can i get the database for my app for debugging purpose.
I have tried (1) I have tried all approach mentioned here
adb shell
run-as app.package.name \
cp /data/data/package.name/databases/application.sqlite /sdcard/
exit
adb pull /sdcard/application.sqlite ~/
This says cp not found..
(2) http://developer.android.com/tools/help/adb.html#sqlite
adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit
The following solution works only for apps that are debuggable. It may not work well on all devices, since run-as command doesn't work on some devices, especially with Jelly Bean.
Create a *.bat file and copy the following scripts
adb shell run-as [package] chmod 777 /data/data/[package]/databases/
adb shell run-as [package] chmod 777 /data/data/[package]/databases/[db_file_name]
adb shell run-as [package] cp /data/data/[package]/databases/[db_file_name] /sdcard/
adb pull /sdcard/[db_file_name]
Change [package] to the desired application package
Change [db_file_name] to the desired db name Run the bat file and you should see the copied database in the same folder as the bat file
The above solution assumes: