Highlights
🐛 The userspace tunnel no longer hangs on platforms whose unix-socket connect waits for accept
The userspace tunnel handed each service connection to its relay through a unix-socket listener in the same event loop. In iSH (a Linux emulator on iOS), connect() on a unix socket blocks until the other side accepts, so the first connection froze the event loop for good (#2068). Each connection now gets its own socketpair(), with no listener at all: there is nothing to connect to, so no other process can reach the device's services through the relay either. PYMOBILEDEVICE3_USERSPACE_TCP_RELAY is gone, since there is no TCP relay left to force.
⚡ parse-live --process is faster
pykdebugparser 1.10.0 drops other processes' events before parsing them, making parse-live --process 2-2.5x faster, and no longer attributes kernel_task's threads to launchd.
pymobiledevice3 developer dvt core-profile-session parse-live --process SpringBoardWhat's Changed
- d7a8de5 userspace_tunnel: Relay each dial over a socketpair instead of a listener (#2072) (@doronz88)
- 20b2ee0 build: Require pykdebugparser 1.10.0 (#2071) (@doronz88)
Full Changelog: v11.40.1...v11.40.2