[GUIDE] Full Phone Backup without Unlock or Root

Search This thread

copkay

Senior Member
Jul 29, 2010
353
610
Like a lot of you, I have been putting off unlocking the bootloader on my Nexus because I didn't want to have to go through the hassle of backing up everything manually and restoring individual application data; logging back into apps; saving settings; etc. I found an undocumented (at least as far as my googling was able to find) feature in the latest version of the ADB platform tools (for Android 4.0+) that allows you to create a full system backup, including app apks, their respective data, as well as the internal storage.

Keep in mind this is experimental and not exactly publicized as a feature of ICS, so don't count on this as your only method of backup!

This guide assumes you have already installed the Android SDK, and updated the Android SDK Platform Tools to the latest version (currently Rev 10) using the SDK Manager.

1. Connect your device via USB, and open a command prompt.

2. Optionally, type the command 'adb devices' to ensure that your device is properly recognized. If you're comfortable with ADB already, just skip this.

There is a command, 'adb backup' (to be detailed shortly), that will now allow you to create a full system backup.

The command parameters format is:

adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<packages...>]

The most basic command you can use* is simply:


This will use the defaults to backup only app and device data (not the APKs themselves) to the current directory as 'backup.ab'

* This may not work for every setup. If you get an error such as "adb: cannot open file ./backup.ab", use:

adb backup -all -f C:\backup.ab

Or substitute the path of your choice in place of C:\.

To explain the parameters:


Use this to choose where the backup file will be stored, e.g. '-f /backup/mybackup.ab', which will save it at the root of your drive (C:\ for Windows, etc.) in a folder called backup, as a file named 'mybackup.ab'. I recommend using this flag to set a location manually, as with my first backup test, it said that it completed successfully, but I was unable to locate the backup file. I have no idea where it was saved, but it wasn't where it should have been located.


This flags whether or not the APKs should be included in the backup or just the apps' respective data. I personally use -apk just in case the app isn't available in the Market, so that I don't have to go hunt it down again. The default is -noapk.


This flag is used to "enable/disable backup of the device's shared storage / SD card contents; the default is noshared.", which for the Nexus I would certainly flag to -shared, but from my test, it did not restore all of the contents of my internal storage, so I recommend backing up music, pictures, video, and other internal storage items manually, just to be on the safe side. The default is -noshared.


This flag is just an easy way to say to backup ALL apps. The packages flag (further on) can be used to choose individual packages, but unless you're just wanting to backup a specific application, use -all for a full system backup.


This flag sets whether or not the -all flag also includes system applications or not. I used -system, but this is probably unnecessary, and I would almost guess that it is safer to use -nosystem, but use your own judgment on this. The default is -system.


Here you can list the package names (e.g. com.google.android.apps.plus) specifically that you would like to backup. Use this only if you're looking to backup a specific application.

3. Once you've made your decision on how to perform the backup, simply type the command as you would like it; in my case, this is the command that I used:

adb backup -apk -shared -all -f C:\backup20111230.ab

4. You will see a screen like the following:

OGmMa.png


5. Enter a password (if desired) for encryption of the backup file. RETAIN THIS PASSWORD FOR RESTORING LATER.

6. This process will take several minutes to complete, depending on the settings you've chosen, but when completed, you will get a toast on-screen saying 'Backup Complete', or if you miss that, you'll know once your phone returns to the home screen.

7. Now go unlock your bootloader (not going to go into the process for this guide, but you probably know how already, and if not, there are several guides a search away).

8. Once you're booted back into Android, you can choose to add your account now, or skip that for later. I skipped it for later, but I think it might make the process more smooth to sign in before the restore. YMMV.

9. To restore, with your device connected open your command prompt again, and type:

adb restore C:\backup20111230.ab

replacing 'C:\backup20111230.ab' with the location of your backup file.

10. You will see a screen like the one below:

MT9Sl.png


11. Simply type in your current encryption password (if you've set one), and the password with which the backup was encrypted (if you chose to set a password), and the restore will begin. It again will take several minutes depending on the size of the backup and the options chosen.

12. You're back to normal, short of possibly some widgets on the home screen. My wallpaper was even restored, my app folders remained just as I had them before, my alarms remained, and for most applications, I didn't even have to log back in; it kept everything.

________________________

NOTE: I did have an issue with not all files being restored to the Internal Storage; in particular, the Gallery still displayed all the folders and files that it had cached (which it expected to be there) as only gray boxes, and would not display the images, nor would it rescan the media. I simply copied the files back to the Internal Storage directory manually, and all was well again. Again, YMMV.

NOTE 12/31: Also to note, this will not back up SMS messages, so if you're concerned about those, you may want to look into an alternative application to back up SMS.

NOTE 06/12: There seems to be a bug in which backup and restore operations will fail unless a desktop backup password is set under Developer Options. It will not work with a blank password.

Hope this is able to help! If so, give me a thanks :))) and let me know how your experience goes.

- Kevin
 
Last edited:

faizalmzain

Senior Member
Feb 26, 2010
311
18
Kuala Lumpur
In earlier build of ics there's an option to do such backup under back up and restore settings.

However it's not there in final ics.

I've done it once when I flashed one of those early build of ics on nexus s.
 
  • Like
Reactions: Nurchi

copkay

Senior Member
Jul 29, 2010
353
610
In earlier build of ics there's an option to do such backup under back up and restore settings.

However it's not there in final ics.

I've done it once when I flashed one of those early build of ics on nexus s.

Interesting. They must have deemed it not quite ready for primetime yet. Seems like it should show up in a future version sometime in the not-too-distant future, then. Until then, this seems to work pretty well. :)
 
  • Like
Reactions: CMNein

RogerPodacter

Senior Member
Apr 12, 2010
5,654
425
Los Angeles, CA
I just finally rooted. The longer you wait the more painful it will be to start over, so just get it over with. If the adb method qorkks then great. I've flashed and rooted so many phones that its just better to get it over with as pukemon will tell you.
 

copkay

Senior Member
Jul 29, 2010
353
610
I just finally rooted. The longer you wait the more painful it will be to start over, so just get it over with. If the adb method qorkks then great. I've flashed and rooted so many phones that its just better to get it over with as pukemon will tell you.

While that's true, if you're already past the point of painful return, why start over when this backup method is available? It's not a question of if it works (it does work).
 

sahakiap

Member
Dec 31, 2011
34
4
my first post. i have successfully taken a full backup using your guide and it worked great. thanks! my question is can i now unlock the boot loader and root then restore my backup and i will have all my settings and apps along with still having the unlocked boot loader and root?
 

copkay

Senior Member
Jul 29, 2010
353
610
my first post. i have successfully taken a full backup using your guide and it worked great. thanks! my question is can i now unlock the boot loader and root then restore my backup and i will have all my settings and apps along with still having the unlocked boot loader and root?

Yes, as shown in the guide, just use the 'adb restore' command after unlocking the bootloader. You may wish to backup your Internal Storage manually, just to be safe, and backup your SMS with a third party app, if you care to keep them. Obtaining root isn't covered in this guide, but yeah, you can root it once you've unlocked the bootloader.
 

ktulu029

Member
Jun 28, 2010
10
4
I have been trying to do this, but when after i "backup" the backup file shows no size. Am I missing a step?
 

ktulu029

Member
Jun 28, 2010
10
4
I do. And shortly after, maybe 5 sec I get one saying backup complete. I just did one just using the -apk code, and it took about 10 min, but still rendered me with a .ab file with 0kb.
 
Last edited:

copkay

Senior Member
Jul 29, 2010
353
610
I do. And shortly after, maybe 10 sec I get one saying backup complete. I just did one just using the -apk code, and it took about 10 min, but still rendered me with a .ab file with 0kb.
I apologize if this is a stupid question, but it's one worth asking: have you tried refreshing the folder? Initially the file starts out as 0b and builds up as it goes, and it's possible the file has a size, but the window just hasn't updated to show it.
 

ktulu029

Member
Jun 28, 2010
10
4
I apologize if this is a stupid question, but it's one worth asking: have you tried refreshing the folder? Initially the file starts out as 0b and builds up as it goes, and it's possible the file has a size, but the window just hasn't updated to show it.

Ha, it is ok and very reasonable to ask that. I have, and same result. I have been going through and toggling things to see what I have on or off that should be otherwise. Just to get the next one out of the way, USB debugging is on.
 

copkay

Senior Member
Jul 29, 2010
353
610
Ha, it is ok and very reasonable to ask that. I have, and same result. I have been going through and toggling things to see what I have on or off that should be otherwise. Just to get the next one out of the way, USB debugging is on.

Haha, okay. Hmm, well if it's getting as far as that there's no question that ADB is connecting. For some reason, it's just not writing out the files. You're on 4.0.2, I'm sure? (not that it should make a difference), and are you GSM or LTE? I really don't think it should matter; I'm just grasping at straws...

I just tried the same exact command you mentioned; I'm also on Win7 x64; LTE Nexus with 4.0.2; backed up directly to C:/c/backup.ab.
 

ktulu029

Member
Jun 28, 2010
10
4
Haha, okay. Hmm, well if it's getting as far as that there's no question that ADB is connecting. For some reason, it's just not writing out the files. You're on 4.0.2, I'm sure? (not that it should make a difference), and are you GSM or LTE? I really don't think it should matter; I'm just grasping at straws...

I just tried the same exact command you mentioned; I'm also on Win7 x64; LTE Nexus with 4.0.2; backed up directly to C:/c/backup.ab.

I am running the same setup as you. Would the version of SDK tools and Platform tools matter? I am running Rev 16 and 10 repectively. When I run the comands I am in the C:/ prompt, but that doesnt seem to matter from what I can tell. I am using the USB computer connection of MTP rather than PTP if that matters.

I am still pretty green to this, as the last phone I really messed with was the Eris, and with that it has still been awhile. Things have really come a long way since then.
 

copkay

Senior Member
Jul 29, 2010
353
610
I am running the same setup as you. Would the version of SDK tools and Platform tools matter? I am running Rev 16 and 10 repectively. When I run the comands I am in the C:/ prompt, but that doesnt seem to matter from what I can tell. I am using the USB computer connection of MTP rather than PTP if that matters.

I am still pretty green to this, as the last phone I really messed with was the Eris, and with that it has still been awhile. Things have really come a long way since then.

The versions might matter, but you're on the same revisions I'm on. Now, I will say that I am running from C:/Program Files(x86)/Android/android-sdk/platform-tools/ rather than just the straight C:/ prompt, just because I've been too lazy to add ADB to my system variables. I'm also using MTP, which shouldn't affect it.

Yeah, things have changed quite a bit; going from the Droid line to the Fascinate was my last jump.

The only thing I can think of to try is to make sure that you are running your Command Prompt as Administrator. The fact that it's creating a file at all seems to disprove that this would have an effect, but it's worth a try.
 
  • Like
Reactions: Pr0je3ct

Top Liked Posts

  • There are no posts matching your filters.
  • 488
    Like a lot of you, I have been putting off unlocking the bootloader on my Nexus because I didn't want to have to go through the hassle of backing up everything manually and restoring individual application data; logging back into apps; saving settings; etc. I found an undocumented (at least as far as my googling was able to find) feature in the latest version of the ADB platform tools (for Android 4.0+) that allows you to create a full system backup, including app apks, their respective data, as well as the internal storage.

    Keep in mind this is experimental and not exactly publicized as a feature of ICS, so don't count on this as your only method of backup!

    This guide assumes you have already installed the Android SDK, and updated the Android SDK Platform Tools to the latest version (currently Rev 10) using the SDK Manager.

    1. Connect your device via USB, and open a command prompt.

    2. Optionally, type the command 'adb devices' to ensure that your device is properly recognized. If you're comfortable with ADB already, just skip this.

    There is a command, 'adb backup' (to be detailed shortly), that will now allow you to create a full system backup.

    The command parameters format is:

    adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<packages...>]

    The most basic command you can use* is simply:


    This will use the defaults to backup only app and device data (not the APKs themselves) to the current directory as 'backup.ab'

    * This may not work for every setup. If you get an error such as "adb: cannot open file ./backup.ab", use:

    adb backup -all -f C:\backup.ab

    Or substitute the path of your choice in place of C:\.

    To explain the parameters:


    Use this to choose where the backup file will be stored, e.g. '-f /backup/mybackup.ab', which will save it at the root of your drive (C:\ for Windows, etc.) in a folder called backup, as a file named 'mybackup.ab'. I recommend using this flag to set a location manually, as with my first backup test, it said that it completed successfully, but I was unable to locate the backup file. I have no idea where it was saved, but it wasn't where it should have been located.


    This flags whether or not the APKs should be included in the backup or just the apps' respective data. I personally use -apk just in case the app isn't available in the Market, so that I don't have to go hunt it down again. The default is -noapk.


    This flag is used to "enable/disable backup of the device's shared storage / SD card contents; the default is noshared.", which for the Nexus I would certainly flag to -shared, but from my test, it did not restore all of the contents of my internal storage, so I recommend backing up music, pictures, video, and other internal storage items manually, just to be on the safe side. The default is -noshared.


    This flag is just an easy way to say to backup ALL apps. The packages flag (further on) can be used to choose individual packages, but unless you're just wanting to backup a specific application, use -all for a full system backup.


    This flag sets whether or not the -all flag also includes system applications or not. I used -system, but this is probably unnecessary, and I would almost guess that it is safer to use -nosystem, but use your own judgment on this. The default is -system.


    Here you can list the package names (e.g. com.google.android.apps.plus) specifically that you would like to backup. Use this only if you're looking to backup a specific application.

    3. Once you've made your decision on how to perform the backup, simply type the command as you would like it; in my case, this is the command that I used:

    adb backup -apk -shared -all -f C:\backup20111230.ab

    4. You will see a screen like the following:

    OGmMa.png


    5. Enter a password (if desired) for encryption of the backup file. RETAIN THIS PASSWORD FOR RESTORING LATER.

    6. This process will take several minutes to complete, depending on the settings you've chosen, but when completed, you will get a toast on-screen saying 'Backup Complete', or if you miss that, you'll know once your phone returns to the home screen.

    7. Now go unlock your bootloader (not going to go into the process for this guide, but you probably know how already, and if not, there are several guides a search away).

    8. Once you're booted back into Android, you can choose to add your account now, or skip that for later. I skipped it for later, but I think it might make the process more smooth to sign in before the restore. YMMV.

    9. To restore, with your device connected open your command prompt again, and type:

    adb restore C:\backup20111230.ab

    replacing 'C:\backup20111230.ab' with the location of your backup file.

    10. You will see a screen like the one below:

    MT9Sl.png


    11. Simply type in your current encryption password (if you've set one), and the password with which the backup was encrypted (if you chose to set a password), and the restore will begin. It again will take several minutes depending on the size of the backup and the options chosen.

    12. You're back to normal, short of possibly some widgets on the home screen. My wallpaper was even restored, my app folders remained just as I had them before, my alarms remained, and for most applications, I didn't even have to log back in; it kept everything.

    ________________________

    NOTE: I did have an issue with not all files being restored to the Internal Storage; in particular, the Gallery still displayed all the folders and files that it had cached (which it expected to be there) as only gray boxes, and would not display the images, nor would it rescan the media. I simply copied the files back to the Internal Storage directory manually, and all was well again. Again, YMMV.

    NOTE 12/31: Also to note, this will not back up SMS messages, so if you're concerned about those, you may want to look into an alternative application to back up SMS.

    NOTE 06/12: There seems to be a bug in which backup and restore operations will fail unless a desktop backup password is set under Developer Options. It will not work with a blank password.

    Hope this is able to help! If so, give me a thanks :))) and let me know how your experience goes.

    - Kevin
    5
    I've always been able to perform an adb backup using the command adb backup -apk -shared -all -f D:\Android\Nexus5\YYYYMMDD.ab

    But since upgrading the SDK platform-tools using installer_r24.4.1-windows.exe now when I use the same command I get the error message
    adb: unable to open file D:\Android\Nexus5\YYYYMMDD.ab
    and in the D:\Android\Nexus5 folder is an empty folder named YYYYMMDD.ab

    To get the ADB backup to work I have to open the CMD window in the D:\Android\Nexus5 folder and then modify the backup command to
    adb backup -apk -shared -all -f YYYYMMDD.ab
    4
    I created a simple DOS batch script to pull the media contents and then do a adb backup.


    echo off
    SET Today=%Date: =0%
    SET Year=%Today:~-4%
    SET Month=%Today:~-10,2%
    SET Day=%Today:~-7,2%
    SET DateString=%Year%%Month%%Day%

    echo on
    adb pull /data/media/ ./%DateString%Media/
    ECHO Allow Backup on Phone
    adb backup -apk -noshared -all -f ./backup%DateString%.ab
    adb kill-server
    3
    I created a simple DOS batch script to pull the media contents and then do a adb backup.

    The media backup can take awhile so I borrowed your batch file to give a menu. I have not tested the restore options and it loses the ability to do multiple backups.

    Code:
    echo off
    SET Today=%Date: =0%
    SET Year=%Today:~-4%
    SET Month=%Today:~-10,2%
    SET Day=%Today:~-7,2%
    SET DateString=%Year%%Month%%Day%
    
    :MENU
    ECHO 1. Backup /data/media/
    ECHO 2. Backup USER apps and data ONLY (excluding system apps)
    ECHO 3. Backup USER apps and data AND shared data(excluding system apps)
    ECHO 4. Backup ALL apps and data (including system apps and shared data)
    ECHO 5. Restore /data/media
    ECHO 6. Restore USER apps and data
    ECHO 7. Restore ALL apps and data (including system apps)
    ECHO 8. Quit
    SET /p choice=Please choose a menu option: 
    IF '%choice%' == '1' GOTO BUMEDIA
    IF '%choice%' == '2' GOTO BUUSERAPPS
    IF '%choice%' == '3' GOTO BUUSERAPPSSHARED
    IF '%choice%' == '4' GOTO BUALLAPPS
    IF '%choice%' == '5' GOTO RESMEDIA
    IF '%choice%' == '6' GOTO RESUSERAPPS
    IF '%choice%' == '7' GOTO RESSYSAPPS
    IF '%choice%' == '8' GOTO QUIT_MENU
    ECHO Please choose an option between 1 and 8
    GOTO MENU
    
    :BUMEDIA
    ECHO Backing up /data/media/
    echo on
    ::adb pull /data/media/ ./%DateString%Media/
    adb pull /data/media/ ./Media/
    adb kill-server
    ECHO OFF
    CLS
    GOTO MENU
    
    :BUUSERAPPS
    ECHO Unlock screen, set a password (required)
    ::adb backup -apk -shared -all -nosystem -f ./userbackup%DateString%.ab
    adb backup -apk -shared -all -nosystem -f ./userbackup.ab
    adb kill-server
    CLS
    REM Your device must return to the homescreen prior to disconnecting the USB cable
    GOTO MENU
    
    :BUUSERAPPSSHARED
    ECHO Unlock screen, set a password (required)
    ::adb backup -apk -noshared -all -nosystem -f ./userbackup%DateString%.ab
    adb backup -apk -noshared -all -nosystem -f ./userbackup.ab
    adb kill-server
    CLS
    REM Your device must return to the homescreen prior to disconnecting the USB cable
    GOTO MENU
    
    :BUALLAPPS
    ECHO Unlock screen, set a password (required)
    ::adb backup -apk -shared -all -system -f ./sysbackup%DateString%.ab
    adb backup -apk -shared -all -f -system ./sysbackup.ab
    adb kill-server
    CLS
    REM Your device must return to the homescreen prior to disconnecting the USB cable
    GOTO MENU
    
    :RESMEDIA
    ECHO Restoring /data/media/
    ECHO ON
    adb push ./Media/ /data/media/
    adb kill-server
    ECHO OFF
    CLS
    GOTO MENU
    
    :RESUSERAPPS
    ECHO Unlock screen, enter the password
    adb restore ./userbackup.ab
    adb kill-server
    CLS
    REM Your device must return to the homescreen prior to disconnecting the USB cable
    GOTO MENU
    
    :RESSYSAPPS
    ECHO Unlock screen, enter the password
    adb restore ./sysbackup.ab
    adb kill-server
    CLS
    REM Your device must return to the homescreen prior to disconnecting the USB cable
    GOTO MENU
    
    :QUIT_MENU
    3
    Is there any way to verify the integrity of the backup file?

    Yes, in a way : http://xdaforums.com/showthread.php?t=1730309

    With this you can "unpack" the .ab file and then be sure it can be read without error.
    Hope this helped you