Skip to content

Instantly share code, notes, and snippets.

@ignasi
Created January 30, 2014 11:43
Show Gist options
  • Star 34 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save ignasi/8706888 to your computer and use it in GitHub Desktop.
Save ignasi/8706888 to your computer and use it in GitHub Desktop.
Get database from an Android app (Android 4.3+)
#!/bin/bash
# Android 4.3+ changes app's internal directory permissions and you can not just pull your
# databases to your computer, so I did this as a workaround to extract my databases.
# I only use it for debug, use it under your responsability.
package=$1
db_name=$2
path="/data/data/$package/"
rm $db_name
adb shell "su -c 'cd $path; chmod -R 777 databases; exit'; exit"
adb pull $path/databases/$db_name
open $db_name
@ignasi
Copy link
Author

ignasi commented Jan 30, 2014

BTW, requires root.

@santi-gonzalez
Copy link

As always, very useful!

Good job!

@BrandonSmith
Copy link

Possible way around root, if the app does not have debuggable=false, is to pipe the db file contents...

package=$1
db_name=$2

adb shell "run-as $package cat databases/$db_name > /sdcard/$db_name"
adb pull /sdcard/$db_name
open $db_name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment