github doronz88/pymobiledevice3 v11.47.0

3 hours ago

Highlights

✨ Keep IPSWs in a directory you choose, with resume and verification

restore commands no longer throw away the 10+ GB IPSW after every run. Point --ipsw-dir (or PYMOBILEDEVICE3_IPSW_DIR, ~ expanded) at a directory and downloads are kept there under Apple's filenames:

  • An IPSW already in the directory is reused as-is, and the build picker marks it (local).
  • New downloads go to <name>.part, resume after an interruption, and are renamed into place only once they match the SHA-256 Apple's CDN publishes for the file.
  • A single Ctrl-C stops a download and keeps what was downloaded so far. Previously it took two.

Downloads without --ipsw-dir, including --ipsw <url>, are now verified the same way. (#2138, #2139)

export PYMOBILEDEVICE3_IPSW_DIR=~/ipsw
pymobiledevice3 restore update

✨ Restore beta builds with --beta

ipsw.me lists only release builds. --beta lists the newest beta builds that have an IPSW for the connected device instead, from AppleDB, in about a second (for example, 27.2 beta 4: 24B5110a). Builds AppleDB reports as unsigned are marked (unsigned). That's only a hint: Apple's signing server still decides during the restore. (#2139)

pymobiledevice3 restore update --beta

✨ debugserver lldb works over the default userspace tunnel

developer debugserver lldb used to refuse to run over the userspace tunnel, which is the default transport, so debugging needed a root tunneld. It now forwards debugserver to a local port and points lldb there, which works over every transport with no root needed. The forwarder adds no measurable latency: about 1.49 ms per round trip with or without it. (#2136)

pymobiledevice3 developer debugserver lldb com.example.app --launch -b myFunction

🐛 Fixes

  • debugserver lldb --launch now continues an app that was already running after attaching, instead of leaving it stopped. (#2137)
  • debugserver lldb installs the app on the selected device, not the first USB one. (#2136)
  • file_download no longer saves an HTTP error page as the requested file. (#2138)

What's Changed

Full Changelog: v11.46.0...v11.47.0

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.