github doronz88/pymobiledevice3 v11.27.0

3 hours ago

Highlights

🐛 Positional arguments are back on commands the Typer migration turned into options

Since v7.0.0, several commands only accepted their optional arguments as options, so the documented forms failed with Got unexpected extra argument(s). They take positional arguments again: lockdown get/set/unpair/device-name, diagnostics mg, power-assertion, crash pull/ls/watch, developer dvt simulate-location play, webinspector js-shell, profile cloud-configuration and profile set-wifi-power.

pymobiledevice3 lockdown get com.apple.mobile.battery BatteryCurrentCapacity
pymobiledevice3 developer dvt simulate-location play route.gpx 500

mounter query-nonce no longer requires --image-type, and developer core-device read-file prints to stdout again when -o is omitted.

Breaking: the option spellings these commands accepted in the meantime (--domain, --key, --keys, --host-id, --new-name, --details, --remote-file, --name, --timing-randomness-range, --url, --config, --state) are gone. Pass the values positionally.

Thanks to @Cassian433.

🐛 A dropped RSD or RemotePairing connection is reported as a dropped connection

Follow-up to v11.26.1 for the iOS 17+ transports. When the device or its daemon dropped a RemoteXPC connection, a RemotePairing control channel, the tunnel handshake or the CoreDevice file data channel, the raw socket error escaped: a traceback (or just Aborted.) instead of Connection was terminated abruptly, and no --reconnect retry. These all raise ConnectionTerminatedError now. tunneld and --tunnel skip a tunnel that resets its RSD handshake instead of failing.

Thanks to @Cassian433.

📦 Four fewer dependencies

hexdump, parameter_decorators, plumbum and gpxpy are no longer installed. Each backed one or two call sites and is replaced by a few lines of our own; ipsw_parser 1.8.0, now the minimum, dropped plumbum as well. pmd-net-addr is declared explicitly, pydantic is no longer imported, and traitlets is only imported together with IPython.

GPX playback reads the same track points as before. A track point without a valid lat/lon now raises ValueError instead of gpxpy's GPXException.

What's Changed

Full Changelog: v11.26.1...v11.27.0

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.