Skip to content

v10.2.0

Choose a tag to compare

@doronz88 doronz88 released this 28 Jul 15:25
· 250 commits to master since this release
7968508

Highlights

✨ Modern Chrome DevTools debugging for iOS WebViews

webinspector cdp was overhauled into a full WebKit-to-CDP bridge: a modern Chrome
DevTools frontend can now inspect iOS WebViews with a working debugger (breakpoints and
debugger statements actually pause), correct console evaluation (eager preview no longer
runs side effects), the Runtime/Debugger/Page/DOM/Network/CSS domains the frontend drives,
and a live screencast of the device screen. The server now serves the DevTools frontend
itself — open the URL below and pick a page, instead of going through chrome://inspect
(whose browser-process relay deadlocks under sustained console traffic):

pymobiledevice3 webinspector cdp
# then open http://127.0.0.1:9222/ in Chrome and pick a page to inspect

The bridge also survives WebKit process swaps and stalls, so navigation and long sessions
no longer drop the connection.

✨ CoreDevice app/process streaming (and an iOS 26 listapps fix)

Implements the CoreDevice streaming feature protocol (side-channel batched delivery) and
exposes it on the CLI:

pymobiledevice3 developer core-device stream-apps --rsd ...
pymobiledevice3 developer core-device stream-processes --rsd ...

list_apps also gained the request fields iOS 26 requires. Note that on iOS 26 the
non-streaming listapps no longer replies (it wedges dtappserviced) — stream-apps is
the working replacement there.

🐛 Fix intermittent SignedRequestRejected when installing profiles with a keybag

profile install --keybag could intermittently fail because the escalate challenge was
signed with S/MIME text canonicalization, corrupting any challenge containing a bare
newline byte. The challenge is now signed as binary. Thanks @jvdsn!

🧪 Test suite skips RSD-only services when run without a tunnel

Running pytest over plain usbmux no longer fails/errors on the many iOS 17+ services
that are only reachable through an RSD tunnel — those tests now skip with a clear message
(rerun with --rsd/--tunnel to exercise them). Thanks @simond4680-sys!

What's Changed

New Contributors

Full Changelog: v10.1.0...v10.2.0