Repository navigation
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