Home > Hacks, How-To > How To: Backup protected and paid Android applications for root users

How To: Backup protected and paid Android applications for root users

First off, this is not a guide to pirating apps. There are legit reasons for wanting to backup your applications. Sometimes an older version of the app worked better, or had features you liked better. Sometimes new versions don’t work with specific phones and you need to revert back. Now, you can use AppManager to backup most apps, but protected apps are not included in this because they are stored in a different directory. With a rooted phone, you can access this directory and copy the apps to your SD card or to your computer. After all, you paid for it, it’s yours. If you want to pirate apps, or buy an app, copy it then return it, that’s on you, I’m not advocating that.

First method, copy with your phone to SD card:

  1. Install and open a Terminal Emulator on your phone.
  2. Enter su to be superuser (root).
  3. Enter cd /data/app-private/ to enter the protected application directory.
  4. Use ls to view the apps in the directory.
  5. Enter cp filename.apk /sdcard to copy a single app to your SD card.
    (Or to backup all the protected apps: cp * /sdcard)
  6. If you want to backup all your apps, they can be found in /data/app/

Second method is to use Android Debug Bridge with your PC:

  1. Install the Android SDK on your PC
  2. Connect your phone to your computer via USB cable, and make sure USB debugging is enabled on your phone (Settings > Applications > Development)
  3. Enter adb shell to fire up Debug Bridge and enter shell mode
  4. Enter su to become superuser
  5. Enter cat /data/app-private/filename.apk > /sdcard/filename.apk to copy the file to the SD card.
  6. exit
  7. exit
  8. And finally adb pull /sdcard/filename.apk filename.apk pulls the .apk file from your SD card to your computer.

Success? Problems? Moral issues with copying software? Let us know in the comments.

  1. mag00n
    December 22nd, 2009 at 14:08 | #1

    I installed eclipse + droid sdk with the most recent updates. When I run the commands above I get this.

    $ su
    su
    su: permission denied

    *Also, I cannot see anything in the /data directory, thus a directory /data/app-private is not found either.

    Is there a way to elevate permissions without rooting my phone?

  2. spaz
    December 28th, 2009 at 00:02 | #2

    No there is not

  3. aziz
    January 2nd, 2010 at 13:34 | #3

    i tried the adb method.

    when i type in “cat /data/app-private/filename.apk > /sdcard/filename.apk” replacing filename.apk with the app im tryin to backup…i get error saying cannot create /sdcard/filename.apk: read-only file system.

    I followed the steps exactly as specified… i have a HTC Hero rooted running firmware 1.5.

    Help would be appreciated.

  4. Brian
    January 5th, 2010 at 13:48 | #4

    This has worked for me, however one thing everyone should be aware of (that I just ran in to) if you are planning to perform a hard-reset _for the purpose of changing the primary google email address_ is that you may have issues with the Android Market recognizing which apps you’ve purchased.

    Backing up the applications works fine, however if you perform a hard-reset and then change the primary google email address, the Market will no longer acknowledge that you’ve purchased an app (because it is associated with the original gmail address) and you won’t be able to receive app updates from the market unless you actually re-purchase & download the app via Android Market.

    So far the developers I’ve asked about this have been okay with issuing a refund for the second purchase if I could prove that I actually paid for the app, but this can definitely be a hassle so keep it in mind.

    -Brian

  5. coose
    January 5th, 2010 at 18:09 | #5

    so i rooted the phone and everything and can see the protected list but when i try to back them up it says cp not found.
    the list shows
    com.mangoes.truthordare.akp

    do i copy that as it is with /sdcard at the end or am i doing something wrong…
    this is exactly what i typed

    com.mangoes.truthordare.akp/sdcard

  6. Steven
    March 6th, 2010 at 23:04 | #6

    Ok. You need to use cd /data/app-private/
    then ls
    then cp filename.apk /sdcard/
    These steps avoid a lot of confusion. Again this only works with root and you may need to say su before you start. You will know if you are a superuser if there is a # and not a $. This is for adb by the way.

  7. evan
    March 7th, 2010 at 20:06 | #7

    Whe im doing the cp filename.apk /sdcard/ im getting cp: not found….

  8. evan
    March 7th, 2010 at 20:08 | #8

    and steven i followed those steps exactly. im def. rooted. using the droid

  9. wyatt
    March 29th, 2010 at 01:28 | #9

    Same here did you figure it out evans?

  10. person
    March 29th, 2010 at 13:07 | #10

    I’m having the same cp: not found problem. I definitely followed all the steps correctly, but it says that every time.

  11. March 29th, 2010 at 13:12 | #11

    To those having trouble with the “cp not found”, are you doing it via USB on the computer, or through a terminal emulator program on the phone? Try the other method and see if it yields better luck. Or try to change to a different terminal app. Remember upper and lowercase do matter in Linux file systems, so that may also be the issue.

    Also, not HTC phones, specifically Motorola phones, may require a USB driver to be installed on your PC before ADB can properly communicate with the phone.

  12. person
    March 29th, 2010 at 13:41 | #12

    The problem seems to be that I didn’t have the latest “busybox” installed. To those having the cp:not found problem: I recommend installing the free app Titanium Backup, which will install the busybox thing for you and then allow you to back-up protected apps.

  13. David V
    April 12th, 2010 at 18:49 | #13

    ok… I got the SDK installed… and found I also needed to load the Motorola Drivers install so I could see my device. I can see the device when I run “adb devices” and I can now run “adb shell” and I can get a directory listing. But when I do “su” all I get is “permission denied.”

    $ su
    su
    su: permission denied
    $

    I don’t want to root my device at this time b/c I may return it so I can get one cheaper… hence I all I need to do is to save the 1 app I’ve purchased.

    Any ideas on when I am may be missing? I am running v2.1 of Android.

  14. dante
    July 31st, 2010 at 03:40 | #14

    is this possible to do still?

  15. Ken
    August 11th, 2010 at 09:30 | #15

    Yes it still works – just backed up all apps from my Droid X today…by the way the “backing up paid apps then returning” as a piracy method is the dirtiest software piracy method I’ve ever heard of…its exactly the same as walking into a B&M store, buying a VCR, taking the VCR & returning the box full of rocks for a full credit…dirty.

  16. Ken
    August 11th, 2010 at 09:30 | #16

    @Ken
    Did I just use “VCR” as an example?? Wow I just went back in time 20 years!

  1. No trackbacks yet.