Highlights
🐛 A clear message when bonjour discovery is blocked (macOS Local Network privacy)
On macOS, a process whose app — typically your terminal — was denied Local Network access cannot send a single mDNS query, and nothing told you so: the browse just looked like an empty network, and --mobdev2, bonjour ..., remote browse and the Wi-Fi tunnel lookups answered Device is not connected, while the very same command worked under sudo (root is exempt). pymobiledevice3 now notices that no query could be sent on any interface and says what to change:
WARNING bonjour discovery is blocked: no mDNS query could be sent on any interface ([Errno 65] No route to host).
Allow the app running this command (e.g. your terminal) under System Settings > Privacy & Security > Local Network, then restart it.
🐛 --mobdev2 works without --udid on macOS and Windows
Without a UDID only the pair records cached in ~/.pymobiledevice3 were known. macOS and Windows keep lockdown records with usbmuxd, so the device came up unpaired and anything needing a paired connection failed. Records are now collected from wherever the host keeps them — our folder, the system lockdown folder when readable, and usbmuxd for the devices it lists — so this just works:
pymobiledevice3 syslog live --mobdev2🐛 A device that answers several times is listed once
The bonjour browser returned the same device once per received answer (one per interface, plus re-announcements). That meant a redundant second RemotePairing connection to it, and with --mobdev2 a chooser offering the same device twice. Each device is now listed — and connected to — once.
📚 Docs: how a device is recognized over Wi-Fi
New sections explain why neither the advertised MAC (a private Wi-Fi address) nor the TXT identifier identifies a device, and how a paired host recognizes one by authTag — keyed by the host's HostID for mobdev2 and by the device's altIRK for RemotePairing: Wi-Fi: recognizing a device on the network and RemoteXPC: Wi-Fi.
What's Changed
- c0d9f02 lockdown: Pair a mobdev2 device without a udid using the host's records (#1976) (@doronz88)
- caa1805 bonjour: Say so when mDNS queries cannot leave the host (#1976) (@doronz88)
- a1e6e42 bonjour: List a device once however many times it answers (#1976) (@doronz88)
- bc19682 tests: Hold Wi-Fi device recognition against a real device's adverts (#1975) (@doronz88)
- 7012706 docs: Explain how a device is recognized over Wi-Fi (altIRK, authTag) (#1974) (@doronz88)
Full Changelog: v11.16.2...v11.16.3