Skip to content

v10.7.4

Choose a tag to compare

@doronz88 doronz88 released this 13 Aug 06:18
· 67 commits to master since this release
f24499a

Highlights

🐛 Userspace tunnel: abandoned service connections no longer leak

A systematic stability audit of the userspace tunnel (measured live on a physical device) found that service connections abandoned by their client — while the device neither sent a byte nor closed its side — parked their relay handler at recv() forever: 24 of 30 abandoned connections leaked their handler task, network socket, and TCP session until the tunnel was torn down, accumulating without bound in long-lived sessions. The relay now fully closes the tunnel-side socket on client EOF, so such connections are reaped by the stack's orphan timer and the census is 0 leaked tasks. Throughput and latency are unchanged.

🐛 Userspace tunnel: pmd-pytcp floor raised to 0.3.7 (complete stability-audit series)

The same audit produced four same-day pmd-pytcp releases (0.3.4–0.3.7) fixing every confirmed way the tunnel's TCP/IP stack could strand a session, port, waiter, or timer — including a neighbor-discovery black hole where a device that slept for ~3 seconds could kill the tunnel until process restart, datapath loops that died silently on their first exception, per-connection 1 kHz timer spins, and unbounded reassembly/out-of-order/receive queues. The dependency floor now guarantees every install carries the full series.

🐛 AccessibilityAudit works over RSD

pymobiledevice3 accessibility commands hung (or died with ConnectionTerminatedError) when connected over RSD: the axAuditDaemon.remoteserver.shim.remote shim resets the connection unless the RSDCheckin handshake is performed first. RSD connections to .shim.remote DTX services are now routed through the lockdown check-in, so the audit services connect reliably on iOS 17+. Thanks @navin772!

pymobiledevice3 accessibility settings show

What's Changed

Full Changelog: v10.7.3...v10.7.4