iBackupFS is a FUSEOFS based filesystem representation of your iTunes device backups. As a filesystem it can provide alternative views on the backuped data including on-the-fly decryption, alternative directory graphs and "smart folders", aggregating special files of interest into groups.
You can use it to backup otherwise unreachable content like your WhatsApp chats or to inspect the contents of files you normally don't get to see on your device(s).
- I used Xcode 11.3.1, but earlier versions might also work
- Once installed, everything should work out-of-the-box as Carthage is integrated into the build process via a script phase
In order to access the backups, on macOS 10.14 and later iBackupFS needs to be granted Full Disk Access permission. As a convenience, iBackupFS will open the appropriate preference pane for you in case it's necessary.
Encrypted backups need a password for decryption. The password has to be put
in a user default formed from the device's name and the string
Example: if your device is named "iPhone", then the default key for its
Customization can be achieved, apart from modifying the code, by providing user defaults.
Builtin customization via user defaults
||Complete path to the
||Used to map device specific "domains" to folders. See iBackupFS-Info.plist for examples.|
||Prepends file names with their corresponding
||Decide whether to use smart groups at all.|
||Decide whether to use only smart groups.|
Groups are a dictionary of virtual paths, whose contents are either mapped
from lists of
fileID or from database WHERE CLAUSES (according to the
scheme of the underlying
database). See iBackupFS-Info.plist for
Of course, thanks go to Benjamin Fleischer of macFUSE for still investing time into this great project. Thanks most also go to the maintainers of The iPhone Wiki, specifially to the iTunes Backup page. The most valuable resource, once again like often times was Stackoverflow - specifically the post by Andrew Neitsch at How to decrypt an encrypted iPhone backup. Almost all the code in Keybag is a direct translation from the posted Python code to Objective-C. Carthage is really helpful and without FMDB I'd have to write a SQLite wrapper myself, so thanks for saving me some time! ;-)