Android - How to backup an Android device?

The requirement being that you must be ROOTED, you could get Titanium Backup and back up your phone using that.

The reason for using Titanium Backup is so that you can selectively restore parts of your data if you were to install a different version and/or build of Android. NANDROID backup is good for having a safe image to fall back on but it isn't good for restoring data on top of a new OS installation (there are side effects sometimes).

A good way to back up app data if you're not rooted is to used adb from the Android SDK. For example, to back up the data for Locale, you'd do something like the following:

adb pull /data/data/com.twofortyfouram.locale/ C:\backup\locale\

And to restore, just use adb push with the same arguments in reverse order, i.e.:

adb push C:\backup\locale\ /data/data/com.twofortyfouram.locale/

You should be able to back up apps from /data/app/ the same way.

If you want to do what is essentially a 1-to-1 backup of your device, you can use a custom recovery to create a "nandroid" backup. Doing so effectively creates disk images of your NAND partitions (hence "nandroid") that you can restore from at a later point. This is going to vary a bit by device and recovery system, but in general if you want to perform a full backup of your phone's internal memory you would need to:

  • Root your device and install a custom recovery. The most popular recovery is probably ClockworkMod. How you install it will vary widely by device, but ROM Manager can do it for you on most popular devices. You simply launch ROM Manager and select "Flash ClockworkMod Recovery" from the main menu.

  • If using ClockworkMod, open ROM Manager and select "Backup current ROM". This should do all of the work for you.

  • If not using ROM Manager or if you use a recovery other than ClockworkMod:

    • Reboot your device into recovery mode. This again varies by device, but ROM Manager has a "Reboot into recovery" option that works regardless of what recovery you have installed. Another option is to issue adb reboot recovery from a connected PC with ADB configured and set up. There may be other requirements for getting into recovery depending on your device (e.g. the Kindle Fire is very different from others).
    • Navigate to the "Backup/Restore" or "Nandroid" menu (or similar).
    • Select "Backup" and (if needed) select which partitions you would like to back up. Some recoveries will also give you the option to compress the backup.
    • Select "Perform backup" (or similar) and wait for the process to finish.

Once the backup has been performed you should be able to use it to recover from many "soft" bricks. However, the two situations you would not be able to recover from with a backup alone would be:

  • Your bootloader is invalid/corrupted/etc
  • Your recovery partition is invalid/corrupted/etc

In both of thse scenarios, you would first need to fix the offending partition (bootloader or recovery) before being able to restore the backup. Basically, anything that prevents you from accessing your recovery partition will also prevent you from using your recovery to restore your backup. Such situations are, I would say, fairly rare. You can use a backup to recover a bad /boot or /system partition, so flashing a kernel or ROM should have an extremely small likelihood of permanently bricking your device (unless it modifies your recovery or bootloader, as noted above).

You may be able to flash an uncompressed backup from fastboot but this would depend on what recovery you are using and how it performs its backups. As I recall, ClockworkMod simply uses dd to create the image and they actually will flash correctly on some devices. However, I would strongly advise researching this before trying as a bad fastboot write could soft brick you as well. Of course, as long as you don't try to overwite your bootloader you won't lose access to fastboot, so in some ways this could be a "nothing ventured, nothing gained" situation.

To actually restore a backup you can:

  • In ROM Manager select "Manage and Restore Backups", then select the backup you wish to restore from.
  • If not using ROM Manager or not using ClockworkMod:

    • Reboot into recovery
    • Select "Backup/Restore" or "Nandroid" (or similar)
    • Select "Restore"
    • Pick the backup you would like to restore from (if more than one)
    • Select the partitions you would like to restore (if givent the option)
    • Select "Restore" and wait for the process to finish

Nandroid backups are, by default, stored on your external storage device in pretty much every situation. Some exceptions may be devices with no separate external storage (e.g. devices like the Galaxy Nexus) where the /sdcard directory is actually on the physical internal storage. In any case, though, it will save to your /sdcard directory, which is readable from a PC as USB mass storage or adb. You can copy a nandroid backup off of your phone and onto a computer for safe-keeping, then copy it back over later if you need to restore.

To do this you can simply plug in your device and look for a path like /sdcard/nandroid (or /sdcard/TWRP for TeamWin recovery, possibly elsewhere for others). Then you can copy the contents of the folder over to your computer. Alternatively, you can pull it with adb by plugging in the device and issuing something akin to:

adb pull /path/to/backups

...from a PC shell.