ifuse
Mount iOS device filesystems
SYNOPSIS
ifuse [OPTIONS] MOUNT_POINT
PARAMETERS
-u, --udid UDID
Mounts the device with the specified UDID (Unique Device Identifier). This is particularly useful when multiple iOS devices are connected.
-o OPTIONS
Passes specific options directly to the FUSE filesystem. Common options include allow_other (permits other users to access the mount point) and ro (mounts the filesystem as read-only).
--root
Attempts to mount the root filesystem of the device. This operation typically requires a jailbroken device or specialized access privileges.
--container APP_ID
Mounts the data container (sandbox) of the application identified by its APP_ID (bundle identifier). This grants access to files and data specific to that application.
--documents APP_ID
Mounts only the 'Documents' folder located within the data container of the specified application APP_ID. This is useful for accessing user-created content.
--app APP_ID
An alias for --container, providing an alternative way to specify mounting an application's data sandbox.
--applications
Mounts the root directory that contains all user-installed applications (typically /private/var/mobile/Applications on the device). Note that individual app data remains sandboxed.
--list-apps
Lists all installed applications on the connected device, showing their display names and corresponding bundle identifiers (APP_IDs). This option does not require a MOUNT_POINT.
--volume VOLUME_NAME
Sets the volume name for the mounted filesystem. This name will be displayed in file managers and system utilities.
--icon ICON_FILE
Specifies a file path to an icon that will be used to represent the mounted filesystem in graphical file managers.
-d, --debug
Enables verbose debug output, showing detailed information about the communication process. This is often useful for troubleshooting connectivity or access issues.
-h, --help
Displays a comprehensive help message that includes usage instructions and a list of all available command-line options.
-v, --version
Displays the version information of the ifuse utility.
DESCRIPTION
ifuse is a powerful command-line utility that forms a core part of the libimobiledevice open-source project. Its primary function is to enable Linux users to seamlessly access and manage files on their Apple iOS devices, including iPhones, iPod Touches, and iPads, by mounting them as a FUSE (Filesystem in Userspace) filesystem.
By leveraging the Apple File Conduit (AFC) protocol, ifuse allows users to interact with various parts of the device's storage. This includes browsing and transferring media files like photos and videos, accessing documents within specific application sandboxes, or even mounting entire application containers. It provides a non-proprietary and efficient alternative to Apple's iTunes for file management on non-Apple operating systems.
CAVEATS
ifuse has several important considerations:
1. It relies heavily on the libimobiledevice library and the usbmuxd daemon. These core components must be correctly installed and running for ifuse to establish communication with the iOS device.
2. The iOS device must be unlocked, and the 'Trust This Computer?' prompt on the device must be accepted upon first connection to allow access.
3. Access is generally limited by iOS sandboxing. Full root filesystem access typically requires a jailbroken device or specialized device configurations.
4. Compatibility with the very latest iOS versions might sometimes lag behind, requiring updates to the underlying libimobiledevice components.
5. Attempting to write directly to certain system directories is generally not supported through ifuse and can lead to unexpected behavior or data corruption.
DEPENDENCIES AND SETUP
ifuse fundamentally depends on the libimobiledevice library for its low-level communication with iOS devices and the usbmuxd (USB Multiplex Daemon) for managing the USB connection. Users must ensure these components are installed and that usbmuxd is running (it typically starts automatically on most Linux distributions) before attempting to use ifuse.
Upon connecting an iOS device for the first time to a new computer, the device will display a 'Trust This Computer?' prompt. This prompt must be accepted on the device for ifuse to establish a secure connection and mount the filesystem successfully.
HISTORY
ifuse was developed as part of the open-source libimobiledevice project, which aimed to provide Linux and other non-Apple platforms with the ability to communicate with iOS devices without relying on iTunes or proprietary Apple software. Its development began in the late 2000s, fulfilling a critical need for users seeking to transfer files, manage backups, and interact with their iPhones, iPods, and iPads directly from their Linux machines. It stands as a significant community effort to bridge the gap between Apple's mobile ecosystem and the open-source world, offering a robust and free solution for iOS device management.
SEE ALSO
mount(8), umount(8), fuse(4), ideviceinstaller(1), idevicebackup2(1), usbmuxd(8)