I know I'm asking for the close-to-impossible -- as a real full-backup certainly requires root permissions. But still there are many folks around not wanting to root their devices -- afraid of voiding their warranties or bricking their devices, or just not having their devices supported by any rooting method.

I also know there were a lot of questions asked already on this topic, and I checked all of them having the backup tag -- none covers the entire topic, all just have pieces, and especially people new to Android (but other non-power-users as well) would have a hard time figuring out the best way.

So I want a detailed canonical answer to the question:

Not involving root-solutions, how to achieve a backup as close as possible to a full backup?

Please do not give simple one-liner answers like "Use app xyz [full-stop]." If mentioning an app (and I doubt a single app would be the answer here), include what parts are covered by it -- as well as ideas on how to fill the gaps it leaves. (And to make it absolutely clear: I know the first thing coming to mind is Titanium Backup -- I use it myself, but this does not apply here: This question is strictly about methods for non-rooted devices!) Moreover, the answer should be as generic as possible in terms of applying to a wide range of devices (i.e. it should not be resticted to one device or manufacturer).

I already mentioned having investigated all questions here tagged backup. These will certainly be helpful providing details for answers here, so I will list up the topmost ones concerning my question:

All these provide some details for my question (so feel free to get inspired by them) -- but I feel there are still details missing. Also it would be helpful to have a summary -- say, an answer including the full description of "the maximum possible".

A last criterium: While I'd consider cloud-based solutions ligit, I'd favour local solutions. If you can provide both: all the better. But some people value privacy quite high (I'm one of them), and thus would not trust their data to some cloud service.

Thanks to Ryan, we now have a solution for a really complete backup of all apps and their data -- which I didn't dare to hope for! The only disadvantage: His solution only works for less than 10% of all Android users; namely those whose devices are running at least with Android 4.x.

So again, I ask the close-to-impossible: Any solutions applyable at least on Gingerbread (2.3.x) or, better, even Froyo (2.2.x) -- so they cover the majority of current devices? These solutions may involve multiple tools (try to keep it as simple as possible though; think of your mother to follow your instructions ;)

And keep in mind: NO ROOT!

To further motivate high-quality answers (and hopefully avoid low-quality ones), I will be a harsh one here: As I rarely do, I will down-vote answers not fitting the mentioned criteria on one end -- but on the other end, I will setup a bounty for the best answer (which cannot be done immediately, but earliest after 2 days).

what version of android are you looking to backup? because with 4.x there is the 'adb backup' solution that works for non-rooted devices.
–
Ryan ConradAug 26 '12 at 14:45

1

As I'm not looking for myself (my devices are rooted, and so I can use NANDroid backups as well as Titanium Backup), this would be worth an answer -- as it would apply to everybody already having 4.x on his/her device. How much would it cover -- and what about gaps left behind, if any? Please also point out that it needs the SDK installed on the computer (including its pros and cons for unexperienced users).
–
IzzyAug 26 '12 at 15:03

6 Answers
6

Solution Available for 4.x Devices:

For 4.x devices there is a solution called "adb backup". This makes use of adb so you have to have the Android Software Development Kit (SDK) installed on your computer (on some Linux distributions: just packages android-tools-adb and android-tools-adbd).

NOTE: This solution will not back up and restore contact, SMS or calendar information

How to backup your device:

Tap 7 times on "Build number" row (usually the last row). After that "Developer options" section will appear in Settings

Go to "Developer options" section in Settings

Tap the "USB Debugging" checkbox

Second, on your PC from the command prompt you will need to be able to locate both the adb command and your backup file. The easiest way to do this is to run the adb command from the directory where adb is located.

In Windows Explorer navigate to where you installed the Android SDK and SHIFT+RIGHT CLICK on the platform-tools folder.

This will open a command prompt (your window will look different than mine).

In Mac's Terminal you can type cd and then drag the folder platform-tools folder from finder to the terminal window and the path will be inserted. Hit and you will be in the right place.

In Linux, I hope you know how to locate and cd to the parent directory of the adb command. You are using Linux after all.

From here type the following command:

Windows:

adb backup -apk -shared -all -system -f backup08262012.ab

Linux & Mac

./adb backup -apk -shared -all -system -f backup08262012.ab
## Notice that -all doesn't mean ALL. See the big bold NOTE at the top of this answer.
# drop the `./` in the command if you are using `android-tools-adb` package

(if you want to store the backup in a different directory, include a path for the ".ab" file as shown in the screenshot below.)

You will then be prompted on your device for a password (this is used to encrypt the backup):

To restore, it works almost the same way.

Windows:

adb restore backup08262012.ab

Linux & Mac

./adb restore backup08262012.ab

Then you will be prompted for your password to restore on the device:

Now for the shameless self promotion:

Droid Explorer (v0.8.8.7+) will be able to handle this for 4.x devices. While Droid Explorer is currently optimized for Rooted devices, this functionality will work for non-rooted devices as well.

Droid Explorer will do full backups of the device and save them in %USERPROFILE%\Android Backups\. Within that folder is a folder named for the device, and inside that folder are the backups.

Double clicking on the Android Backup file will allow you to restore your device from the backup file.

BTW: Adding to your solution, just today I found a post on the XDA News: Ultimate Backup Tool, No Root Required. This "Ultimate Backup Tool" is just a simple .bat file calling the ADB commands you mentioned (Pastebin) -- and thus can serve as "inspiration" to Linux/Unix/Mac friends to create a similar shell script ;)
–
IzzyAug 27 '12 at 8:34

3

Yes, it does data. Actually, it does the data only by default. The only snag is that it is for 4.x devices and it is a pretty much undocumented feature of adb.
–
Ryan ConradAug 27 '12 at 11:41

2

Does this only work for same device restore, or same model? I have to get my phone replaced (One X with dodgy wifi) and would like to be able to restore everything to the new version...
–
cjkJan 15 '13 at 16:47

2

Is there any type of data that the ADB Backup does not back up and restore? Would this be the best procedure to go from non-rooted to rooted without any data loss? I'm hoping it is as simple as 1) ADB Backup 2) Root the phone 3) ADB Restore.
–
tim11gJul 2 '13 at 22:13

4

! Beware ! adb restore is far from complete, at least on an unrooted stock Android 4.3 on a Nexus 3! A few things are restored, a few not! I checked restoration of some features. NOT RESTORED, basically all the key telephony features: Contacts, sms, ringtone&notification sound, activated input languages (=kbd layouts), ownername (ownername set in first boot wizard is kept instead) PROPERLY RESTORED: Custom vocabulary, wallpaper, launcher icon positions, apps and their settings. Closing statement: This is an unsuited backup solution! Would adb backup complete on rooted phone?
–
porgOct 14 '13 at 0:47

Simple ADB Backup Backs Up Your Android Phone from the Desktop, No Root Required. Most Android backup tools require root, or run from your phone and save your data to your SD card. Simple ADB Backup is different. The app runs from and backs up your phone's data to your desktop, and does it all without root.

To use Simple ADB Backup, you'll need USB Debugging Mode enabled on your Android device (Go to Settings > Developer, enable developer options, then enable USB debugging) and the utility installed on your desktop. That's about it: just plug in your phone, launch the app on your Windows or Linux system, and choose a backup option. You have the option to back up your entire device, just apps, all data with or without system apps, or even a single app if you choose.

The app also lets you restore backed up data to your device. Before you back up, you'll be prompted to generate a password you'll also have to type into the app on your phone before the backup can begin, but after that, the process runs smoothly. It's extremely simple, completely free, and doesn't require you root first.

Whilst Titanium Backup is a more feature-filled app if you're willing to root (especially if you want a bulletproof backup system for your Android), and MyBackup Pro is great if you're migrating to a new phone and don't want a desktop as a middleman, but Simple ADB Backup is free and apparently so easy to use that even Android beginners can easily and quickly back up their important data.

Simple ADB Backup was released for free over at the XDA Developer forums. Hit the link below to download it there.

And also note that, at least according to its name, it probably requires at least Android 4.0 -- as does Ryan's solution. Nevertheless, +1 from me as this makes it easier for those people afraid of the command line :)
–
IzzyJan 15 '13 at 16:58

Technically, you CAN create full Nandroid backup without rooting the device. You just need to flash CWM (or, any recovery which supports Nandroid backup) over USB. For example, you can use Odin (Windows) to flash CWM to Samsung devices after going to download mode, all without touching the Android. So, there's no rooting or root access involved at all.

Well, I think what the real question is then, at least how I perceive it, is How can you do a full backup without voiding your warranty. Average users will not want, or even know how, to root, let alone flash a replacement recovery.
–
Ryan ConradAug 31 '12 at 21:56

You are both correct: Users afraid of rooting will probably be afraid of flashing custom images as well (which might even be impossible considering locked bootloaders) -- I only implicitly thought that to be clear. So technically, Sachin's answer is valid at least for unlocked devices -- though most "standard users" won't apply it. And thanks to Sachin for pointing this out -- it's easily forgotten otherwise. Thinking out loud: Booting into that recovery, one becomes root -- or not? ;)
–
IzzySep 1 '12 at 14:52

@Sachin Thank you! I wasn't aware of 1. -- and with 2. I have some doubts in this context: sure, the unlocking itself must not gain root access. But the custom recovery certainly will -- since without root permissions, how then would it be able to access the partitions to do a NAND backup (aka NANDroid)?
–
IzzySep 1 '12 at 19:20

Koushik Dutta (aka Koush aka Mr. ClockworkMod) has published Helium Backup, which should make the entire thing possible even without the need of a computer and USB cable:

Helium Backup should be able to backup apps and data to SD card, attached USB devices, Dropbox, Google Drive or Box.

This isn't a "full backup" in so far as it comes to system settings, but it does restore application settings and data. It does not backup your internal storage (the user files), so you'll have to backup those files separately.

If you find yourself unable to see your backups in the restore list, some of the backup metadata may have gotten lost in translation. The backup themselves can still be restored, but you'll need some extra leg work to get them.

On Cyanogenmod the situation was a little different: SMS were completely restored, but contacts and call logs still not restored. Even when adb backup and restore where ran with an adb running as root through adb root.

So I will try to use a custom ROM, with root (to get some extra features), a locked bootloader, custom recovery, and only flash the recovery temporarily (theoretically possible from the rooted device with flash_image, but for me this failed too), from which I then do NANDROID backups (or adb backup + special backup solutions for sms/call-logs/contacts) plus custom ROM updates.