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 freedoms. Its 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.
Screenshots
Requirements
- A jailbroken iPhone or iPod touch running iOS 2.0 or later, with Cydia (tested only on iOS 3.1.2)
- At least one App Store app
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:
- bash
- coreutils-bin
- python
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
-
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.
-
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.
-
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. -
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)
- 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.
- 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.)
- 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). -
Click the dropdown at the top-left of the window, and select the backup you want to use.
-
In the top pane, click on the entry whose Display Name is
---
and whose Name isSystem
. -
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. -
Click on the icon that looks like a folder with an arrow on it. Its tooltip will say “Export selected files to C:\temp”.
- 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.
- Go to https://www.transifex.com/.
- Sign up for a free account or log in if you already have one. (You will not be able to see the resource otherwise).
- Go to https://www.transifex.com/projects/p/appbackup/resource/localizable-strings/.
- 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.
- Update your translation and click Save All when you’re done.
Credits / License
AppBackup is free software, which means that it respects your freedoms. Its 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)
- Fixed a bug with translations where if something wasn’t translated then nothing would appear in the UI (expected behavior is that the English text would appear instead).
- AppBackup no longer crashes if backuptimes.plist is corrupted or malformed.
- Updated the Czech, Japanese, and Korean translations.
AppBackup 2.0.1 (2011-05-27)
- Fixed the problem where AppBackup was hanging on the Please Wait screen for many people.
- Fixed a cosmetic bug with the Please Wait screen.
- Updated Spanish translation.
- ini-to-strings.py now sorts the list of language files before converting them.
AppBackup 2.0 (2011-05-26)
- AppBackup now works on iOS versions 4.3.x and later (and it still works with iOS 3; untested on iOS 2).
- Added a confirmation screen for all actions.
- Redesigned About screen.
- AppBackup has been split into two parts:
- The GUI, written in Objective-C this time.
- A command-line interface in the form of a Python package. (Just type
appbackup
at the terminal to use it.) - As a result, the code has been completely rewritten and is much cleaner and object-oriented.
- The FixPermissions utility can now be used by typing
appbackup-fix-permissions
at the terminal. It is still run automatically in the GUI mode only. - Updated translations and added new translations for the following languages:
- Czech - Jan Kozánek
- Chinese - goodlook8666
- Greek - Spiros Chistoforos-Libanis
- Japanese - Osamu
- Korean - Joon Ki Hong
- Norwegian - Jan Gerhard Schøpp
- Changed translations format in the source tree.
- Translations are now managed on Transifex (https://www.transifex.net/) and converted to Apple’s Localizable.strings format at build time.
AppBackup 1.0.14 (2011-05-05)
- SECURITY UPDATE:
FixPermissions now ensures that no directory other than
/var
is a link. - Added the German ß/Eszett to the diacritical mappings used for sorting.
- This does NOT fix the incompatibility with iOS 4.3.x. I am still working on fixing that.
AppBackup 1.0.13 (2011-01-13)
- Added the ability to ignore and un-ignore apps in the backup list and when using the All button.
- Fixed a crash caused by an error in the Dutch translation. (Tim van Neerbos was consulted about the problem string. This bug only affected users who have their language set to Dutch.)
- The unique bundle ID of each app is now displayed under its name in the backup/restore prompt.
AppBackup 1.0.12 (2010-11-27)
- Fixed a bug where AppBackup would crash if the modification time of a backup file was used instead of a non-existent backuptimes.plist entry.
- Fixed a couple of bugs in the old method of finding apps.
- Reverted to the old method of finding apps because it is faster.
- Fixed some problems with the English strings for deleting backups.
- Fixed logging when deleting backups.
- Simplified localization code in BackupAll/BackupOne.
- The action argument of
on(OneApp/AllApps)
DoAction_withModalView_
takes an unlocalized string now.
AppBackup 1.0.11 (2010-11-25)
- Added a Dutch translation by Dennis Morren.
- Added a Russian translation by Nikita “ZAY” Peshkov.
- Added proper error-checking when backing up or restoring/deleting a backup.
- Added the ability to delete backups (only translated to English and Russian for now).
-
Permissions on
/var/mobile/Library/Preferences/AppBackup
are now fixed on startup to reduce crashes- This is done with a setuid root binary called
FixPermissions
and can be disabled by making an empty file at/Applications/AppBackup.app/
NoFixPermissions
- This is done with a setuid root binary called
- The modification time for the backup file is now used as a fallback if the file exists but the app is not in backuptimes.plist.
-
Added Retina images for the icon and splash screen.
- The Retina icon is slightly different than the low-resolution icon.
- Re-designed the splash screen.
- Now released under the X11 License.
- The Web site’s domain name is now pages.srwz.us.
- Full changelog now shipped with AppBackup and shown in the About dialog.
- Tweaked the debug.log format a tiny bit.
- Source changes:
- Setuid root binary called
FixPermissions
added to fix permissions on startup. PermissionsFix
is nowFixPermissions.old
and is deprecated.- Changes related to Python naming conventions and docstrings in
include/globals.py
. - Source tree reorganized, changes and credits reorganized, and build process changed.
- README and LICENSE files added.
- Trivial changes.
- Setuid root binary called
AppBackup 1.0.10 (2010-08-03)
- Added an Italian translation by Pietropaolo Mastromarco.
- Fixed a bug where the restore option didn’t appear if we couldn’t get a localized date string from the operating system, even though the app was backed up already.
- (Only of interest to developers) Sorted the functions in
include/globals.py
alphabetically, except for a couple of long ones which were left at the bottom.
AppBackup 1.0.9.9 (2010-06-10)
- Added a Spanish translation by Ramón Cutanda.
- Changed the debug logging method again.
- Threads now have autorelease pools.
- This version is mainly intended to help me figure out crashing problems that people are having, although the above change might help some.
AppBackup 1.0.9.2 (2010-01-14)
- Fixed another problem when upgrading to 1.0.7 or later from 1.0.6 or earlier.
AppBackup 1.0.9.1 (2010-01-13)
- AppBackup no longer crashes on a new install.
- Fixed complications when upgrading to 1.0.7 or later from 1.0.6 or earlier.
AppBackup 1.0.9 (2010-01-11)
- Attempted to fix AppBackup crashing on new installs.
AppBackup 1.0.8
- There is NO version 1.0.8!
AppBackup 1.0.7 (2010-01-10)
- Moved backup location to
/var/mobile/Library/Preferences/AppBackup
so that iTunes will back them up.
AppBackup 1.0.6 (2009-09-19?)
- Added a French translation by Marc Klein and I forgot to mention it.
- Worked around a problem caused by MobileSubstrate support, which was removed.
AppBackup 1.0.5 (2009-08-17)
- Fixed a problem where apps whose .app folders’ names had non-ASCII characters in them (e.g. “é” or “™”) would crash AppBackup.
- Support for sorting app names that have accented letters has been added. (e.g. “Métro” now comes before “Mint”)
- CPU-intensive functions are now executed in separate threads. This should result in better performance. Specifically, finding apps and the actual backup and restore processes are now executed in separate threads.
- The method used for finding apps has changed except for firmware versions below 2.1.
- Reorganized the code A LOT.
- Changed the debug logging process.
- Made other small changes.
AppBackup 1.0.4 (2009-07-09)
- Works on iPhoneOS 3.0
- Worked around bug where an app that localized its name on the SpringBoard and didn’t have a CFBundleDisplayName key in its Info.plist file would crash AppBackup
- Fixed more crash-on-startup bugs
- Added credits for the translations to the About screen (VERY sorry about not doing this earlier, translators)
- Added MobileSubstrate support
AppBackup 1.0.3final (2008-09-27)
- Added German and Swedish translations
- Uses date format according to user’s locale and preferences
- Source is now compiled into optimized Python bytecode to run a little quicker; this may fix some crashing problems people have been having, especially after updating to 2.1.
- Changes to UI: All and About buttons moved to bottom; buttons in dialogs are now on separate rows. This is to better support translated strings.
- Sorting of apps in the list is now done case-insensitively.
AppBackup 1.0.2 (2008-09-02)
- Fixed a problem where if an app’s Info.plist file didn’t exist, AppBackup would crash by checking to see if it exists (thanks Steven B.)
- Fixed a problem where AppBackup would crash if you have a non-directory file
in
/var/mobile/Applications
(thanks Ryan H.) - Changed some strings to stress that this doesn’t backup the actual apps, but just their saved data
- Added support for localization.
- Other small code changes
AppBackup 1.0.1 (2008-08-19)
- Now outputs debugging info to
/var/mobile/Library/AppBackup/
debug.log
- Fixed a problem with BigBoss-provided debs causing it to crash
- Changed something that I think might cause a crashing bug if you have lots of AppStore apps
- Added thanks to BigBoss for hosting it
- Some minor, unnoticeable changes (like changing some comments in the code)
AppBackup 1.0 (2008-08-17)
- Initial public release