AppBackup

AppBackup is an app for jailbroken iOS devices that lets you back up and restore the saved data and settings of App Store apps.  AppBackup DOES NOT back up the apps themselves, just the stuff they save (like settings, game progress, etc.)

AppBackup is free software, which means that it respects your freedomsIts source code is freely available under the terms of the X11 License.

AppBackup does not work on iOS 8 or later.

I am no longer maintaining AppBackup, so this will likely never be fixed.

The command-line interface has been updated for iOS 8.  Instructions on how to install and use it can be found here.

Compatibility Note:  I am unable to test AppBackup on iOS 4 or later because I only have a 2G iPhone.  However, users have reported that AppBackup does work on iOS 7.

Download AppBackup

AppBackup is available via BigBoss’s repository (or mine) on Cydia! You can find it under the Utilities section.

You can find older versions here.

Get the source code here.

Screenshots

Requirements

Installation

AppBackup is available via BigBoss’s repo on Cydia.  You can also download and install the Debian package directly, but you will need to make sure the following packages are installed first:

Usage

To back up one app, open AppBackup, select the app, and then select Backup.  To restore an app, select it and then select Restore.  (If there is no restore option, then it hasn’t been backed up yet.)  You can also choose to delete an app’s backup, or to ignore or un-ignore the app (i.e. prevent it from being backed up, restored, or deleted).

To back up all apps at once, tap All at the top-left of the screen, and select Backup.  To restore all apps that have been backed up at once, tap All and select Restore.  (You must have at least one app backed up in order to see this option.)  You can also choose to delete all backups on your device (except those for apps which have been ignored).

The app list only shows apps that have already been installed through the App Store.  If you have just reset your device and you want to restore app data, then you must first reinstall the apps whose data you want to restore before AppBackup will let you restore their data.

Backup location

Backups are stored in /var/mobile/Library/Preferences/AppBackup/tarballs as files called <bundle-id>.tar.gz, where <bundle-id> is the respective app’s bundle identifier (e.g. com.ooi.supermonkeyball).  These files are regular gzip-compressed tar archives and can be opened with any program capable of viewing them (e.g. 7-zip on Windows).

If you want to “back up the backups,” you should back up the entire /var/mobile/Library/Preferences/AppBackup directory tree.

Backup times are stored as an XML property list at /var/mobile/Library/Preferences/AppBackup/backuptimes.plist as Unix timestamps.  The list of ignored apps is stored as a plain text file at /var/mobile/Library/Preferences/AppBackup/ignore.txt, with each app’s bundle ID on a separate line.

FAQ

  1. Does AppBackup back up data from jailbreak apps (e.g. from Cydia)?

    No.  This is because jailbreak apps store their data in many different places, while App Store apps save their data in sandboxes that I can easily locate.  Also, the reason I made AppBackup was because, at the time, there was a known problem with App Store apps’ data being removed during updates.

  2. Does AppBackup work with iOS 4/5/6/7/14/1024?

    AppBackup does not work on iOS 8 or later. Some users have reported that AppBackup works on iOS 4 and 5, but I can’t test AppBackup on iOS versions greater than 3.1.3 because I only have an iPhone 2G. 

    I am no longer maintaining AppBackup, so this will likely never be fixed.

    The command-line interface has been updated for iOS 8.  Instructions on how to install and use it can be found here.

  3. Does iTunes back up data that I save through AppBackup?

    Yes.  AppBackup stores its data under /var/mobile/Library/Preferences, which is backed up by iTunes.

  4. How do I get my AppBackup backups out of my backup in iTunes?

    For Windows:  (these instructions were tested in Windows 7 x64 Service Pack 1)

    1. Install the MS Visual C++ 2010 x86 runtime and .NET Framework 4 (Web installer or standalone).  If you’re on Windows XP, also install the Microsoft IDN Mitigation APIs.  All of these libraries are required to run the program in step 2.
    2. Download iPhone Backup Browser (not to be confused with the non-free iPhone Backup Extractor) and extract it to somewhere you can remember.  It does not come with an installer.  This program is free software released under the revised BSD license. (Its source code is now on GitHub.)
    3. Go to the folder where you extracted iPhone Backup Browser to and open iphonebackupbrowser.exe as an administrator (on Vista/7, right-click and click Run as administrator).
    4. Click the dropdown at the top-left of the window, and select the backup you want to use.

    5. In the top pane, click on the entry whose Display Name is --- and whose Name is System.

    6. In the bottom pane, find the entries that begin with “Library/Preferences/AppBackup”.  Click on the first one, and then hold down the Shift key while clicking on the last one.

    7. Click on the icon that looks like a folder with an arrow on it.  Its tooltip will say “Export selected files to C:\temp”.

    8. Go to C:\temp, then go to the folder with your device’s name, then System > Library > Preferences.  The AppBackup folder contains AppBackup’s data.  You need to copy this entire folder to /var/mobile/Library/Preferences on your iDevice in order to use it.

    Mac OS X instructions coming soon.

Command-line interface

AppBackup also has a command-line interface (which currently works with at least iOS 2.x–8.1.x).  It is available as part of the Cydia package or from the Python Package Index.

The command-line interface that comes with the Cydia package is called appbackup, and the one in PyPI is called iosappbackup.  Currently, the Cydia one is outdated (I’m waiting to update it in Cydia until I have the GUI working on iOS 8, in order to avoid confusion), while the PyPI one is the one that works on iOS 8.  In AppBackup 3, these will both be the same thing, but the name difference will remain in order to avoid conflicts between the two.

To install the command-line interface from PyPI on a jailbroken iOS device, run these three commands on your device:

$ sudo apt-get update
$ sudo apt-get install python setuptools
$ sudo easy_install -U iosappbackup

(The -U means to upgrade the package if it’s already installed.)

Usage examples (only for the new iosappbackup):

$ iosappbackup ls
Chrome (com.google.chrome.ios):  (not backed up)
Facebook (com.facebook.Facebook):  (ignored)
Test App, Please Ignore (example.Test-App--Please-Ignore):  2014-12-19 08:56:39
$ iosappbackup backup com.google.chrome.ios
$ iosappbackup unignore com.facebook.Facebook
$ iosappbackup backup --all  # or -a
$ iosappbackup ignore com.facebook.Facebook
$ iosappbackup restore example.Test-App--Please-Ignore
$ iosappbackup restore --all
$ iosappbackup ls -l
Chrome (com.google.chrome.ios):
            Bundle name:  Chrome.app
  Bundle container path:  /var/mobile/Containers/Bundle/Application/B9DCED24-703C-4B08-B04D-3AE2EF0F6B71
  Bundle container UUID:  B9DCED24-703C-4B08-B04D-3AE2EF0F6B71
    Data container path:  /var/mobile/Containers/Data/Application/67E32582-EB57-48B0-B5F8-9C6375E71641
    Data container UUID:  67E32582-EB57-48B0-B5F8-9C6375E71641
                Useable:  True
                Ignored:  False
            Backup time:  2014-12-27 14:12:01
            Backup path:  /var/mobile/Library/Preferences/AppBackup/tarballs/com.google.chrome.ios.tar.gz

[...]

You can also run iosappbackup --help or just iosappbackup for more help with the command-line interface, or iosappbackup <command> --help for help with a particular command.


You can also install the AppBackup command-line interface on a Mac (e.g. to use it with the iOS Simulator), or even on a non-Apple operating system such as GNU/Linux.  To do so, first install pip if you don’t have it already:

# On a Mac (OS X comes with Python 2.7 and setuptools):
$ sudo easy_install -U pip
# ...or on certain Linux distributions:
ubuntu$ sudo apt-get update; sudo apt-get install python-pip
fedora$ sudo apt-get install python-pip
  arch$ sudo pacman -S python2-pip

Then install iosappbackup using pip (on Arch, use pip2):

$ sudo pip install -U --pre iosappbackup

(As with easy_install, the -U means to upgrade the package if it’s already installed.)

(Using pip is recommended as it allows you to uninstall packages, whereas easy_install doesn’t.  On an iDevice, however, you must use easy_install because pip doesn’t work with Python 2.5.)

If you are not using iosappbackup on an iOS device, you will need to tell it where your apps are with the -r (or --root) option:

$ iosappbackup -r ~/Library/Developer/CoreSimulator/Devices/<uuid>/data ls
$ iosappbackup -r stuffs/var-mobile backup com.mojang.minecraftpe

It will use the Library/Preferences/AppBackup directory inside the directory given with -r as the backup and data location.  You can also use the -c (or --config-dir) option to use a different location for the backups and data.

Translations

I use Transifex to manage translations for AppBackup.  If you would like to translate AppBackup to another language, or update an existing translation:

NOTE:  %@ is a placeholder for various items of text that are included at runtime.  You need to have the %@ in the appropriate places in your translations for AppBackup to work.  The instructions for each string containing %@ will tell you what the %@ stands for, although for many strings it will be obvious.

  1. Go to https://www.transifex.com/.
  2. Sign up for a free account or log in if you already have one.  (You will not be able to see the resource otherwise).
  3. Go to https://www.transifex.com/projects/p/appbackup/resource/localizable-strings/.
  4. Click on your language and click Translate Now.  If your language is not there, click Add Translation, select your language, and click click Translate Online.
  5. Update your translation and click Save All when you’re done.

Credits / License

AppBackup is free software, which means that it respects your freedomsIts source code is freely available under the terms of the X11 License.  AppBackup also includes software released under similar free, permissive licenses.  For the full text of the license and copyright notices for AppBackup and all software included with it, see the LICENSE.txt file in the source repository.

AppBackup would not have been possible without the work and help of others.  See CREDITS.txt for a list of these people.

Source Code

AppBackup’s source code is available on Bitbucket at https://code.s.zeid.me/appbackup.  AppBackup is written in Objective-C, Python 2.5, POSIX shell, and C.

Changes

AppBackup 2.0.2 (2011-05-31)

AppBackup 2.0.1 (2011-05-27)

AppBackup 2.0 (2011-05-26)

AppBackup 1.0.14 (2011-05-05)

AppBackup 1.0.13 (2011-01-13)

AppBackup 1.0.12 (2010-11-27)

AppBackup 1.0.11 (2010-11-25)

AppBackup 1.0.10 (2010-08-03)

AppBackup 1.0.9.9 (2010-06-10)

AppBackup 1.0.9.2 (2010-01-14)

AppBackup 1.0.9.1 (2010-01-13)

AppBackup 1.0.9 (2010-01-11)

AppBackup 1.0.8

AppBackup 1.0.7 (2010-01-10)

AppBackup 1.0.6 (2009-09-19?)

AppBackup 1.0.5 (2009-08-17)

AppBackup 1.0.4 (2009-07-09)

AppBackup 1.0.3final (2008-09-27)

AppBackup 1.0.2 (2008-09-02)

AppBackup 1.0.1 (2008-08-19)

AppBackup 1.0 (2008-08-17)