github doronz88/pymobiledevice3 v10.4.0

latest releases: v11.3.1, v11.3.0, v11.2.4...
28 days ago

Highlights

cryptex auto-install: mount-free DDI installation over cryptexd

The new cryptex CLI group talks to cryptexd directly (iOS 17+, over RSD). Its flagship command, auto-install, personalizes and installs the DeveloperDiskImage without going through the image mounter: it has Apple sign a Cryptex1 ticket for the device, downloads and caches the DDI under ~/.pymobiledevice3, and leaves the developer services usable — no Xcode required, on any host.

pymobiledevice3 cryptex auto-install

# inspect / manage cryptexes
pymobiledevice3 cryptex list
pymobiledevice3 cryptex personalization-identifiers
pymobiledevice3 cryptex nonce

✨ New RemoteXPC services: install records, notifications, app icons

Three new iOS 17+ services, plus outbound XPC file-transfer support in the RemoteXPC layer:

# LaunchServices install record (DB UUID/sequence, install path, persistent identifier)
pymobiledevice3 apps install-record com.apple.Preferences

# Darwin notifications straight over RemoteXPC (no lockdown shim)
pymobiledevice3 notification observe --remotexpc com.example.notification

# Fetch an app's icon as PNG via the core-device icon service
pymobiledevice3 developer core-device fetch-app-icon com.apple.Preferences icon.png

✨ RSD-advertised feature verification

RSD-advertised service features are now exposed and checked before use across cryptexd, fileservice, DSC symbol fetching, and CoreDevice. Commands fail fast with a clear "feature not supported (iOS X.Y)" error instead of dying on a cryptic protocol message — and list-apps automatically prefers streamapplist when the DDI advertises it.

📚 Documentation: full CLI reference, troubleshooting guide, complete API docstrings

The docs site now includes a complete CLI reference generated from the command tree at build time (it can never drift from the code), a troubleshooting guide mapping the errors users actually hit to fixes, and 100% docstring coverage across the Python API reference.

🐛 Fixes

  • syslog live no longer raises IndexError when a log label contains format metacharacters.
  • backup2 backup --only ... no longer forces manifest patching: filtered backups keep the complete Manifest.db by default (enabling incremental runs), with --patch-manifest now opt-in (#1818, thanks @chambres).

What's Changed

New Contributors

Full Changelog: v10.3.1...v10.4.0

Don't miss a new pymobiledevice3 release

NewReleases is sending notifications on new releases.