Connect an iPhone to a Raspi

Environment:

  • iPhone 5SE iOS 11.0.1 (15A402)
  • Raspberry Pi 3 (4.19.66-v7+)

Most of the steps below are a gist of this blog post1

Unlock your iPhone

Unlock/Enter the pass-code (in case you have one) on your iPhone in order to avoid errors.

Connect and login into your raspi

Existence of an entry ‘Host raspi’ in ~/.ssh/config is assumed:

ssh raspi

Update - Retrieve new lists of packages

sudo apt-get update

Upgrade - Perform an upgrade

sudo apt-get upgrade

Install the necessary packages

sudo apt-get install libimobiledevice-utils

sudo apt-get install usbmuxd

sudo apt-get install ifuse

Connect the iPhone with the raspi via USB

Accept the trust dialog on the iPhone

Pair the phone

idevicepair pair
SUCCESS: Paired with device 3b9...
ERROR: Please accept the trust dialog on the screen of device 3b9...
, then attempt to pair again.

Accept another trust dialog the on the iPhone

Create a mount folder

sudo mkdir /mnt/iphone/ --verbose
mkdir: mkdir: created directory '/mnt/iphone/'

Mount the iPhone

Consider storing this command as a shortcut to your desktop for convenience:

ifuse /mnt/iphone/

Approve success

tree -d -L 1 /mnt/iphone/
/mnt/iphone/
├── Books
├── CloudAssets
├── DCIM
├── Downloads
├── LoFiCloudAssets
├── MediaAnalysis
├── PhotoData
├── PhotoStreamsData
├── Photos
├── PublicStaging
├── Purchases
├── Radio
├── Recordings
└── iTunes_Control

14 directories

Summary of all commands to copy/paste

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libimobiledevice-utils
sudo apt-get install usbmuxd
sudo apt-get install ifuse
idevicepair pair
sudo mkdir /mnt/iphone/ --verbose
ifuse /mnt/iphone/
tree -d -L 1 /mnt/iphone/