76 Commits
Author SHA1 Message Date
blacktop 3c6c1a54f5 Update sandbox.go 2026-06-04 15:23:21 -06:00
blacktop 4a126e7d99 chore(fmt): go fix 2026-06-04 12:06:59 -06:00
blacktop e209828c31 feat(diff): add cacheable task-based reports
Refactor diff jobs into task-owned renderers with persistent cache support, root-confined walkers, and quieter Mach-O/Firmware output.
2026-06-04 12:02:46 -06:00
blacktop d0935380cf chore(diff): add --loc to the ipsw diff cmd 2026-05-26 21:51:49 -06:00
blacktop fc41188d93 feat(diff): add sandbox profile diffing behind sandbox build tag 2026-05-03 12:44:18 -06:00
blacktop 652abdd7af feat: add OTA input mode support to ipsw diff
Introduces direct OTA file diffing without requiring pre-extraction.
Users can now pass `.ota`/`.aea` files directly to `ipsw diff` alongside
existing IPSW and directory input modes.

Key additions:
- `internal/diff/ota_inputs.go`: OTA-specific input handling including
  cryptex mounting, kernelcache extraction, firmware parsing, iBoot
  parsing, and feature flag collection from mounted volumes
- `inputModeOTA` enum variant in `directory_inputs.go`
- `--key-db`, `--key-val`, and `--insecure` flags on `diff` command for
  AEA-encrypted OTA decryption
- AEA key database lookup mirroring the `ota` command's key resolution
- Magic-byte-aware error handling: AEA/AA files propagate decryption
  errors while ambiguous ZIPs fail silently (not-an-OTA)
- Validation rejects partial/delta and RSR OTAs with actionable messages
- Comprehensive unit tests covering all new helpers
2026-04-13 20:32:10 -06:00
blacktop edd24ded16 fix: sanitize diff Title->filename and update tests 2026-03-26 16:30:14 -06:00
blacktop 96a9edc310 Create format_test.go 2026-03-25 20:26:06 -06:00
blacktop 5e1c0ee6af feat: refactor diff formatting and remove unimplemented HTML method
- Move templates to package-level variables
- Clean up imports (add html, maps, slices, strings)
- Simplify String() method using shared template
- Remove unused HTML() panic stub
2026-03-25 20:24:39 -06:00
blacktop d09ca85093 feat(diff): support diffing patched OTA DMG directories and update documentation 2026-03-17 19:13:23 -06:00
Thatchapon UnprasertandGitHub 70434eecaa feat: Reduce ipsw diff memory usage (#986) 2026-02-18 18:38:38 -07:00
Sam CollinsonandGitHub d35f0ebdff fix: add proxy support for downloading FCS keys 🥝 (#914) 2025-11-09 11:38:09 -07:00
blacktop 141045a500 fix: ipsw diff cleanup original file .aea files properly 2025-10-01 19:16:05 -06:00
blacktop cac6764c3d fix: prevent NEW launch constraints from breaking ent DB 2025-10-01 14:00:17 -06:00
blacktop e1ad160d0d feat: added --mount-point|-m flag to ipsw mount cmd to let you pick the mount location + docs update 2025-08-12 15:55:42 -06:00
blacktop 478a569c74 fix: add partial --insecure support to fcs key pem download in AEA commands 2025-07-29 15:11:53 -06:00
blacktopandGitHub 3cded00f59 feat: revamp ipsw img4 commands to bring inline with tools like img4lib (#784) 2025-06-28 01:54:40 -06:00
blacktop 96d6244d16 fix: ipsw diff --markdown format for large diffs 2025-06-10 00:27:01 -06:00
blacktop 045f3f08c2 chore: move ipsw diff entitlement's scanning behind a --ent flag + move Version checking behind --verbose flag + add UUID to diff heuristics 2025-05-19 14:08:09 -06:00
blacktop 0a1f622241 feat: add --starts and --signatures to ipsw diff to add high level func diffing + kernel symbolication 2025-05-18 23:48:43 -06:00
blacktop 1089d1c290 fix: add private symbols to ipsw diff for DSC dylibs 2025-04-16 17:08:59 -06:00
blacktop cb44fa70ea fix: DSC parsing for watchOS dyld_shared_cache_arm64_32 caches 2025-04-08 17:08:58 -06:00
blacktop 294789e3fb Update md.go 2025-04-07 21:39:24 -06:00
blacktop 042739e067 fix: handle more types of IPSWs with ipsw diff command 2025-04-07 19:26:30 -06:00
blacktop d64166671c Update md.go 2025-04-04 13:37:49 -06:00
blacktop 60ff22c120 Update md.go 2025-04-04 12:57:16 -06:00
blacktop 68a006b7a8 Update diff.go 2025-04-04 12:04:17 -06:00
blacktop abcccda111 feat: add iBoot to ipsw diff command 2025-04-04 11:59:37 -06:00
blacktop 39ab56cc2d Update md.go 2025-04-02 16:19:33 -06:00
blacktop 708b4a27b3 Update diff.go 2025-04-02 15:17:46 -06:00
blacktop 0a1806c622 Update diff.go 2025-04-02 11:39:52 -06:00
blacktop a653c240ac feat: add 🆕 --files flag to ipsw diff cmd to include ALL added/removed files to diff output 2025-04-02 10:50:59 -06:00
blacktop 6cca9a980d refactor: replace interface{} with any and simplify loop constructs 2025-03-26 22:53:29 -06:00
blacktop f2336f11fd fix: make ipsw diff more idempotent 2024-11-21 13:50:56 -07:00
blacktop 1e868c49cf feat: add exclave_core fw to ipsw diff cmd + list sorting in .md 2024-09-17 17:49:26 -06:00
blacktop db4efa3940 fix: in ipsw diff --feat show content of NEW feature plists 2024-09-09 22:15:45 -06:00
blacktop a1e10bfaab chore: make --force the default when hdiutil detach-ing 🇬🇧 2024-09-03 15:03:10 -06:00
blacktop 8a5d306a22 chore: change ipsw diff TOC to README 2024-08-12 12:28:07 -06:00
blacktop 0bb4036618 feat: replace --filter with --allow-list and --block-list in ipsw diff cmd 2024-08-08 17:17:36 -06:00
blacktop ca20cb85fb chore: add support for aea.DecryptConfig and B64SymKey arg 2024-07-26 14:01:37 -06:00
blacktop 3cdb8028d9 chore: detect macOS IPSWs when running ipsw diff 2024-07-18 17:35:15 -06:00
blacktop 1c91ff0c12 feat: add ability to diff symbol names and cstrings in ipsw diff cmd 2024-07-10 10:35:38 -06:00
blacktop b71f77f7ae feat: add support for --pem-db everywhere it's needed to allow for external AEA pem key JSON databases to be used 2024-07-08 22:14:10 -06:00
blacktop 50f2f574cc Update md.go 2024-07-08 13:54:39 -06:00
blacktop 7f91c09a1f feat: add --feat flag to ipsw diff to diff Feature Flags 2024-07-07 12:16:10 -06:00
blacktop 8229d8e5d9 fix: many fixes to symbolication and the symbol server 2024-07-04 00:26:55 -06:00
blacktop 35397e3da3 chore: ipsw diff use <detail> for NEW/Removed lists longer than 30 2024-06-25 16:30:17 -06:00
blacktop c38694e6ac Update md.go 2024-06-25 01:04:59 -06:00
blacktop 0cbac2c760 Update md.go 2024-06-25 00:36:04 -06:00
blacktop 5e3aacf675 feat: ipsw diff can now handle LARGE diff markdown via splitting it up into many smaller files 2024-06-25 00:23:54 -06:00