Skip to content

v1.9.0

Latest

Choose a tag to compare

@doronz88 doronz88 released this 28 Oct 15:41
53f2346

Highlights

✨ Typed public API

ipsw-parser now ships py.typed and its public API is fully annotated, so type checkers see real types instead of Unknown. BuildIdentity is a UserDict[str, Any], get_component() takes tss, data and path explicitly, and BuildManifest.build_identities / BuildIdentity.build_manifest are typed. variant, restore_behavior, macos_variant and minimum_system_partition are Optional. A tss argument only needs a get_path_by_entry() method, so callers can pass their own TSS response type. The package is pyright-strict clean. (#51)

🐛 Firmware manifests map their components

Firmware.get_files() returned nothing usable: the manifest was split as bytes and component names were looked up by the whole filename. It now maps files by prefix, as idevicerestore does. (#51)

🐛 extract-kernel --arch works

Slicing the kernelcache by arch ran ipsw macho lipo on a file that was never written, so it always failed. (#51)

What's Changed

  • 0685aa2 firmware: Decode the manifest and map component names by prefix (#51) (@doronz88)
  • 16d0ab0e typing: Annotate the public API and ship py.typed (#51) (@doronz88)
  • 4792d2e build_identity: Write the kernelcache before slicing it by arch (#51) (@doronz88)

Full Changelog: v1.8.4...v1.9.0