How iTunes reaches Apple Mobile Device Service, and where pairing records live #7

Closed
opened 2026-10-28 09:58:08 +01:00 by The_Void · 0 comments
Owner

Device sync is required, and getting Windows USB drivers into Wine is a dead end: WineHQ and forum reports through 2024 say iTunes under Wine never sees the phone. The route worth testing is to skip Apple Mobile Device Service (AMDS) and give iTunes Linux's usbmuxd (libimobiledevice), which already speaks to iPhones.

That only works if iTunes talks to AMDS over something a Linux socket can stand in for. To find out:

  • transport and endpoint (believed to be TCP on 127.0.0.1, port unconfirmed; check in AppleMobileDeviceService.exe / MobileDevice.dll / iTunesMobileDevice.dll, or by tracing under Wine);
  • whether the wire protocol is the same usbmux plist protocol usbmuxd serves on Linux, and which messages iTunes sends (Listen, Connect, ReadPairRecord, ReadBUID, ...);
  • where pairing records and the system BUID are kept on Windows (believed C:\ProgramData\Apple\Lockdown) versus Linux (/var/lib/lockdown), and whether the formats match;
  • prior art: netmuxd, usbmuxd2, and any project that has already bridged them.

Everything above marked believed is UNREFUTED until checked. "It can't be bridged, because X" is a legitimate outcome.

Done when KNOWLEDGE.md states transport, endpoint, protocol and pairing-record locations with tiers and methods, and says whether the bridge is viable.

Device sync is required, and getting Windows USB drivers into Wine is a dead end: WineHQ and forum reports through 2024 say iTunes under Wine never sees the phone. The route worth testing is to **skip Apple Mobile Device Service (AMDS) and give iTunes Linux's `usbmuxd`** (libimobiledevice), which already speaks to iPhones. That only works if iTunes talks to AMDS over something a Linux socket can stand in for. To find out: - transport and endpoint (believed to be TCP on 127.0.0.1, port unconfirmed; check in `AppleMobileDeviceService.exe` / `MobileDevice.dll` / `iTunesMobileDevice.dll`, or by tracing under Wine); - whether the wire protocol is the same usbmux plist protocol `usbmuxd` serves on Linux, and which messages iTunes sends (`Listen`, `Connect`, `ReadPairRecord`, `ReadBUID`, ...); - where pairing records and the system BUID are kept on Windows (believed `C:\ProgramData\Apple\Lockdown`) versus Linux (`/var/lib/lockdown`), and whether the formats match; - prior art: `netmuxd`, `usbmuxd2`, and any project that has already bridged them. Everything above marked *believed* is UNREFUTED until checked. "It can't be bridged, because X" is a legitimate outcome. Done when `KNOWLEDGE.md` states transport, endpoint, protocol and pairing-record locations with tiers and methods, and says whether the bridge is viable.
The_Void added this to the Ready to work milestone 2026-10-28 09:58:15 +01:00
Sign in to join this conversation.
No description provided.