Skip to content

Instantly share code, notes, and snippets.

@AnatomicJC
Last active November 23, 2024 21:33
Show Gist options
  • Save AnatomicJC/e773dd55ae60ab0b2d6dd2351eb977c1 to your computer and use it in GitHub Desktop.
Save AnatomicJC/e773dd55ae60ab0b2d6dd2351eb977c1 to your computer and use it in GitHub Desktop.
Backup android app, data included, no root needed, with adb

Backup android app, data included, no root needed, with adb

Note: This gist may be outdated, thanks to all contributors in comments.

adb is the Android CLI tool with which you can interact with your android device, from your PC

You must enable developer mode (tap 7 times on the build version in parameters) and install adb on your PC.

Don't hesitate to read comments, there is useful tips, thanks guys for this !

Fetch application APK

To get the list of your installed applications:

adb shell pm list packages -f -3

If you want to fetch all apk of your installed apps:

for APP in $(adb shell pm list packages -3 -f)
do
  adb pull $( echo ${APP} | sed "s/^package://" | sed "s/base.apk=/base.apk /").apk
done

To fetch only one application, based of listed packages results:

adb pull /data/app/org.fedorahosted.freeotp-Rbf2NWw6F-SqSKD7fZ_voQ==/base.apk freeotp.apk

Backup applications datas

To backup one application, with its apk:

adb backup -apk org.fedorahosted.freeotp -f freeotp.adb

To backup all datas at once:

adb backup -f all -all -apk -nosystem

To backup all datas in separated files:

for APP in $(adb shell pm list packages -3)
do
  APP=$( echo ${APP} | sed "s/^package://")
  adb backup -f ${APP}.backup ${APP}
done

Restore Applications

First, you have to install the saved apk with adb:

adb install application.apk

Then restore the datas:

adb restore application.backup

Extract content of adb backup file

You will need the zlib-flate binary. You will able to use it by installing the qpdf package.

apt install qpdf

Then, to extract your application backup:

dd if=freeotp.adb bs=24 skip=1 | zlib-flate -uncompress | tar xf -

If adb backup doesn't work

If you have problems using adb backup (empty files, no prompts, other oddness), you can give a try to bu backup through adb shell. Thanks to @nuttingd comment.

Backing up

adb shell 'bu backup -apk -all -nosystem' > backup.adb

Restoring

adb shell 'bu restore' < backup.adb

Miscellaneous: remove non-wanted applications

Sometimes, you have already installed (but non wanted) apps when you buy an Android Smartphone. And you can't uninstall these apps. So Bad. And some pre-installed app are not present on PlayStore. WTF.

You can remove them with this command, and root is not needed:

adb shell pm uninstall --user 0 non.wanted.app

You can first disable them, then when you are sure, you can remove them.

To list disabled apps:

adb shell pm list packages -d

Example:

# Google Chrome
adb shell pm uninstall --user 0 com.android.chrome
# Gmail
adb shell pm uninstall --user 0 com.google.android.gm
# Google Play Films et Séries
adb shell pm uninstall --user 0 com.google.android.videos
# Youtube
adb shell pm uninstall --user 0 com.google.android.youtube
# Google Play Music
adb shell pm uninstall --user 0 com.google.android.music
# Google Hangouts
adb shell pm uninstall --user 0 com.google.android.talk
# Google Keep
adb shell pm uninstall --user 0 com.google.android.keep
# Google Drive
adb shell pm uninstall --user 0 com.google.android.apps.docs
# Google Photos
adb shell pm uninstall --user 0 com.google.android.apps.photos
# Google Cloud Print
adb shell pm uninstall --user 0 com.google.android.apps.cloudprint
# Google Actualités et météos
adb shell pm uninstall --user 0 com.google.android.apps.genie.geniewidget
# Application Google
adb shell pm uninstall --user 0 com.google.android.googlequicksearchbox

Resources

https://stackoverflow.com/questions/4032960/how-do-i-get-an-apk-file-from-an-android-device https://androidquest.wordpress.com/2014/09/18/backup-applications-on-android-phone-with-adb/ https://stackoverflow.com/questions/34482042/adb-backup-does-not-work https://stackoverflow.com/questions/53634246/android-get-all-installed-packages-using-adb https://www.dadall.info/article657/nettoyer-android https://etienne.depar.is/a-ecrit/Desinstaller-des-applications-systemes-d-android/index.html

@trinityzhub
Copy link

trinityzhub commented Aug 30, 2024

Backup is working because it is executing in android owner user
Restore will not work for non-owner user. We can't restore for user,
Reason for Restore not Possible:
android user can't prompt confirmation for restore.

--------- REQUESTING HELP-----------------
@AnatomicJC
@ArRiMartinez

@artasoftware
Copy link

adb install app.apk
Performing Streamed Install
adb: failed to install app.apk: Failure [INSTALL_FAILED_MISSING_SPLIT: Missing split for com.gameloft.android....]

Is this can be solved somehow?

@licaon-kter
Copy link

@artasoftware did you put all the files in the command line? you need the others too

@artasoftware
Copy link

@artasoftware did you put all the files in the command line? you need the others too

What files do you mean? I have only one apk and one adb.

@licaon-kter
Copy link

@artasoftware we don't know which app you tried to install, but usually they (game?) come in multiple APK files, did you download/extract them all?

@artasoftware
Copy link

@artasoftware we don't know which app you tried to install, but usually they (game?) come in multiple APK files, did you download/extract them all?

Yeah it's a game but I have only one file. I've used this command: adb backup -apk org.fedorahosted.freeotp -f freeotp.adb

How can I backup multiple APKs for one application?

@licaon-kter
Copy link

if you need the app APK (not the data) you can use other tools too, like https://f-droid.org/packages/io.github.muntashirakon.AppManager/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment