What is a backup?
In information technology, a backup or the process of backing up is making copies of data which may be used to restore the original after a data loss event. In Android, this affects applications, settings and documents.
Which types of backups do we have for Android?
Basically, we can distinguish three types:
A Nandroid backup (as it's done by e.g. ClockworkMod) basically creates full images of all your device's partitions, without any abstraction. This does not necessarily mean one could not pick single items out of a Nandroid backup, but its not that trivial. If you restore a single partition only (such as
/data), it must fit the other parts of the system. The
/data partition also holds the
/data/dalvik-cache, for example, which consists of the byte-code for all installed apps, optimized for the ROM which created it. If you would restore only the
/data partition from a backup of ROM-X to a device with ROM-Y, those DEX (Dalvik EXecutables) would not fit. Also ROM-Y might use different directory structures for several things, which are not reflected here. As a result, you might have a unstable system (which might not even be able to complete its boot process), see apps crashing, and the like.
Doing this would not be such a good idea. So for the average user, a Nandroid restore is rather an all-or-nothing: Either restore it completely, or not at all. Unless you know exactly what you're doing, of course.
Backups created with the
adb backup command are a different case: they are "abstracted". If you look into such an archive, you will not find the directory structure reflected. Thus, at least in theory, an app backup (including the apps' data) created on ROM-X should restore fine on ROM-Y, as the ADB daemon on the device should take care of what belongs where.
There are several apps available for Android that create backups of apps, their data, or both. Some only cover system data available via so-called "data providers" (contacts, call logs, bookmarks, SMS/MMS, and the like). Others can capture/extract the
.apk app installation archives. A few can backup apps, their data, and even system data—which before Android 4.0 required root permissions. Two of the powerful apps shall be mentioned here:
- Titanium Backup is one of the best-known, most-powerful, and most recommended Backup solutions. It is able to backup apps, their data, data available via data-providers, system data, and more. And it can read (and restore) things from Nandroid and ADB backups as well. But it requires your device to be rooted.
- Helium - App Sync and Backup (previously called Carbon) creates backups compatible with ADB backups (in fact, it is a front-end to the
adb restorecommands). It can backup apps and their data, plus some other system data and stuff available via some data-providers. More to come, we hope. Helium Backup does not require root.
- adb: part of the Android SDK, it provides above described ADB backup
- backup-manager: commandline-tool, part of Google's backup system
- clockworkmod: via ClockworkMod one can create/restore Nandroid backups
- data-recovery: recovering lost data you, well, didn't backup in time
- nandroid: See Nandroid above.
- restore: this is the opposite direction: get your data back from the backups you've created
- rom-manager: an app co-operating with clockworkmod
- titanium-backup: as described above.
Related questions on Android Enthusiasts
- Full Backup of non-rooted devices
- How to backup an Android device?
- How do you extract an App's data from a full backup made through “adb backup”?
- Is there a way to look inside and modify an adb backup created file?
- Partial adb restore
- Backup and restore Android Settings and Application through ADB
- Restoring an ADB backup onto a different phone of the same model?
See also the most frequented backup questions for interesting links.
- Types of Android backups (Guide at the XDA-Developers)
- How To Backup Your Android Phone’s Boot, Recovery And System Partition Images (HowTo at AddictiveTips)
- What options do I have to backup my Android device? (IzzyOnDroid)