6

I have a rooted android phone. I am trying to pull the applications from /system/app/. However this simply does not copy the apk. What I have tried.

    adb shell
    su
    cd data
    cd app
    ls

A lot of applications are shown. However when I try to pull it it says

adb pull /data/app test

pull: building file list...
0 files pulled. 0 files skipped.

When I try to pull it from the system/app it pulls it but no file is created on my computer. I have specified the file name, tried with it and without it. Could someone please tell me what I am doing wrong?

I have also tried it individually with specific apks. But that doesnt work either.

2

3 Answers 3

6

If you're using su to get root privileges when you shell in (which you've indicated you are) then that means you're not root on the shell by default. adb pull fails with that error message because it doesn't have permission to index the directory and pull the contents.

You should be able to restart adb on your device with adb root first:

adb root
adb pull /data/app/

And a fully illustrative example to show that this is the likely issue (I used /data/misc just because it's smaller):

[09:27:23] ~/adb-test $ adb pull /data/misc/
pull: building file list...
0 files pulled. 0 files skipped.  <-------------- Same issue because we're not root yet!
[09:27:49] ~/adb-test $ adb root
[09:27:56] ~/adb-test $ adb pull /data/misc/
pull: building file list...
... Snip all of the individual files here ...
24 files pulled. 0 files skipped.
65 KB/s (7732 bytes in 0.115s)
[09:27:59] ~/adb-test $

Another option for restarting adb as root is Chainfire's adbd insecure app. Some ROMs will not support the adb root command, though, as they were not built to allow it. This will be true if you root a stock ROM without installing a custom one, for example.

9
  • It says adbd cannot run as root in production builds
    – Sab
    Commented Jun 26, 2012 at 13:30
  • Sounds like something is not right with root. Which device is this, and how was it rooted?
    – Chahk
    Commented Jun 26, 2012 at 13:41
  • Also, some hits on Google search for this error seem to indicate that this could also be fixed with different USB drivers.
    – Chahk
    Commented Jun 26, 2012 at 13:45
  • 2
    @Sab: You can try the adbd insecure app instead, although it costs a nominal fee. Your ROM may not support the adb root command, unfortunately. Another option would be to try to find either a boot image that supported unsecure adbd startup or a different ROM entirely. Commented Jun 26, 2012 at 13:46
  • 1
    @Sab: Also, now that I look at the XDA thread again, Chainfire has provided a download to the app for free on the forums (bottom of the first post), so you can try it without worry. Commented Jun 26, 2012 at 14:30
1

You do not need adb to run as root to pull the actual files, but you do need it to run as root to list the directory in which they are located (which would be an implicit requirement to pulling the whole directory).

If you want to do it without root, pull /data/system/packages.xml and extract the code paths of the applications from there, then adb pull them individually by their full path names. That could be a great opportunity to learn about grep and xargs - or use your favorite host-side scripting language.

0

First, make sure you have the latest version of ADB utility by downloading the newest Android SDK version from here.

The syntax is adb pull <path to apk> <path on PC>. For "path on PC" portion try specifying the full path, with drive letter like so:

adb pull /data/app/myapp.apk c:\test

To pull all of the apps from /data/app directory try this:

adb pull /data/app/ c:\test

4
  • Let me update the adb and try. Syntax wise I dont think I am making any error.
    – Sab
    Commented Jun 26, 2012 at 13:19
  • You were missing the "/" after the source path if you were trying to pull the entire directory.
    – Chahk
    Commented Jun 26, 2012 at 13:26
  • I guess that was a typo besides it doesnt work with individual apks either. My system/app shows that these many bytes have been transferred but I dont see anything in the directory where I run adb pull or anywhere else.
    – Sab
    Commented Jun 26, 2012 at 13:28
  • Actually no, the closing / isn't necessary after all.
    – Chahk
    Commented Jun 26, 2012 at 13:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .