For a long time, using an iPhone with Linux was a complete no go. With a jailbroken phone, you could mount it over a wireless connection using fuse, and then sync music your music that way – but syncing an entire music collection via wifi? No thanks. In fact, Apple had made it so hard to access the iPhone over USB, that it took the virtualbox and VMware developers months to work out how to access the iPhone via USB on a Windows guest. So this left Linux iPhone users with the option of either jailbreaking their phone and using a kludgy wifi connection, or running iTunes via windows in a VM. However, thanks to some rather clever folk, there’s a new solution that gives you access to a whole lot of your iPhone functions on Linux “natively”.
libimobilevice is a project that’s been around since 2007. It has now reached its 1.0.0 release. From the libimobiledevice website:
libimobiledevice is a software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux. Unlike other projects, it does not depend on using any existing proprietary libraries and does not require jailbreaking. It allows other software to easily access the device’s filesystem, retrieve information about the device and it’s internals, backup/restore the device, manage SpringBoard® icons, manage installed applications, retrieve addressbook/calendars/notes and bookmarks and synchronize music and video to the device. The library is in development since August 2007 with the goal to bring support for these devices to the Linux Desktop.
Music syncing is fully supported, PIM data can be downloaded from the phone – there is no syncing yet, app installation and archiving is supported as well as USB internet tethering. At this stage, getting all this up and running isn’t entirely “plug and play”, however I understand that Ubuntu’s upcoming release of Lucid includes built in support for libimobiledevice. There’s a howto here if you want to have a play with it.
Breaking Out of the iTunes Jail
So why such a bold claim in the title, that iPhone/Ipod Touch/iPad owners should use Linux? Well basically, because of iTunes. iTunes drives me mad. It’s an incredibly weighty application and runs like an asthmatic sloth. But that’s not the unbearable part. The big problem for me is that using it makes me feel like I’ve paid for a luxury holiday in an exotic land, but when I get to the hotel, they lock you inside – you can enjoy the fantastic amenities provided by the hotel, and they are fantastic, but you have to pay every time you wanna use them – and you can’t go outside and see the exotic land you’ve come to, and I like to explore when I travel to an exotic land! It feels like you’re inside a jail, where you’re not allowed to step outside the door, and everything’s on lockdown. I know that “Apple PR” says the purpose of tying the iPhone/iPod Touch/iPad to iTunes is to provide a seamless user experience, however, I can’t help but think it’s really to allow Apple to control my user experience for the purpose of selling me stuff, rather than getting the most out of MY device.
This is where Linux comes in. Linux is the cake, and imobiledevice is the “file” that’s gonna bust me out of my Apple jail. Yes, I know you can do this by jailbreaking your phone – note I’m not the only one who feels like Apple’s prisoner – but the solutions provided to enable you to use your iPhone with Linux so far have been kludgy and rely on an available wifi network. I want to be able to sit in the middle of nowhere, on my exotic holiday, and manage my music and videos and use my phone to connect my laptop to the internets.
So what can you do with ilibmobiledevice that you can’t do with iTunes? Simply put, not a lot, and there’s a whole lot that you can do with iTunes that you can’t with ilibmobiledevice … yet. I’m not saying that this is the complete drop in replacement, because if you simply want a duplicate of iTunes, use iTunes. This is a solution for those that want a bit more of an “open” experience with their mobile device. For people who want to be able to both upload music and video to their device, and download it too. Heaven forbid you might want to get the music on your device off of it again. Heaven forbid that you might want to tether your phone to an OS other than Mac or Windows. Heaven forbid that you might want to archive your apps, or backup and restore YOUR data to YOUR device.
And as for missing functionality, this is open source. Where there are itches they are going to be scratched. Now that this library has reached its 1.0.0 release, developers are more likely to start incorporating it into their applications. There are python libs for libimobiledevice and related infrastructure, which will enable rapid application development utilising the functionality of this library. I know that it’s already part of the install for Ubuntu Lucid. Furthermore, with the plans for the UbuntuOne service to incorporate a music store, the environment for the iPhone on linux is looking a whole lot healthier. So to butcher an overused film reference, “if you come, they will build it”.
A quick and dirty howto for installing and using libimobiledevice is here. Watch videos of libimobiledevice in action: