Skip to content

pymobiledevice3 mobilesync

Read and change contacts, calendars, Safari bookmarks and mail accounts (com.apple.mobilesync).

dump

Print every record of a data class, keyed by record identifier.

pymobiledevice3 mobilesync dump [OPTIONS] {data_class}:<contacts|calendars|bookmarks|mail-accounts>

Arguments:

Argument Description
data_class:<contacts\|calendars\|bookmarks\|mail-accounts> Kind of records to read. [required]

Options:

Option Description
--native macOS only: reach the iOS 17+ tunnel by piggybacking Apple's own remoted tunnel via the remotepairingd service. NO root, no entitlement, no Xcode. Rides Apple's kernel-routable tunnel, so throughput matches the kernel tunnel, but the device keeps a single RSD connection on it: remoted and this process evict each other's, which can reset connections and leave Xcode/devicectl without the device until remoted reconnects. Mutually exclusive with --rsd/--tunnel/--userspace. [env var: PYMOBILEDEVICE3_NATIVE]

Accepts the connection options: --rsd, --tunnel, --userspace, --mobdev2, --usbmux, --udid.

push

Add or modify records from a JSON or plist file, keyed by record identifier.

A key that is an existing record identifier (as printed by dump) modifies that record; any other key adds a new record. Use a plist for records with dates (calendar events). Prints the identifiers the device assigned to added records.

pymobiledevice3 mobilesync push [OPTIONS] {data_class}:<contacts|calendars|bookmarks|mail-accounts> {changes}

Arguments:

Argument Description
data_class:<contacts\|calendars\|bookmarks\|mail-accounts> Kind of records to change. [required]
changes JSON or .plist file mapping record identifiers to records. [required]

Options:

Option Description
--native macOS only: reach the iOS 17+ tunnel by piggybacking Apple's own remoted tunnel via the remotepairingd service. NO root, no entitlement, no Xcode. Rides Apple's kernel-routable tunnel, so throughput matches the kernel tunnel, but the device keeps a single RSD connection on it: remoted and this process evict each other's, which can reset connections and leave Xcode/devicectl without the device until remoted reconnects. Mutually exclusive with --rsd/--tunnel/--userspace. [env var: PYMOBILEDEVICE3_NATIVE]

Accepts the connection options: --rsd, --tunnel, --userspace, --mobdev2, --usbmux, --udid.

delete

Delete records by record identifier from the device (no confirmation).

pymobiledevice3 mobilesync delete [OPTIONS] {data_class}:<contacts|calendars|bookmarks|mail-accounts> {identifiers}...

Arguments:

Argument Description
data_class:<contacts\|calendars\|bookmarks\|mail-accounts> Kind of records to delete. [required]
identifiers... Identifiers of the records to delete (from dump). [required]

Options:

Option Description
--native macOS only: reach the iOS 17+ tunnel by piggybacking Apple's own remoted tunnel via the remotepairingd service. NO root, no entitlement, no Xcode. Rides Apple's kernel-routable tunnel, so throughput matches the kernel tunnel, but the device keeps a single RSD connection on it: remoted and this process evict each other's, which can reset connections and leave Xcode/devicectl without the device until remoted reconnects. Mutually exclusive with --rsd/--tunnel/--userspace. [env var: PYMOBILEDEVICE3_NATIVE]

Accepts the connection options: --rsd, --tunnel, --userspace, --mobdev2, --usbmux, --udid.