idevicebackup
Backup iOS devices to a computer
TLDR
Create a backup of the device in the specified directory
Restore a backup from the specified directory
SYNOPSIS
idevicebackup
PARAMETERS
--udid
(Optional) Specify the 40-character unique device identifier (UDID) of the device to operate on. If omitted, the first connected device will be used.
--dir
(Optional) Specify the directory where backups are stored or restored from. Defaults to '~/.config/idevicebackup'.
--full
(Applicable to backup/restore) Force a full backup instead of an incremental one, or perform a full restore.
--system
(Applicable to backup/restore) Include system files in the backup or restore process. This can significantly increase backup size.
--encrypt
(Applicable to backup) Encrypt the backup with a password. You will be prompted for a password unless --passwd is used.
--decrypt
(Applicable to restore) Decrypt the backup during the restore process. Requires the password set during encryption.
--passwd
(Applicable to encrypt/decrypt) Provide the password for backup encryption or decryption directly on the command line. Use with caution for security reasons.
--no-password
(Applicable to backup) Create a backup without password protection.
--reboot
(Applicable to restore) Reboot the device automatically after a successful restore operation.
--ignore-errors
(Applicable to backup/restore) Continue the backup or restore process even if errors are encountered.
--json
Output information in JSON format, useful for programmatic parsing.
-h, --help
Display a brief help message and exit.
-v, --version
Display the version information of idevicebackup and exit.
DESCRIPTION
idevicebackup is a command-line tool included in the libimobiledevice suite, providing robust capabilities for managing backups of Apple mobile devices (iPhones, iPads, and iPod touches) on Linux and other non-Apple operating systems. It serves as an open-source alternative to iTunes for local device backups, enabling users to create, restore, list, and remove backups directly from the command line. This tool is invaluable for developers, power users, and anyone needing to interact with their iOS devices without relying on proprietary Apple software.
It communicates with the device via usbmuxd, allowing for seamless data transfer and management of backup archives. idevicebackup supports both incremental and full backups, as well as encryption of backups, providing a comprehensive solution for data preservation and recovery.
CAVEATS
While idevicebackup offers significant functionality, users should be aware of a few points:
1. It relies on the underlying libimobiledevice library, which needs to be up-to-date to support the latest iOS versions.
2. Backup and restore operations, especially full ones, can be time-consuming and consume considerable disk space.
3. It does not interact with iCloud backups; it only handles local backups.
4. Encryption and decryption require the correct password, which is often the device's passcode.
SUBCOMMANDS OVERVIEW
idevicebackup operates via specific subcommands that define its primary action. These are typically the first argument after the idevicebackup command itself:
backup: Initiates a new backup of the connected iOS device to the specified (or default) directory.
restore: Restores a previously created backup onto a connected iOS device.
list: Displays a list of all existing local backups managed by idevicebackup in the specified (or default) directory.
remove: Deletes a specific local backup from the storage directory.
HISTORY
idevicebackup is an integral part of the libimobiledevice project, an open-source initiative that began around 2007-2008. The project was created to provide a comprehensive set of tools and libraries for interacting with Apple's iDevices on non-Apple platforms, primarily Linux. Prior to libimobiledevice, such interaction was largely limited to iTunes on Windows and macOS. idevicebackup specifically fills the gap for local backup management, empowering users with greater control over their device data outside of Apple's ecosystem.
SEE ALSO
ideviceinfo(1), ideviceinstaller(1), idevicesyslog(1), usbmuxd(8)