v0.7.0
Highlights
A huge release
- dyld patching - helper now patches target's dyld at runtime in order to fix several linking issues caused by missing libs.
- File streaming - we don't package stuff into ipa removing one of the main bottlenecks
- Minimal data transfer - we don't transfer entire app to the host, only the decrypted binaries
- Above and few more result in huge speed uplift. Few examples being
55s -> 19s,13m -> 9m50s - No more zip dependency - you don't have to install zip package now!
- Decrypted ipas preserve original values - thanks to @NohamR
- Graceful cleanup on CTRL+C - yet another way to limit bloat
- Auto-uninstall after decryption - it's triggered by default on install paths so we leave device in original state, without the decrypted app
- Stronger verify and --extra-verify - even more checks to ensure binaries are truly decrypted and valid
- New flags:
--skip-appex,--force-uninstall/--no-uninstall,-v/--verbose,--redact ipadecrypt versionsnow shows minimum OS version for the given app- Helper is rewritten from single file into actual module with structure
- Releases are now built automatically by Github workflow ensuring no tampering in binaries, should've done that way earlier
- Bundle ID matching is now case insensitive
- App directory detection no longer relies on app name so Apple Home and Google Home are distinguished correctly
- Arbitrary arm64e fixes
- And even more features!
Huge thanks for testers
@b1atant @vagvalas @MoritzHinterleitner
Changelog
- 5a0d067: Restore MinimumOSVersion in decrypted IPAs (#21) (@NohamR)
- 07359b5: ci: automate release tags (@londek)
- 7bb6c52: feat: --skip-appex, --force/no-uninstall (@londek)
- cd9d2a1: feat: add --redact flag (@londek)
- f7f8557: feat: add more extra verify checks (@londek)
- 4bed07d: feat: best-effort jailbreak detection (@londek)
- f59830f: feat: ensure we cleanup on interrupt (@londek)
- 8f873ac: feat: expose min os version in versions tool (@londek)
- cbbeb8c: feat: helper rewrite (@londek)
- f992643: feat: log ipadecrypt version in decrypt prologue (@londek)
- 6bec625: feat: log model in decrypt prologue (@londek)
- 47e2d7c: feat: remove zip dependency (@londek)
- 52ec106: feat: restore Info.plist values (@londek)
- 19ab634: feat: robust cross-OS decrypt across jailbreaks (@londek)
- 76fd286: feat: stream decrypted Mach-Os over stdout, assemble IPA on host, uninstall when done (@londek)
- 3b410a4: fix: do not rely on app name to detect app dir (@londek)
- d514ac9: fix: ensure we delete itunesmetadata (@londek)
- 4574b5c: fix: ignore cryptid=0 in extra-verify (@londek)
- 9d5ed27: fix: make bundle id matching case insensitive (@londek)
- 185086d: refactor: clean up log messages (@londek)
- cd8ecbb: refactor: remove dead restore code (@londek)
- c4b5611: refactor: remove useless message (@londek)
- 8a65a9e: refactor: separate macho into internal/macho (@londek)
- bce7618: refactor: simplify config (@londek)
- 6b71426: refactor: tighten device shell quoting + small cleanups (@londek)
- 8e5aa88: refactor: touchups (@londek)
- dd88ec7: refactor: unify verify into single pass (@londek)
- b630ae1: refactor: update warning message (@londek)
- a192cce: style: fix lint (@londek)
- 16c4c96: style: fix lint (@londek)
- 2519124: style: small style polishes (@londek)