Skip to content

v0.4.0

Compare
Choose a tag to compare
@jsharkey13 jsharkey13 released this 04 Feb 12:53
· 32 commits to master since this release

Changelog:

New features:

  • Support for retaining subfolders of extracted files; i.e. if a file has a 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.
  • Support for domain subfolders in output. If files do not have a unique 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.
  • Support for filtering by the 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.
  • New helper classes for finding files, notably MatchFiles which contains paired relative_paths_like and domain_like values useful for more specific file extraction.
  • The extract_files method now returns the number of files extracted.

Breaking changes

  • The last modification time of extracted files is now extracted from the backup metadata and set on all files extracted to the local filesystem. Note this time is not the backup creation/modification time, but the last modified time of the file on the iPhone itself.
  • If a file is not found by the extract_file or extract_file_as_bytes methods, a FileNotFoundError is now thrown, rather than None being returned.
  • If an exception occurs when querying the Manifest.db database, a RuntimeException is now thrown by all methods, rather than silently suppressing the error and returning None.

v0.3.1...v0.4.0