|
| 1 | +// Create `Readme.pdf` using following command: |
| 2 | +// typst compile Readme.typ Readme.pdf |
| 3 | + |
| 4 | +#import "@preview/note-me:0.4.0": * |
| 5 | + |
| 6 | +#show link: set text(fill: blue) |
| 7 | +#show link: underline |
| 8 | + |
| 9 | += iOS Backup Extractor v1.2.4 |
| 10 | + |
| 11 | +`ios_backup_extractor` is a free command line utility to extract media files |
| 12 | +(photos and videos) from a local #emph[unencrypted] iOS device backup. This |
| 13 | +type of backup is typically created by Apple's |
| 14 | +#link("https://apps.microsoft.com/detail/9pb2mz1zmb1s")[iTunes] or |
| 15 | +"#link("https://apps.microsoft.com/detail/9np83lwlpz9k")[Apple Devices]" |
| 16 | +application on Windows OS or the built-in Finder application on |
| 17 | +MacOS#footnote[Follow instructions from Apple's |
| 18 | +#link("https://support.apple.com/guide/iphone/back-up-iphone-iph3ecf67d29/ios")[iPhone |
| 19 | +User Guide].]. |
| 20 | + |
| 21 | +== Download |
| 22 | + |
| 23 | +Visit the #link("https://github.com/joz-k/ios_backup_extractor/releases")[Release Page]. |
| 24 | + |
| 25 | +For a full history of changes, see the |
| 26 | +#link("https://github.com/joz-k/ios_backup_extractor/blob/main/History.md")[Change History]. |
| 27 | + |
| 28 | +#note[ |
| 29 | +Please refer to the "#link(<anchor_troubleshooting>)[Troubleshooting]" section |
| 30 | +if the provided binaries display error messages. |
| 31 | +] |
| 32 | + |
| 33 | +== Screenshots |
| 34 | + |
| 35 | +#image("res/win_screenshot1.png", alt: "screenshot1") |
| 36 | +#image("res/macos_screenshot1.png", alt: "screenshot1") |
| 37 | + |
| 38 | +== Motivation |
| 39 | + |
| 40 | +This tool is designed to use unencrypted local iOS backups as a reliable and |
| 41 | +incremental way to export photos and videos from iOS devices to your computer |
| 42 | +without relying on any cloud services. Frequent (even daily) iOS backups are |
| 43 | +very efficient because they are incremental (only new or changed files are |
| 44 | +added to the backup). Additionally, the tool itself is fully incremental: it |
| 45 | +never moves or overwrites files that have already been exported to the |
| 46 | +specified output directory. |
| 47 | + |
| 48 | +#strong[Note]: An unencrypted iOS backup won't contain most sensitive |
| 49 | +information from your iOS device. For example, passwords, Wi-Fi settings, |
| 50 | +website and call history, and health data are never |
| 51 | +transferred#footnote[#link("https://support.apple.com/en-us/108353")]. So they |
| 52 | +are not as insecure as you might think. However, it is important to back up |
| 53 | +your iOS device data only to a fully secured computer. |
| 54 | + |
| 55 | +== Troubleshooting <anchor_troubleshooting> |
| 56 | + |
| 57 | +#strong[Problem:] I launched the command on MacOS and it shows the message |
| 58 | +"`ios_backup_extractor` cannot be opened because the developer cannot be |
| 59 | +verified."\ |
| 60 | +#strong[Solution:] You need to add this command to security exceptions |
| 61 | +following these steps: |
| 62 | + 1. In the Finder on your Mac, locate the app where it has been extracted |
| 63 | + (unzipped). |
| 64 | + 2. Control-click the `ios_backup_extractor` icon, then choose Open from the |
| 65 | + shortcut menu. |
| 66 | + 3. Click Open. This opens the Terminal window, launches the application and |
| 67 | + saves a security exception for it. |
| 68 | + 4. You can now run the tool from the command line as usual. |
| 69 | + |
| 70 | +#strong[Problem:] I run the tool on the MacOS and it says there are no iOS |
| 71 | +backups available or I see an error message about directory access.\ |
| 72 | +#strong[Solution:] Go to Settings, `Security & Privacy` → `Full Disk Access` |
| 73 | +and enable "Full Disk Access" for your `Terminal` application. |
| 74 | +#pagebreak() |
| 75 | + |
| 76 | +== `--help` screen |
| 77 | + |
| 78 | +``` |
| 79 | +‘ios_backup_extractor’ extracts media files from an unencrypted |
| 80 | +local backup of the iOS device made by iTunes or “Apple Devices” application |
| 81 | +for Windows or by iPhone/iPad backup to MacOS computer. |
| 82 | +
|
| 83 | +Usage: |
| 84 | + ios_backup_extractor.exe [OPTIONS] DEVICE_SERIAL_ID | DEVICE_BACKUP_DIR --out OUTPUT_DIR |
| 85 | + ios_backup_extractor.exe [OPTIONS] --list |
| 86 | +
|
| 87 | +Commands: |
| 88 | + <default> Extract media files from device backup. |
| 89 | + -l, --list List available iOS device backups. |
| 90 | + --list-long Like '--list' but prints more details. |
| 91 | +
|
| 92 | +Options: |
| 93 | + -f, --format FORMAT Determines a directory structure created in the output |
| 94 | + directory. Valid values are: |
| 95 | + - ‘ym’ for subdirectories like YYYY-MM (default) |
| 96 | + - ‘ymd’ for subdirectories like YYYY-MM-DD |
| 97 | + - ‘flat’ no subdirectories |
| 98 | + -s, --since DATE Extract and copy only files created since DATE. |
| 99 | + DATE must be in format YYYY-MM-DD or one |
| 100 | + of the following special keywords: |
| 101 | + - ‘last-week’ |
| 102 | + - ‘last-month’ |
| 103 | + --add-trash Extract also items marked as deleted. |
| 104 | + --prepend-date Prepend a media creation date to each exported filename. |
| 105 | + Default format is YYYY-MM-DD. |
| 106 | + --prepend-date-separator SEPARATOR |
| 107 | + Change the separator for '--prepend-date' format. |
| 108 | + Possible values are: |
| 109 | + - ‘dash’ (default) |
| 110 | + - ‘underscore’ |
| 111 | + - ‘none’ |
| 112 | + -d, --dry Dry run, don't copy any files. |
| 113 | + -v, --verbose Show more information while running. |
| 114 | + -h, --help Display help. |
| 115 | +
|
| 116 | +Examples: |
| 117 | + List all available iOS backups to determine device serial numbers. |
| 118 | +
|
| 119 | + ios_backup_extractor.exe --list |
| 120 | +
|
| 121 | + Extract all media files for a device with the serial number 'ABC123ABC123' |
| 122 | + to 'My Photos and Videos' directory. Such directory must exists already. |
| 123 | +
|
| 124 | + ios_backup_extractor.exe ABC123ABC123 -o "My Photos and Videos" |
| 125 | +
|
| 126 | +Version: |
| 127 | + 1.2.4 (2024-11-13) |
| 128 | +``` |
| 129 | + |
| 130 | +== License |
| 131 | + |
| 132 | +© 2024 #link("https://github.com/joz-k/")[joz-k], |
| 133 | +#link("http://www.perlfoundation.org/artistic_license_2_0")[Artistic License |
| 134 | +2.0] |
0 commit comments