22

I want to reset my phone but want to recover the system data before doing so. I tried to create a backup with adb and tried to restore it on a virtual device to see if it works. So I tried to restore it with adb on the virtual device and it would say that it fully restored it at the end. But nothing really changed. I wonder if adb backup/restore still works or if I did something wrong.

1 Answer 1

32

Deprecated means it is fully functional but may be removed in future versions. Google of course prefers that their cloud is used so that they still control access to the backup data.

The only part that seem to have changed by the deprecation is that the help text of adb backup has been removed from the adb binaries. So to show the help text with all options of adb backup you have to execute now: adb shell bu help

However adb backup has a problem with app that disallow backup via it's AndroidManifest.xml. The main problem you don't get any warnings or errors for such apps. hence it is totally unclear if a backup was successful by just looking at the messages printed on the console while creating the backup.

From an app perspective there is also the way to allow only partial backups. By a configuration file the app can specify certain paths or file types to be included or excluded from backup.

Therefore my recommendations is to backup only single apps without APK. Based on the size of the created backup archive you can see if the backup was potentially successful or not.

An alternative is to create a full backup (with or without APKs) and in the end convert the created backup archive using Android Backup Extractor to a tar archive and check that archive for the most relevant apps what files have been backuped.

Update for Android 12+

On Android 12+, apps that have a targetSDK of 31 or higher (are developed for Android 12+) app data backup via adb backup seems to be no longer possible:

For apps that target Android 12 (API level 31) or higher, when a user runs the adb backup command, app data is excluded from any other system data that is exported from the device.

https://developer.android.com/about/versions/12/behavior-changes-12#adb-backup-restrictions

adb backup on Android 12 only work if targetSDK is lower than 31 or the app is marked as debuggable=true. Apps downloaded from Play Store are never never debuggable and Google enforces apps to set targetSDK to the latest API level. Therefore apps from Google Play Store that has been updated in 2022 or later should no longer allow app data backup using adb backup.

13
  • Seems like I forgot to send my comment some months ago. I really appreciate your answer. I wouldn't have known the reason why some apps were not backing up. Also the advice with the Android Backup Extractor helped me a lot. Thank you
    – 1789
    Jan 17, 2021 at 17:17
  • How do you backup single apps without the apk as you recommend? Titanium backup? Pull /data/data/com.whatever-app-name? Other ways to do this?
    – Nomenator
    Nov 9, 2021 at 23:01
  • @Nomenator accessing /data/data requires root permissions so adb pull from that directory requires root permissions + adb root (which itsel requires a patched adb binary). As this answer is about the command adb backup I am wondering why you ask for adb pull instead of trying adb backup for the package name you want to backup.
    – Robert
    Nov 10, 2021 at 8:10
  • @Robert Sorry, I misunderstood, I was thinking more in line of "what to do when adb backup does not exist anymore?"
    – Nomenator
    Nov 13, 2021 at 15:47
  • 1
    so do i understand this correctly, that there is ... with android 13 ... NO WAY to fully backup your device so it is recoverable after a disaster? I already find it extremely stpd that there is no out of the box way from google themselves like there is with IOS, but it gets even more insane ...
    – Chris
    Jan 29 at 10:28

You must log in to answer this question.

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