I have rooted my device HTC Evo Design 4G and I try to
adb pull /data data and it says "0 files pull 0 file skipped"
I was able to pull
/System/build.prop. How can I pull the root folder?
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It only takes a minute to sign up.Sign up to join this community
Files and directories below
/data/data are protected from the "average user", so you cannot simply "pull" them unless the ADB daemon is running in root mode. Other than the file you were referring to (
/system/buildprop is at least readable by all apps), folders below
/data/data are "invisible" (except for root), so they cannot even be read.
To be able to use
adb pull on them, you need to make your ADB daemon run in root mode first. Depending on the device, a simple
adb root command might do that – but most devices will refuse to do. In those cases, you can use chainfire's adbd insecure: Install this app on your device, start it there, and manually switch to "insecure" mode. Now the
pull should succeed.
Remark: It's called "insecure" because running
adbd as root gives everybody with a computer and an USB cable access to everything on your device. Just in case you wonder.
If your phone's rooted, there are three ways to go around this. The first one is to use ADBD insecure.
The other one is to move it to another folder with root and then pull it from there:
$ adb shell shell@android:/ $ su root@android:/ # mkdir /sdcard/data root@android:/ # cp /data/data/* /sdcard/data root@android:/ # exit shell@android:/ $ exit $ adb pull /sdcard/data . $ adb shell shell@android:/ $ rm -r /sdcard/data/ shell@android:/ $ exit
I think you can build a script such as:
echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell adb pull /sdcard/data . echo 'rm -r /sdcard/data; exit' | adb shell
and save it somewhere.
Finally, the third option is
chmod -R 1777 /data/data, but this is much more unsafe, so it's highly discouraged.
You cannot pull data folder directly since adb doesn't have file listing access to it. If you want to pull the /data folder you can do it via recovery ([Custom recovery, CWM/TWRP] run adb while device is in recovery mode, hopefully a custom recovery). Or as root, copy /data to another directory (sdcard) and pull it from there.
This is what worked for me:
Make sure you're using the latest ADB version.
Start the ADB session:
Get SU rights once in the ADB session all you have to do it's type
su like so:
su. Then you'll notice that the
Make a folder on the
/sdcard of the device:
Head to the root of the file you want to copy.
An example of what I get if I
ls that folder:
root@m1:/data/app # ls com.abtnprojects.ambatana-1 com.acr.rootfilemanager-1 com.amazon.kindle-1 com.android.chrome-1 com.android.mms-1 com.android.vending-2'
In order to copy recursively with the ADB
cp command, use the option
-R and since I wanted to copy everything in it, I used the wildcard
cp -R */ /sdcard/data/
Once you press enter, if the file is fairly large it will obviously take a while to copy the files, so the cursor will idly blink for a bit, it will look like if not doing anything, BUT IT IS! it's copying the files, so don't panic! and don't stop the process!
lscheck and you should see that the empty folder is now getting populated with the files. Once the transfer is done, you'll get your shell back.
Head to the
sdcard/data and make sure everything was copied
'root@m1:/sdcard/data # ls com.abtnprojects.ambatana-1 com.acr.rootfilemanager-1 com.amazon.kindle-1 com.android.chrome-1 com.android.mms-1'**
By this point, if you haven't created a folder on the target machine, do so. I conveniently created a folder called
Now, let's do the elusive recursive ADB PULL of all the files at once:
root@m1:/sdcard/data # exit shell@m1:/ $ exit
adb pull, you don't have to use the
-aoption, I personally use it to keep the integrity of the files as much as possible. Run the command:
adb pull -a /sdcard/data/ apps/
You should see something like this:
[ 69%] /sdcard/data/com.google.android.gms-1/base.apk: 74%
Once it's done:
/sdcard/data/: 296 files pulled. 5.1 MB/s (1193942288 bytes in 221.352s)
Working on my Android 7.1 device. Steps to get it working:
adb shellin your adb directory
suso u can get the "#"
You can now adb pull into your PC.