Access your iPhone on Linux with this open source tool

Communicate with iOS devices from Linux by using Libimobiledevice.
53 readers like this.
How to turn a Raspberry Pi into an eBook server

The iPhone and iPad aren't by any means open source, but they're popular devices. Many people who own an iOS device also happen to use a lot of open source, including Linux. Users of Windows and macOS can communicate with an iOS device by using software provided by Apple, but Apple doesn't support Linux users. Open source programmers came to the rescue back in 2007 (just a year after the iPhone's release) with Libimobiledevice (then called libiphone), a cross-platform solution for communicating with iOS. It runs on Linux, Android, Arm systems such as the Raspberry Pi, Windows, and even macOS.

Libimobiledevice is written in C and uses native protocols to communicate with services running on iOS devices. It doesn't require any libraries from Apple, so it's fully free and open source.

Libimobiledevice is an object-oriented API, and there are a number of terminal utilities that come bundled with it for your convenience. The library supports Apple's earliest iOS devices all the way up to its latest models. This is the result of years of research and development. Applications in the project include usbmuxd, ideviceinstaller, idevicerestore, ifuse, libusbmuxd, libplist, libirecovery, and libideviceactivation.

Install Libimobiledevice on Linux

On Linux, you may already have libimobiledevice installed by default. You can find out through your package manager or app store, or by running one of the commands included in the project:

$ ifuse --help

You can install libimobiledevice using your package manager. For instance, on Fedora or CentOS:

$ sudo dnf install libimobiledevice ifuse usbmuxd

On Debian and Ubuntu:

$ sudo apt install usbmuxd libimobiledevice6 libimobiledevice-utils

Alternatively, you can download and install libimobiledevice from source code.

Connecting your device

Once you have the required packages installed, connect your iOS device to your computer.

Make a directory as a mount point for your iOS device.

$ mkdir ~/iPhone

Next, mount the device:

$ ifuse ~/iPhone

Your device prompts you to trust the computer you're using to access it.

iphone prompts to trust the computer

Figure 1: The iPhone prompts you to trust the computer.

Once the trust issue is resolved, you see new icons on your desktop.

iphone icons appear on desktop

Figure 2: New icons for the iphone appear on the desktop.

Click on the iPhone icon to reveal the folder structure of your iPhone.

iphone folder structure displayed

Figure 3: The iPhone folder structure is displayed.

The folder I usually access most frequently is DCIM, where my iPhone photos are stored. Sometimes I use these photos in articles I write, and sometimes there are photos I want to enhance with open source applications like Gimp. Having direct access to the images instead of emailing them to myself is one of the benefits of using the Libimobiledevice utilities. I can copy any of these folders to my Linux computer. I can create folders on the iPhone and delete them too.

Find out more

Martin Szulecki is the lead developer for the project. The project is looking for developers to add to their community. Libimobiledevice can change the way you use your peripherals, regardless of what platform you're on. It's another win for open source, which means it's a win for everyone.

What to read next
User profile image.
Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, M.S. Ed. in Educational Leadership, Linux system administrator.


that is cool

@Don - thanks for the article. Gave this a whirl on Ubuntu 20.04 LTS. Works the charm w/a USB-Lighting but, I couldn't get the iPhone recognized using USBC-Lighting. Is this a known issue? (Checked libimobiledevice's StackOverflow... nada)

Just now seeing your comment. I have an iPhone 8 plus and using the USB-C cable that came with it I am able to mount my iPhone 8 plus on Linux Mint Cinnamon. I don't have the cable you are describing.

In reply to by Craigo

Thanks! Just installed it on MX Linux and it works beautifully. I was looking for something like this a while ago but for some reason Libimobiledevice didn't surface in any of my searches. I have been trying to move all of my work to the Linux desktop but my iPhone (which I depend on heavily for business) has been holding me back. Thanks again!

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.