LinuxCommandLibrary

ideviceinfo

Get information about connected iOS devices

TLDR

Display detailed information about the connected device

$ ideviceinfo
copy

Show information about a specific device by UDID
$ ideviceinfo --udid [device_udid]
copy

SYNOPSIS

ideviceinfo [OPTIONS]

PARAMETERS

-u, --udid
    Specifies the Unique Device Identifier (UDID) of the target device to query, useful when multiple devices are connected.

-k, --key
    Retrieves the value associated with a specific information key. For example, 'ProductType' or 'ProductVersion'.

-q, --domain
    Fetches all key-value pairs within a specified information domain. For instance, 'com.apple.disk_usage'.

-x, --xml
    Outputs the retrieved information in XML format, which is useful for programmatic parsing.

-s, --simple
    Used with '--domain', outputs values in a simplified plist format, avoiding nested structures for easier readability.

-o, --output
    Redirects the command's output to the specified file instead of standard output.

-d, --debug
    Enables verbose debug output, providing more detailed information about the communication process for troubleshooting.

-v, --version
    Displays the version information of the ideviceinfo utility.

-h, --help
    Shows the command's usage instructions and available options.

DESCRIPTION

ideviceinfo is a command-line tool from the libimobiledevice project. It allows users on Linux and macOS to interact with and extract various details from connected Apple iOS devices (iPhones, iPads, iPods) without needing proprietary software like iTunes or Finder.

The command queries the device's internal services to fetch a wide array of information, including but not limited to: the device's name, product type, serial number, iOS version, unique device identifier (UDID), and network details. It can either dump all available information in a structured format (often plist-like or XML) or retrieve the value for a specific key or an entire domain of information.

This utility is invaluable for system administrators, developers, and power users who require quick access to device specifications for inventory, scripting, troubleshooting, or automated tasks. It forms a core component of the open-source ecosystem for managing iOS devices on non-Apple operating systems.

CAVEATS

To function correctly, ideviceinfo requires the libimobiledevice libraries and the usbmuxd daemon to be running and properly configured.

The connected iOS device must be unlocked and have trusted the computer where the command is executed, especially on first connection, by accepting the "Trust This Computer" prompt. Some information keys or domains might be inaccessible due to iOS security restrictions or specific device configurations.

COMMON USE CASES

  • System Inventory: Quickly gather hardware and software details for asset management or auditing purposes.
  • Troubleshooting: Verify basic device connectivity and retrieve critical information when diagnosing device issues.
  • Scripting and Automation: Integrate into scripts to programmatically fetch device specifications, useful for automated testing or device provisioning workflows.

EXAMPLES

To dump all device information: ideviceinfo
To get the device's product type: ideviceinfo -k ProductType
To list all keys in the 'SoftwareBehavior' domain: ideviceinfo -q SoftwareBehavior
To retrieve information from a specific device by UDID: ideviceinfo -u 0123456789abcdef0123456789abcdef -k DeviceName

HISTORY

ideviceinfo is an integral part of the libimobiledevice open-source project, initiated to provide a cross-platform (primarily Linux and macOS) API for communicating with Apple devices running iOS. The project emerged as a community effort to reverse-engineer Apple's proprietary communication protocols, offering an alternative to iTunes/Finder.

Since its inception, the utility has been continuously updated and maintained by volunteers, adapting to new iOS versions and device models. Its development reflects the ongoing need for open-source tools to interact with closed-source hardware, making it a foundational tool for iOS device management and development outside the Apple ecosystem.

SEE ALSO

Copied to clipboard