The abysmal state of backup on Android

Backing up your things is difficult when nothing is built for being backed up. Apps and the Android platform is simply not built to back up nor recover data.

This is a frustrating article originating from all sorts of bad experiences when desperately trying to back up valuable data I’ve kept on and wanted to transfer between my many Android phones. “Valuable data” as mentioned in this article ranges from text messages and photos to high-scores in games, and logins, settings, and data in apps.

This article refers to the state of backups on Android 4.4.4 “KitKat”. An update for Android 5 “Lollipop” will be available at a later date.

Built-in option

The de-facto option for advanced users is the built-in adb backup system part of the development stack. This requires the device to be set in developer mode and wired up to a computer. It is also flagged as untested and unsupported. My testing also shows that it frequently fails to back up (hangs midway through), fails to restore apps and app data for many apps (likely the app’s fault), and doesn’t support paid apps nor their data.

Shuffling along to the App Store, there are a few backup solutions available. Most of the apps claiming to be backup apps—and as this is the Google Play App Store—are, of course, junkware that doesn’t provide any kind of backup functionality.

Non-rooted options

These alternatives will work on any device with a recent version of Android. An explanation of “rooted” follows in that section.

Google Backup

… is a joke. The built-in solution is available through settings for anyone who login to a Google Account. It only works with apps that specifically integrate with it. Very few do. The few that do doesn’t even synchronize the majority of their data or settings. It cannot be trusted to keep all of your data, and app developers don’t seem to care to support it.

This should not in any way be considered a backup service. The service should be named “send Google some data apps may volunteer” and with a footnote “oh, and when it’s time to recover the data we may choose to not recover any of it”. Not being able to sync to a server under your control is also a showstopper for enterprise and privacy-minded users alike.

Users aren’t given any insight into what is backed up and what is not. They have to trust each app developer to make good choices on their behalves on what to back up and what not to. The choice they make seem more often than not to be “let us backup the unique installation key for statistical purposes, and nothing that benefits the user”. Only when its time to recover the data will the user learn whether they’ve lost data they cared about.

Do not bother with enabling this service. Disable it and save the bandwidth and battery-life expenditures for other endeavors.

Helium

Helium is essentially a front-end for adb backup. You’ve to connect to a PC and install the adb drivers and a little utility program to get it working. Once setup, you unsurprisingly have the same problems and limitations of the adb backup system. Additionally, you can sync your broken and partial backup to another Android device on the same wireless network or to the servers of DropBox, Box.net, and Google Drive. Your own servers aren’t cool enough to receive the backed up data directly.

Rooted options

Rooting your device means that you’ve reset the device and have replaced the standard system with another system. It would be synonymous with replacing Windows on your PC and installing Linux instead. You would definitely know if your device has been rooted and the below solutions are even an option.

Online Nandroid Backup (discontinued)

Nandroid is a system that enables you to make a carbon-copy of the entire device. Including absolutely all user-data and the system itself. Online Nandroid is an app that allows you to schedule and automate these backups. These backups are very large. You will need to have more than half the device’s storage space empty to create one.

Online Nandroid will store the file on your device in a folder you’ve specified. This is a large file which makes it difficult in itself to manage. It can be combined with other apps that will automatically transfer the file of the device and onto a server.

The backup process can be automated to run a schedule. Jury-rigging it to run an upload through another app upon successfully backing up becomes complicated. Like adb, the backup process sometimes simply stalls indefinitely. Podcasting and other apps that may be downloading larger files in the background while the backup is running, seem especially prone to trigger such problems. Trusting the backup to run unsupervised on a schedule seems foolishly optimistic.

This is by far the most complete and comprehensive backup solution. It is what you get with iOS and what you would expect Android to have provided our of the box. This implementation is impractical and the learning curve and required pre-knowledge are very high.

Titanium Backup

Everybody seems to love Titanium Backup. This love and trust are misplaced. When someone says a piece of software looks like a Christmas tree, Titanium Backup is what they are referring to. The app looks sketchy and it’s frankly very hard to love anything about it except its promises.

The first challenge is beating the many options into submission and setting up a configuration you believe will fulfill your backup needs. The successful and sane configuration will take a few attempts to get right.

Like with Online Nandroid, there is no built-in option to transfer the backup blobs over the network. The companion/upselling app Titanium Media Sync can be used to optimistically transfer the backups over the network. The companion will not clean out the local copy of the large backup files upon completing.

Titanium claims to back up paid apps (encrypted) and their data. And it does indeed deliver on this promise. For the most part, it can restore these apps too! Larger paid apps aren’t restored nor are any user data belonging to any paid apps.

As there are no good options available, I cross my fingers and hope I don’t lose my phone. Or that the memory card(s) die. Or that it randomly explodes.