Decrypt an encrypted iOS backup created by iTunes on Windows or MacOS
extract_files(...)
method now supports an incremental
mode, where files that already exist in the output folder that have not been modified since the file was last modified on iOS will be skipped. This may speed up extracting large numbers of files, but may not function as intended if files in the output directory are subsequently modifed.plistlib
rather than the external and outdated biplist
. Since Python 3.8, plistlib
contains everything this library needs.None
being returned.https://github.com/jsharkey13/iphone_backup_decrypt/compare/v0.5.0...v0.6.0
hashlib.pbkdf2_hmac
method with pycryptodome
's Crypto.Protocol.KDF.PBKDF2
method. This is likely to make the initial decrypting of backups 2-3x faster, if fastpbkdf2
was not installed. PBKDF2 is not used after the initial decryption step, so this will not affect the speed of decrypting files after the first.If this release performs poorly, compare it to v0.4.0
and open an issue if the previous release is faster.
https://github.com/jsharkey13/iphone_backup_decrypt/compare/v0.4.0...v0.5.0
relativePath
of Documents/something.xyz
, then extract this into the output folder as output_folder/Documents/something.xyz
. This behaviour is optional, default disabled, and available for the extract_files
method.relativePath
and multiple clashing files are extracted, they will overwrite one another. Files can now be grouped inside domain subfolders in the output folder to avoid this. This behaviour is optional, default disabled, and available for the extract_files
method.domain
of files. Some files do not have a unique relativePath
, but the combination of app domain
and relativePath
is enough to uniquely identify them. Extracting these files is now simpler, by specifying an optional domain_like
argument, which may contain wildcards.MatchFiles
which contains paired relative_paths_like
and domain_like
values useful for more specific file extraction.extract_files
method now returns the number of files extracted.extract_file
or extract_file_as_bytes
methods, a FileNotFoundError
is now thrown, rather than None
being returned.Manifest.db
database, a RuntimeException
is now thrown by all methods, rather than silently suppressing the error and returning None
.https://github.com/jsharkey13/iphone_backup_decrypt/compare/v0.3.1...v0.4.0
https://github.com/jsharkey13/iphone_backup_decrypt/compare/v0.3.0...v0.3.1
pyproject.toml
rather than setup.py
for packaging.iphone_backup_decrypt
for easier installation.https://github.com/jsharkey13/iphone_backup_decrypt/compare/v0.2.2...v0.3.0