github doronz88/pymobiledevice3 v11.15.5

3 hours ago

Highlights

🐛 --rsd works again on iOS 27.2

On iOS 27.2, attaching to an existing tunnel with --rsd failed right after a successful RSD handshake — every service port the device had just advertised refused the connection:

$ pymobiledevice3 remote rsd-info --rsd fd88:51e2:a06c::1 60658
ConnectionRefusedError: [Errno 61] Connect call failed ('fd88:51e2:a06c::1', 50168, 0, 0)

Since iOS 27.2 the device remembers the handshake UUID of the last RSD peer on a tunnel — even after that peer disconnected — and when the next peer presents a different one it re-attaches, closing every service listener it advertised, to the newcomer and to earlier peers alike. pymobiledevice3 sent a fresh random UUID on every RSD connection, so anything joining an existing tunnel (--rsd, tunneld clients, a second RSD connection in the same process) looked like a brand-new peer. v11.15.3 fixed this for the native tunnel's own connection only.

Every RSD connection from a host now identifies with one stable UUID: the host remoted's on macOS (so it coexists with the tunnel remote start-tunnel creates there, and with Xcode/devicectl), and the deterministic pairing host id elsewhere.

pymobiledevice3 remote start-tunnel
pymobiledevice3 developer dvt ls / --rsd <address> <port>

Thanks @steveames for the report and for bisecting it down to the exact release (#1966).

What's Changed

Full Changelog: v11.15.4...v11.15.5

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.