How to access data/data folder in Android device?

adb, android, android-emulator, android-sqlite

Solution

Accessing the files directly on your phone is difficult, but you may be able to copy them to your computer where you can do anything you want with it. Without rooting you have 2 options:

If the application is debuggable you can use the `run-as` command in adb shell

 adb shell
 run-as com.your.packagename 
 cp /data/data/com.your.packagename/

Alternatively you can use Android's backup function.

 adb backup -noapk com.your.packagename

You will now be prompted to 'unlock your device and confirm the backup operation'. It's best NOT to provide a password, otherwise it becomes more difficult to read the data. Just click on 'backup my data'. The resulting 'backup.ab' file on your computer contains all application data in android backup format. Basically it's a compressed tar file.

This page explains how you can use OpenSSL's zlib command to uncompress it:

dd if=mybackup.ab bs=24 skip=1|openssl zlib -d > mybackup.tar

If the `openssl zlib` command does not work on your system, there are other options.

You can use the `adb restore backup.db` command to restore the backup.

Problem

I am developing an app and I know my database `*.db` will appear in `data/data/com.****.***` I can access this file from AVD in Eclipse with help of sqlite manager But I can't access this file in my Android phone. I googled it and it says I need to root my phone to do it, but I don't want to do that. How can I access my `data/data/.....` directory in my Android phone "without rooting it"? Can I change user permissions for the directory `data/data.....` without rooting it?

Original source

Related problems