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:
- Install and open a Terminal Emulator on your phone.
- Enter su to be superuser (root).
- Enter cd /data/app-private/ to enter the protected application directory.
- Use ls to view the apps in the directory.
- Enter cp filename.apk /sdcard to copy a single app to your SD card.
(Or to backup all the protected apps: cp * /sdcard) - 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:
- Install the Android SDK on your PC
- Connect your phone to your computer via USB cable, and make sure USB debugging is enabled on your phone (Settings > Applications > Development)
- Enter adb shell to fire up Debug Bridge and enter shell mode
- Enter su to become superuser
- Enter cat /data/app-private/filename.apk > /sdcard/filename.apk to copy the file to the SD card.
- exit
- exit
- 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.
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?
No there is not
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.
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
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
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.
Whe im doing the cp filename.apk /sdcard/ im getting cp: not found….
and steven i followed those steps exactly. im def. rooted. using the droid