Access your iPhone on Linux with this open source tool | Opensource.com

Access your iPhone on Linux with this open source tool

Communicate with iOS devices from Linux by using Libimobiledevice.

A person looking at a phone
Image by : 
Opensource.com
x

Subscribe now

Get the highlights in your inbox every week.

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.

1trust.png

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.

2docks.png

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.

2iphoneicon.png

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.

collection of hardware on blue backround

The Linux command line on iOS? Yes, you can.
Writing Hand

Don't throw your old, slow MacBook into the recycling bin; extend its life with Linux Mint.

Topics

About the author

Don Watkins - Educator, education technology specialist,  entrepreneur, open source advocate. M.A. in Educational Psychology, MSED in Educational Leadership, Linux system administrator, CCNA, virtualization using Virtual Box. Follow me at @Don_Watkins .