Lately there are talks about lost data after iPhone application upgrade. If the application is a web service client, data loss causes the app to "forget" who you are and your password, an annoyance. But, if it's a personal finance tool, your password reminder, or your "GTD" to-do lists, then lost data is no joke.
As users, we need to find a way to make sure that we have control over the data that iTunes backed up for us. As developers, we need to understand how the backup mechanism works, and if it's possible for users to salvage the data if it's lost in their iPhones/iPod Touches.
Also, we need to heed the needs of Windows users too, because there are many iPhone/iPod Touch users who use Windows.
So I wrote this command line tool, mobilesync-inspect. It does four things:
- List what's in the mdbackup files
- Get the content of a certain mdbackup file
- Replace the content of a certain mdbackup (caveat: effect not yet known)
- Backup all contents to a directory
The last feature overlaps with that of iphone-backup-decoder (http://code.google.com/p/iphone-backup-decoder/).
As of writing (August 6, 2008 04:00 AM GMT+8), the situation seems bleak-- data loss can happen if during the App Store upgrade your connection is lost. And if at this time you sync your device with iTunes, iTunes doesn't seem able to remind you that your app data is zapped. In short, iTunes DOES NOT KEEP HISTORICAL BACKUP FOR YOUR APP DATA.
As it is, mobilesync-inspect is available in two versions: Mac OS X (10.4 and 10.5) and Windows. Both are command line tools. I'm also making it an open source project, in the hope that there'll be interested developers making other tools (for example, GUI frontends) out of it.
It's distributed under the New (3-Clause) BSD License.
If you're using the prebuilt version, please refer to USAGE.txt for detailed usage. Windows users please also read README-Windows.txt, because you'll need some files from Safari for Windows in order to run this tool.
As with any tool that plays with your data, it's prudent to save a backup (of your backup files!) before trying anything on them.
Hope this helps anyone who needs to get out a file or two.