Those who watch my git repos may have noticed that I’ve been working on this for a while now. iPhones and iPod Touches have never been properly supported under Linux (especially non-jailbroken devices) because they are just so different from all the previous iPod models. There was a lot of new code to write and Apple hasn’t exactly made it easy either:
- The iPhone uses a custom USB communications protocol, connection-oriented, which is totally different from standard mass storage devices
- It provides multiple services over this protocol, and many have to be interacted with to complete sync
- iPhone OS 2.x brought us a new hash (designed to lock users into iTunes) that so far had not been reverse engineered
- iPhone OS 3.x brought us a new SQLite-based database format which, although a lot more Linux-friendly than the old proprietary format, does require a bunch of new code (and the old format still needs to be supported for compatibility).
Well, I’m happy to say that all of this is coming to an end and that Linux will finally get quite complete iPhone/iPod Touch syncing support soon, thanks to the work of many dedicated people. (more…)