install.sh: AMDS MSI rolls back (1627 at StartServices) while the usbmuxd bridge holds 27015 #11

Closed
opened 2026-10-28 16:30:07 +01:00 by The_Void · 0 comments
Owner

On the Fedora desktop (project-zeus, Fedora 44 wine-11.20-1.fc44 Staging), ./install.sh stopped after "installing Apple Mobile Device Support" and printed neither of the later steps (set -e): no MobileDevice.dll, no AMDS service key, no .desktop file.

Cause: a socat bridge (#8) was already listening on 127.0.0.1:27015. The MSI's StartServices action starts the Apple Mobile Device Service, which cannot bind 27015 and so cannot start:

err:msi:ITERATE_StartService failed to start service L"Apple Mobile Device Service" (1053)
err:msi:execute_script Execution of script 0 halted; action L"StartServices" returned 1627

msiexec exits 91 (1627 & 0xff), and the MSI rolls back.

Control: same prefix and same patched MSI, with the bridge stopped and nothing on 27015: rc 0, MobileDevice.dll present. The fedora:44 container never had a listener on 27015, which is why #10 didn't see this.

Why it matters: once the bridge is a permanent user unit (#8), every run of install.sh into a new prefix would hit this.

Fix: condition StartServices off as well, in the same msibuild UPDATE (... WHERE Action='SetAppleMobileDeviceServicePermissions64' OR Action='StartServices'). The service is set to Start=4 straight afterwards anyway.

Done when: install.sh exits 0 into a fresh prefix while 27015 is held.

On the Fedora desktop (project-zeus, Fedora 44 `wine-11.20-1.fc44` Staging), `./install.sh` stopped after "installing Apple Mobile Device Support" and printed neither of the later steps (`set -e`): no MobileDevice.dll, no AMDS service key, no `.desktop` file. **Cause:** a socat bridge (#8) was already listening on 127.0.0.1:27015. The MSI's `StartServices` action starts the Apple Mobile Device Service, which cannot bind 27015 and so cannot start: err:msi:ITERATE_StartService failed to start service L"Apple Mobile Device Service" (1053) err:msi:execute_script Execution of script 0 halted; action L"StartServices" returned 1627 msiexec exits 91 (1627 & 0xff), and the MSI rolls back. **Control:** same prefix and same patched MSI, with the bridge stopped and nothing on 27015: rc 0, MobileDevice.dll present. The `fedora:44` container never had a listener on 27015, which is why #10 didn't see this. **Why it matters:** once the bridge is a permanent user unit (#8), every run of install.sh into a new prefix would hit this. **Fix:** condition `StartServices` off as well, in the same `msibuild` UPDATE (`... WHERE Action='SetAppleMobileDeviceServicePermissions64' OR Action='StartServices'`). The service is set to `Start`=4 straight afterwards anyway. **Done when:** install.sh exits 0 into a fresh prefix while 27015 is held.
Sign in to join this conversation.
No description provided.