{"id":13994236,"url":"https://github.com/avibrazil/iOSbackup","last_synced_at":"2025-07-22T19:31:23.978Z","repository":{"id":36939002,"uuid":"231742810","full_name":"avibrazil/iOSbackup","owner":"avibrazil","description":"A Python 3 class that reads and extracts files from a password-encrypted iOS backup created by iTunes on Mac and Windows. Compatible with iOS 14. Class works on Linux too.","archived":false,"fork":false,"pushed_at":"2024-04-20T19:43:30.000Z","size":102,"stargazers_count":217,"open_issues_count":10,"forks_count":37,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-18T23:37:45.966Z","etag":null,"topics":["backup-files","backup-password","cryptography","databases","encrypted-backups","iphone","itunes"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avibrazil.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-04T10:07:37.000Z","updated_at":"2024-07-18T13:59:25.000Z","dependencies_parsed_at":"2024-03-24T08:33:21.477Z","dependency_job_id":"4ac09408-32d3-4674-839a-fb6a0760a37a","html_url":"https://github.com/avibrazil/iOSbackup","commit_stats":{"total_commits":80,"total_committers":10,"mean_commits":8.0,"dds":0.3375,"last_synced_commit":"76666902d69c1758a673a9142e45cf8d6ed40210"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avibrazil%2FiOSbackup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avibrazil%2FiOSbackup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avibrazil%2FiOSbackup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avibrazil%2FiOSbackup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avibrazil","download_url":"https://codeload.github.com/avibrazil/iOSbackup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":214675175,"owners_count":15768121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup-files","backup-password","cryptography","databases","encrypted-backups","iphone","itunes"],"created_at":"2024-08-09T14:02:47.038Z","updated_at":"2024-08-09T14:13:21.256Z","avatar_url":"https://github.com/avibrazil.png","language":"Python","readme":"# iOSbackup\n\nA Python 3 class that reads and extracts files from a **password-encrypted iOS backup** created by iTunes on Mac and Windows.\nInitial support for unencrypted backups has been aded since version 0.9.923.\nTested compatibility since iOS 10 up to current iOS 15.\n\nYou will need your backup password to decrypt the backup files, this is the password iTunes asks when it is configured to do encrypted backups. This password can be found on macOS’ Keychain Access app, under `login` keychain, entry `iOS Backup` (update: newer macOS apparently doesn’t store it in KayChain anymore).\n\nYou should always prefer encrypted backups because they are more secure and include more files from your device. Non-encrypted backups do not backup files as Health app database and other preciosities.\n\n## Donation\n\nThis software is essential for advanced device forensic activities or to anyone in need to dominate and extract full data from an iOS device.\n\nPlease consider donation of any amount in Bitcoin or Ethereum:\n\n* Bitcoin donation: bc1qerzyzwdnsmpfdkl3lcjgm3rhvvy7svy0p89ndj\n* Ethereum donation: 0x098dADeDDf14382F19d4F5d989fD8734376B0224\n\nThank you in advance\n\n## Installation\n\n```shell\npip3 install iOSbackup --user\n```\n\nOn macOS, get native Python 3 from Apple with command `xcode-select --install`. Read my [guide to install Apple official Python 3 distribution](https://avi.alkalay.net/2019/12/macos-jupyter-data-science-no-anaconda.html) for more details.\n\n`iOSbackup` requires other two packages: `biplist` and `pycryptodome` that will be [installed automatically by `pip`](https://pypi.org/project/iOSbackup/).\n\n`pycryptodome` has an API compatible with older `pycrypto`, which should also work with `iOSbackup`. But `pycryptodome` is more well maintained and easier to install on Windows and macOS.\n\n\n## Usage\n\n### Get list of backups available on your computer\n```python\n\u003e\u003e\u003e from iOSbackup import iOSbackup\n\n\u003e\u003e\u003e iOSbackup.getDeviceList()\n[{'udid': '00456030-000E4412342802E',\n  'name': 'mobileavi',\n  'ios': '13.2.3',\n  'serial': 'DNPPQRS0N4RW',\n  'type': 'iPhone12,3',\n  'encrypted': True},\n{'udid': '00654030-01234412342802E',\n  'name': 'ipad',\n  'ios': '13.1.3',\n  'serial': 'DABCRS0N4RW',\n  'type': 'iPad10,1',\n  'encrypted': True}]\n```\n\n### Open a device backup\n\nWith your password (a slow and compute-intensive task):\n```python\n\u003e\u003e\u003e b=iOSbackup(\n\tudid=\"00456030-000E4412342802E\",\n\tcleartextpassword=\"mypassword\"\n)\n```\nInstead of a clear text password, use a derived key that can be seen into the instantiated object:\n```python\n\u003e\u003e\u003e b=iOSbackup(\n\tudid=\"00456030-000E4412342802E\",\n\tcleartextpassword=\"mypassword\"\n)\n\u003e\u003e\u003e print(b)\n…\ndecryptionKey: dd6b6123494c5dbdff7804321fe43ffe1babcdb6074014afedc7cb47f351524\n…\n```\nFrom now on use your derived key instead of your clear text password to not expose it and because it is much faster:\n```python\n\u003e\u003e\u003e b=iOSbackup(\n\tudid=\"00456030-000E4412342802E\",\n\tderivedkey=\"dd6b6123494c5dbdff7804321fe43ffe1babcdb6074014afedc7cb47f351524\"\n)\n```\n### Linux virtual machine accessing iOS backup on a macOS host\n\nForcing a backup folder, useful when reading backups on Linux, where there is no standard for backup folders:\n```python\n\u003e\u003e\u003e b=iOSbackup(\n\tudid=\"00456030-000E4412342802E\",\n\tcleartextpassword=\"mypassword\",\n\tbackuproot='/media/sf_username/Library/Application Support/MobileSync/Backup'\n)\n```\nFor this to work on a Linux virtual machine accessing a VirtualBox-shared folder, you'll have to grant full disk access to your hypervisor (VirtualBox etc).\nOn macOS, go to *System Preferences* ➔ *Security \u0026 Privacy* ➔ *Privacy* ➔ *Full Disk Access* and enable access to your hypervisor (VirtualBox etc).\nThe hypervisor and VM will have to be restarted for the new setting to be effective.\n\nYou can also copy your device's backup folder, from a Windows or macOS computer, to a Linux computer, and then use this class on Linux to decrypt and read it.\n\n### iTunes default backup folders on Windows and macOS\n\nFiles app (formerly iTunes) on macOS stores backups of associated devices under `~/Library/Application Support/MobileSync/Backup`.\niTunes on Windows stores backups of associated devices under `%HOME%\\Apple Computer\\MobileSync\\Backup`\n\n### Get some info about device on the backup\nInformation about device, model, serial number, its SIMs, iOS version etc can be inspected in\nmultiple places from backup basic catalog files (plist files), even before diving into its\nvast amount of databases and other encrypted files.\n\n```python\nb=iOSbackup(...)\n\n# Device info\ninfoKeys=[\n\t# This is a non-exaustive list of interesting info, but there are more...\n\t'Build Version', 'Device Name', 'Display Name', 'GUID', 'ICCID', 'ICCID 2',\n\t'IMEI', 'IMEI 2', 'Last Backup Date', 'MEID', 'Phone Number', 'Phone Number 2',\n\t'Product Name', 'Product Type', 'Product Version', 'Serial Number',\n\t'Target Identifier', 'Target Type', 'Unique Identifier',\n\t'macOS Build Version', 'macOS Version'\n]\nfor i in infoKeys:\n\tprint(f'{i}: {b.info[i]}')\n\n\n# Other ways to get device info\nb.manifest['Lockdown']['DeviceName'] # device name or hostname\nb.manifest['Lockdown']['ProductVersion'] # iOS version as 14.0.1, see Version column of https://en.wikipedia.org/wiki/IOS_version_history#Version_history\nb.manifest['Lockdown']['BuildVersion'] # iOS version as 18A393, see Build column of https://en.wikipedia.org/wiki/IOS_version_history#Version_history\nb.manifest['Lockdown']['SerialNumber'] # device serial number\nb.manifest['Lockdown']['ProductType'] # device type as iPhone12,3, see columns Identifier of https://www.theiphonewiki.com/wiki/Models\nb.udid # UDID of the device\nb.uuid.hex() # UUID of device\n\n# Backup info\nb.backupRoot # backup root folder\nb.date # UTC date and time of this backup\nb.getDecryptionKey() # password-derived key of backup\nb.manifest['IsEncrypted'] # is it an encrypted backup?\nb.manifest['WasPasscodeSet'] # backup has a passcode?\nb.status\n\n\n# Basic list of installed apps, probably used by iTunes to easily display things to users\nb.info['Applications'].keys()\n\n# Apps icons\npng_data=b.info['Applications']['com.burbn.instagram']['PlaceholderIcon']\n\n# Dive into device content\nb.manifest['ManifestKey'].hex() # manifest DB decryption key\nb.manifest['Applications'] # list of installed apps\nb.manifestDB # decrypted copy of Manifest.db SQLite database\n```\n\n### Get a list of backed-up files:\nInfo available in the `Manifest.db` which relates backup file hash to semi-full path of file into the device, plus file backup domain, plus some file metadata.\n```python\n\u003e\u003e\u003e b.getBackupFilesList()\n[{'name': '',\n  'backupFile': 'abfbc8747bfbb373e2b08ce67b1255ffda4e1b91',\n  'domain': 'AppDomain-4GU63N96WE.com.p5sys.jumpdesktop',\n  'relativePath': '',\n  'flags': 2,\n  'file': b'bplist00\\xd4...'\n  },\n {'name': 'Documents',\n  'backupFile': 'ec0c1b379560bb5ccc81ee783538fd51cfd97461',\n  'domain': 'AppDomain-4GU63N96WE.com.p5sys.jumpdesktop',\n  'relativePath': 'Documents',\n  'flags': 2,\n  'file': b'bplist00\\xd4...'\n  },\n {'name': 'Documents/Servers',\n  'backupFile': 'a735380eade71b48f0fe27d38a283aacd8ed8372',\n  'domain': 'AppDomain-4GU63N96WE.com.p5sys.jumpdesktop'},\n {'name': 'Documents/extensions',\n  'backupFile': 'c08f725cc39ec819ab7ced3b056f4e0630ead09f',\n  'domain': 'AppDomain-4GU63N96WE.com.p5sys.jumpdesktop'},\n {'name': 'Library',\n  'backupFile': 'e60a6345697594c735e5a6ed86c0d57dad6a2176',\n  'domain': 'AppDomain-4GU63N96WE.com.p5sys.jumpdesktop'},\n ...]\n```\n\n`backupFile` is the file name on your computer. Basically SHA1([Domain]/[FilePath]).\n\n`name` is the original semi-complete path of file name in the device.\n\n`domain` is the file group this file is member, see bellow list of domains.\n\n`file` is binary plist content with some file metadata.\n\nOr put it directly into a Pandas DataFrame for easier manipulation and searching:\n```python\n\u003e\u003e\u003e import pandas as pd\n\u003e\u003e\u003e backupfiles=pd.DataFrame(b.getBackupFilesList(), columns=['backupFile','domain','name'])\n```\n\nWith Pandas, display only list of files in `HomeDomain` group:\n```python\n\u003e\u003e\u003e backupfiles[backupfiles['domain']=='HomeDomain']\n```\n\n### Get a decrypted copy of the call history SQLite database:\nThe `getFileDecryptedCopy()` method creates a decrypted copy of requested file on `targetFolder/targetName`.\nIf `targetFolder` and `targetName` aren't given, a temporary file will be created.\nThe name of decrypted file (temporary or not) can be found in the `decryptedFilePath` item of returned dict, as seen below.\n\n```python\n\u003e\u003e\u003e file=b.getFileDecryptedCopy(relativePath=\"Library/CallHistoryDB/CallHistory.storedata\")\n\u003e\u003e\u003e file\n{'decryptedFilePath': 'HomeDomain~Library--CallHistoryDB--CallHistory.storedata',\n 'domain': 'HomeDomain',\n 'originalFilePath': 'Library/CallHistoryDB/CallHistory.storedata',\n 'backupFile': '5a4935c78a5255723f707230a451d79c540d2741',\n 'size': 1228800}\n```\n\nFetch call records from the decrypted copy of call history database, using a SQL query.\n```python\n\u003e\u003e\u003e calls = sqlite3.connect(file['decryptedFilePath'])\n\u003e\u003e\u003e calls.row_factory=sqlite3.Row\n\u003e\u003e\u003e calllog = calls.cursor().execute(f\"SELECT * FROM ZCALLRECORD ORDER BY ZDATE DESC\").fetchall()\n```\n\n### Restore Entire Folder Containing _Photos_ and their Metadata\nThis content is located in the `Media` folder of `CameraRollDomain` domain.\nThis example will exclude videos from restoration.\n```python\n\u003e\u003e\u003e b.getFolderDecryptedCopy(\n\t'Media',\n\ttargetFolder='restored-photos',\n\tincludeDomains='CameraRollDomain',\n\texcludeFiles='%.MOV'\n)\n```\n\n### Restore an entire domain\nHere we restore all files of `WirelessDomain` in a hierarchy starting at local directory:\n```python\n\u003e\u003e\u003e b.getFolderDecryptedCopy(\n\tincludeDomains='WirelessDomain',\n)\n```\nHere we restore all files of `HomeDomain` in a hierarchy starting at folder `my-folder`:\n```python\n\u003e\u003e\u003e b.getFolderDecryptedCopy(\n\tincludeDomains='HomeDomain',\n\ttargetFolder='my-folder',\n)\n```\nTo restore all backed up data files of an app, search for its domain name (see below) and use this technique.\n\n\n### Get List of All Installed Apps\n```python\n\u003e\u003e\u003e apps=list(b.manifest['Applications'].keys())\n\u003e\u003e\u003e apps\n['group.com.apple.Maps',\n 'group.net.whatsapp.family',\n 'it.joethefox.XBMC-Remote',\n 'com.google.GoogleMobile.NotificationContentExtension',\n 'group.com.dendrocom.uniconsole',\n ...\n]\n```\n\n### Get List of All Apps, Groups and Plugins with “_whatsapp_” In Their Name\n```python\n\u003e\u003e\u003e [s for s in list(b.manifest['Applications'].keys()) if \"whatsapp\" in s]\n['group.net.whatsapp.WhatsApp.shared',\n 'net.whatsapp.WhatsApp.ShareExtension',\n 'group.net.whatsapp.WhatsAppSMB.shared',\n 'net.whatsapp.WhatsApp.NotificationExtension',\n 'net.whatsapp.WhatsApp.Intents',\n 'net.whatsapp.WhatsApp.TodayExtension',\n 'net.whatsapp.WhatsApp.IntentsUI',\n 'group.net.whatsapp.WhatsApp.private',\n 'net.whatsapp.WhatsApp.ServiceExtension',\n 'net.whatsapp.WhatsApp']\n```\n\n### Restore All Files of Apps, Groups and Plugins Matching “_whatsapp_”\nI had to use previous method to find the list of app IDs and see that “_whatsapp_” is a good word to match them.\nEach app component has its own backup domain prefixed by `AppDomain`, `AppDomainGroup` or `AppDomainPlugin`.\nSo we'll iterate over all possibilities of fabricated domain names with `getFolderDecryptedCopy()`.\n```python\nfor id in [s for s in list(b.manifest['Applications'].keys()) if \"whatsapp\" in s]:\n    for prefix in [\"AppDomain\", \"AppDomainGroup\", \"AppDomainPlugin\"]:\n        b.getFolderDecryptedCopy(includeDomains=prefix + '-' + id)\n```\nOther apps might have a less intuitive name. For example, Telegram can be matched by “_telegra_” (without ‘m’):\n```python\nfor id in [s for s in list(b.manifest['Applications'].keys()) if \"telegra\" in s]:\n    for prefix in [\"AppDomain\", \"AppDomainGroup\", \"AppDomainPlugin\"]:\n        b.getFolderDecryptedCopy(includeDomains=prefix + '-' + id)\n```\n\n## Apple-native Python 3 Installation on Macs\n\nFollow my guide at https://avi.alkalay.net/2019/12/macos-jupyter-data-science-no-anaconda.html\n\nBasically use command `xcode-select --install` to get Python 3 installed and updated by Apple on your Mac.\n\n## List of Domains\n\nDomain | Contains\n--- | ---\n**AppDomain-...** | Backup of each installed app's files\n**AppDomainGroup-...** | Backup of each installed app's files\n**AppDomainPlugin-...** | Backup of each installed app's files\n**CameraRollDomain** | Photos\n**DatabaseDomain** |\n**HealthDomain** | Health app databases\n**HomeDomain** | Many interesting databases, such as contacts and call history\n**HomeKitDomain** |\n**InstallDomain** |\n**KeyboardDomain** |\n**KeychainDomain** |\n**ManagedPreferencesDomain** |\n**MediaDomain** |\n**MobileDeviceDomain** |\n**RootDomain** |\n**SysContainerDomain-com.apple.Preferences.SettingsSpotlightIndexExtension** |\n**SysContainerDomain-com.apple.Preferences.indexSettingsManifests** |\n**SysContainerDomain-com.apple.accessibility.AccessibilityUIServer** |\n**SysContainerDomain-com.apple.adid** |\n**SysContainerDomain-com.apple.akd** |\n**SysContainerDomain-com.apple.appstored** |\n**SysContainerDomain-com.apple.apsd** |\n**SysContainerDomain-com.apple.backboardd** |\n**SysContainerDomain-com.apple.fairplayd.H2** |\n**SysContainerDomain-com.apple.geod** |\n**SysContainerDomain-com.apple.icloud.findmydeviced** |\n**SysContainerDomain-com.apple.icloud.ifccd** |\n**SysContainerDomain-com.apple.icloud.searchpartyd** |\n**SysContainerDomain-com.apple.lsd** |\n**SysContainerDomain-com.apple.lskdd** |\n**SysContainerDomain-com.apple.metrickitd** |\n**SysContainerDomain-com.apple.mobilesafari** | Bookmarks and cookies ?\n**SysContainerDomain-com.apple.springboard** |\n**SysSharedContainerDomain-systemgroup.com.apple.AssetCacheServices.diskCache** |\n**SysSharedContainerDomain-systemgroup.com.apple.DiagnosticsKit** |\n**SysSharedContainerDomain-systemgroup.com.apple.ReportMemoryException** |\n**SysSharedContainerDomain-systemgroup.com.apple.VideoSubscriberAccount** |\n**SysSharedContainerDomain-systemgroup.com.apple.WiFiAssist** |\n**SysSharedContainerDomain-systemgroup.com.apple.bluetooth** |\n**SysSharedContainerDomain-systemgroup.com.apple.cfpreferences.managed** |\n**SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles** |\n**SysSharedContainerDomain-systemgroup.com.apple.coreanalytics** |\n**SysSharedContainerDomain-systemgroup.com.apple.icloud.findmydevice.managed** |\n**SysSharedContainerDomain-systemgroup.com.apple.icloud.fmipcore.MockingContainer** |\n**SysSharedContainerDomain-systemgroup.com.apple.icloud.ifccd** |\n**SysSharedContainerDomain-systemgroup.com.apple.icloud.searchpartyd.sharedsettings** |\n**SysSharedContainerDomain-systemgroup.com.apple.itunesu.shared** |\n**SysSharedContainerDomain-systemgroup.com.apple.lsd** |\n**SysSharedContainerDomain-systemgroup.com.apple.lsd.iconscache** |\n**SysSharedContainerDomain-systemgroup.com.apple.lskdrl** |\n**SysSharedContainerDomain-systemgroup.com.apple.media.books.managed** |\n**SysSharedContainerDomain-systemgroup.com.apple.media.shared.books** |\n**SysSharedContainerDomain-systemgroup.com.apple.mobile.installationhelperlogs** |\n**SysSharedContainerDomain-systemgroup.com.apple.mobilegestaltcache** |\n**SysSharedContainerDomain-systemgroup.com.apple.nsurlstoragedresources** |\n**SysSharedContainerDomain-systemgroup.com.apple.ondemandresources** |\n**SysSharedContainerDomain-systemgroup.com.apple.osanalytics** |\n**SysSharedContainerDomain-systemgroup.com.apple.sharedpclogging** |\n**SystemPreferencesDomain** |\n**TonesDomain** |\n**WirelessDomain** |\n\n## Interesting Files\n\nBackup file | Domain | File name | Contains\n--- | --- | --- | ---\ned1f8fb5a948b40504c19580a458c384659a605e | WirelessDomain | Library/Databases/CellularUsage.db | Table `subscriber_info` apparently contains all SIM phone numbers ever inserted in the phone since about iOS 11 or 12. Data here is related to `Library/Preferences/com.apple.commcenter.plist`.\n0d609c54856a9bb2d56729df1d68f2958a88426b | WirelessDomain | Library/Databases/DataUsage.sqlite | A rich database that apparently contains app WWAN usage through time. Chack tables `ZPROCESS` and `ZLIVEUSAGE`.\n1570a95f5dc7f4cd6b54bc17c427eda95288b8fa | HomeDomain | Library/SpringBoard/LockVideo.mov | Video used as background on lock screen\n. | HomeDomain | Library/Passes/Cards/* | Wallet passes and items\n8d0167b67f664a3816b4c00115c2dfa6a8f81388 |WirelessDomain | Library/Preferences/com.apple.AppleBasebandManager.Statistics.plist | Apparently contains times of last boot and restores.\ndafec408e48be2700704dd3e763014c39f6de6b3 | WirelessDomain | Library/Preferences/com.apple.AppleBasebandManager.plist\n9329979c8298f9cd3fb110fa387570a8b957e912 | WirelessDomain | Library/Preferences/com.apple.CommCenter.counts.plist | Has `CellularBytesRecved` and `CellularBytesSent`\n3dec38ca46c9e37ffebacf2611463eb47a65eb09 | WirelessDomain | Library/Preferences/com.apple.commcenter.audio.plist\n7e5f642f6da5e2345c0893bdf944da9c53902756 | WirelessDomain | Library/Preferences/com.apple.commcenter.callservices.plist\nbfecaa9c467e3acb085a5b312bd27bdd5cd7579a | WirelessDomain | Library/Preferences/com.apple.commcenter.plist | Cellular network informations and configurations, including all ever inserted SIM and eSIM cards, their phone numbers and nicknames as configured under Settings➔Celular. Data here is related to `Library/Databases/CellularUsage.db` \n160600e9c2e408c69e4193d325813a2a885bce2a | WirelessDomain | Library/Preferences/com.apple.ipTelephony.plist |\n12b144c0bd44f2b3dffd9186d3f9c05b917cee25 | CameraRollDomain | Media/PhotoData/Photos.sqlite | Photo library data, albums, tagged faces, moments, places, geolocations, date and times, formats etc.\n. | CameraRollDomain | Media/DCIM/*APPLE | Original master photos/videos taken by your camera or imported through AirDrop etc\n. | CameraRollDomain | Media/PhotoData/Mutations/DCIM/*APPLE | Edited version of photos/videos\n. | HomeDomain | Library/Mobile Documents/iCloud~... | Apps documents on iCloud\n. | HomeDomain | Library/Mobile Documents/com\\~apple\\~CloudDocs/... | Documents folder on iCloud\n5a4935c78a5255723f707230a451d79c540d2741 | HomeDomain | Library/CallHistoryDB/CallHistory.storedata | Call History database with only the last 600 calls\n31bb7ba8914766d4ba40d6dfb6113c8b614be442 | HomeDomain | Library/AddressBook/AddressBook.sqlitedb | User contacts and address book. Table `ABPerson` is the central one with facts about contact creation and modification, while `ABMultiValue*` tables contain contact details.\ncd6702cea29fe89cf280a76794405adb17f9a0ee | HomeDomain | Library/AddressBook/AddressBookImages.sqlitedb | Contact photos\n9db3e5a6f1672cc306cd785809811e79cc43a2f8 | HomeDomain | Library/AddressBook/backup/AddressBook.sqlitedb\n2a87d5bcdb9753f1462dd1e929b17e6a971c5b01 | HomeDomain | Library/AddressBook/backup/AddressBookImages.sqlitedb\n1a0e7afc19d307da602ccdcece51af33afe92c53 | HomeDomain | Library/Safari/History.db\n. | MediaDomain | Library/SMS/Attachments/*\n. | MediaDomain | Library/SMS/StickerCache/*\n. | . | Library/Caches/locationd/consolidated.db | Apparently list of known iBeacons\n\n\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favibrazil%2FiOSbackup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favibrazil%2FiOSbackup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favibrazil%2FiOSbackup/lists"}