Connect iPhone to Arch Linux

Here's a method to download photos from your iPhone on Arch Linux. An unholy combination? Yeah, probably.
tl;dr
sudo pacman -S libimobiledevice # needed protocols to connect
yay -S ifuse # needed to mount
systemctl start usbmuxd.service # ensure service running
idevicepair pair # pair phone
mkdir /mnt/iphone # place to mount
sudo ifuse -o allow_other /mnt/iphone # mount phone
ls /mnt/iphone # go exploreCommunicate with the iPhone
First, you need a library to help with the protocols to communicate with the iPhone. libimobiledevice will do that. Install it with:
sudo pacman -S libimobiledeviceNext, you want to make sure that the service to access USB devices is running. To do that, run:
systemctl status usbmuxd.serviceIf it's not active, you can start it
systemctl start usbmuxd.serviceQuery USB devices
You'll want to make sure you connect your iPhone to the computer with a USB cable. Make sure that you unlock the phone and "Trust this computer" when the phone brings up that dialog. Sometimes I have to plug in and unplug several times before I get this dialog.
Optionally, you can also do some detection of USB devices separate from the pairing (next step). A little lib called usbutils can help:
sudo pacman -S usbutilsThen you can run this to get a listing of USB devices (similar to lsblk):
lsusbThat will return a list of devices, including something like this iPhone item:
...
Bus 001 Device 005: ID 05ac:12a8 Apple, Inc. iPhone 5/5C/5S/6/SE
...From libimobiledevice, you can also query about iPhones specifically:
ideviceinfoPair the iPhone
Now to be able to talk to the iPhone from the computer, you need to pair it with:
idevicepair pairIf all goes well, you'll see something like:
SUCCESS: Paired with device 00008020-001A44E40E99002EMounting the filesystem
To be able to browse and download files from the iPhone's filesystem, you need to mount it.
To allow mounting iOS devices, install this AUR package:
yay -S ifuseThen create a place you want to mount it. For instance:
mkdir -p /mnt/iphoneThe you can run this command:
sudo ifuse -o allow_other /mnt/iphoneNow if I was to navigate to /mnt/iphone, I might see something like:
/mnt/iphone🔒 ✦ ➜ ls -1
Books
CloudAssets
DCIM
Downloads
iTunes_Control
MediaAnalysis
PhotoData
Photos
Podcasts
Purchases
RecordingsCopy files
Now that the filesystem is mounted, one could copy files off of the iPhone with something like:
cp -r /mnt/iphone/DCIM ~/DownloadsClean up
To clean up and reverse the process, unpair:
idevicepair unpairAnd unmount:
sudo umount /mnt/iphoneWhat better ways are there to connect to an iPhone from Arch Linux?
Bonus: Access Files
A reader indicates that in order to make his Arch files available on iOS, he had to mount with this command:
sudo ifuse -o allow_other --documents "com.kagi.kagiiOS" /mnt/