iOS 4.0 released: libimobiledevice and music sync with Linux

iOS 4.0 released: libimobiledevice and music sync with Linux

Apple has blessed us with a new major release of their operating system for their iDevice range of products.

As a lot of people started to ask if one is still able to synchronize music using libgpod on Linux and if libimobiledevice and related works, I’d like to explain the current state of art here.

First of all, libimobiledevice is working fine, all known devices running a firmware up to iOS 4.0 are supported and can be accessed as usual.

One exception is the backup functionality. As git master of the library also recently gained support of restoring backups using the idevicebackup tool, I should note that this functionality needs an update as the mobilebackup protocol version was bumped and changed.

Now looking at music synchronization for media players which use libgpod (like Amarok, Rhythmbox, GTKPod, gpodder and so on) I can say that it is currently half broken.

However, the positive message I can spread here is that the iTunes music database is still signed using the same hash we already support. This means that we’ll be able to fix this issue in libgpod soon and make it work with less trouble.

On the other hand it is now also clear that the iPad uses a new hash and music synchronization is not working. iOS 4 is not available for that device anyways until later this year.

So to sum it up: Music sync with an iPhone/iPod Touch running iOS 4.0 with Linux is going to work fine soon, while music sync with the iPad is fully unsupported. So you might want to wait with your update until a newer libgpod is released.

An extra goodie for users of the Banshee media player. Alan was so nice to hack libgpod support into Banshee during the Novell Hackweek, thus support for iDevices is coming soon.

21 Responses

  1. Bastien says:

    What’s half-broken about the music synchronisation? Is it not working properly, or are you talking about what’s supported and what’s not in the front-ends, or in libgpod?

  2. admin says:

    The sqlite music database schemas changed slightly. libgpod needs updates to write and process them correctly and some db version detection to prevent writing “new unsupported” db versions.

  3. meijin says:

    I didnt got your answer – is it working with the latest libgpod and gtkpod from the git repo? or i need to wait some more?


  4. […] This post was mentioned on Twitter by Luke MacNeil, doberman6. doberman6 said: iOS 4.0 released: libimobiledevice and music sync with Linux – […]

  5. […] few blurbs about it are here, here, and here. iOS 4 full support coming […]

  6. Erik Kristensen says:

    Is there a command line tool that uses libgpod, so one can sync without X?

    Also what do you mean that the ipad is “fully unsuppported”?

  7. admin says:

    @meijin: iOS 4 support will soon land in libgpod git. So you need to wait a bit more.

    @Erik: Not that I am aware of. Such a tool would not simply “sync”, it would have to allow you to manage (add, remove, edit) tracks aswell. Regarding the iPad being “fully unsupported”. All iPad iOS versions use a new signature/hash for the iTunes music library which we do not support yet. So thus the comment about anything except an iPad syncing using libgpod. However, libimobiledevice and it’s tools also work with iPads fine.

  8. Andrew Hailes says:

    How soon is ‘soon’? According to the git page, the last commit was last month. Or are you not using the sourceforge git repo?

  9. erghezi says:

    thx man for the good news :D

  10. Sam Jacobs says:

    There seems to be some more activity on Gitorious* (Google is your friend :-P), but nothing that appears to be related to iOS 4. It’s annoying to have to wait, but I’m sure that then will be now, soon!

    It’s probably worth keeping an eye on both repositories–I am!



  11. boxingsquirrel says:

    Is anyone else having any luck with an iPad even mounting? I’m using libimobiledevice v.1.0.2 on Debian Lenny.

  12. faust says:

    boxingsquirrel: did you read? iPad => fully unsupported
    You may have to wait, or to do it yourself.

    Whatever, for those asking about music sync on iPhones with iOS4:
    I’m using gtkpod-git with libimobiledevice-git
    I mount my un-jailbroken device using ifuse

    Music transfert seems to work (no errors, nothing)
    But once it’s finished, there isn’t any new track in my iPod library…

  13. Ed says:

    Got myself an Ipod touch for my birthday. Latest generation, voice recognition etc. Guess what? Gtkpod doesn’t recognize it. I am so pissed if with Linux right now that I would gladly pay for a distro that worked when I threw a curve ball at it. I suppose that in the end you really do get what you pay for, and I didn’t pay for aggravation!

    My rant is done.

    I’m going to start shopping for a Mac.

  14. Andrew Hailes says:

    Is this not even a priority?

    Two weeks now since the last commit… getting more than a little frustrated having to reboot every time I want to update something on my iPhone.

  15. John Watson says:

    I see there is an update on the website saying “31.07.2010: iOS 4 music syncing for last-gen devices works just fine”. Does this apply to only the git version or which one? I have a very recent 3GS and was a bit apprehensive about upgrading from 3.1.2 to 4.

  16. admin says:

    With libgpod >= 0.7.93 music syncing with iOS 4 last-gen devices works and worked fine. There is however an “Updating Library…” screen shown after a sync which is most likely caused by a new sqlite music db sort feature that we are trying to fix. iPhone 4 and the iPad though use a new hashing algorithm that is more complex and not yet fully understood.

    @Ed: That is 100% your fault due to a bad system setup/configuration.
    @Andrew/@Ed: It would be easy if iTunes for Linux existed, right? So please go and rant with Apple about it.

  17. Keith says:

    The “Hey.. dude fix your s**t.” comments still utterly amaze me in the open source world. Don’t worry. There are still many among us who appreciate your work and understand that things take time. If I had the skills I’d roll up my sleeves and help – but alas I am a follower not a leader in this realm.


  18. Jauco says:

    Hey, I bought an iPhone two years ago, never bothered syncing it with linux because it didn’t work back then and I was way to lazy to look into it, figuring I could always use my wife’s windows pc to sync music.

    Yesterday I wanted to remove some songs from my library to free up space for the TomTom app. I plugged it into my wife’s pc, waited a few minutes for it to detect that it was an iPod, waited ages for itunes to perform some sort of mandatory update, waited a bit more for the ipod update that was also mandatory or something. Eventually after waiting at least an hour(!) I finally gave up. This morning, just for the heck of it, I plugged it in my ubuntu 10.4 laptop. Voila: rythmbox opens and shows me my music collection.

    Moral of the story:
    (1) It’s just so freaking awesome if someone fixes stuff behind your back :)
    (2) When linux supports something the support is _so_ much better than the “official” windows toolchain.

  19. Fence says:

    I am trying to install libimobiledevice 1.0.2 from source since it is (for some reason) not in the repositories. I followed the instructions in the README (pretty similar to the way I would normally install anything from source) and I get no errors. However, if I do

    aptitude show libimobiledevice

    It still shows version: 1.0.1


  20. Fence says:

    Ok. Got libimobiledevice 1.0.2 Installed from source. Now if I type:

    aptitude show libimobiledevice1

    It shows me Version: 1.0.2 (Yea!)

    Two problems:
    — Now the iPhone 4 doesn’t mount automatically. I can mount it manually with no problem and Rhythmbox recognizes it once I do so. Any idea why automatic mounting stopped working under 1.0.2?

    — Songs can be transferred without issue in Rhythmbox, and I know that they are present on the device (I can see them if I navigate the filesystem). The problem is after the “Sync in Progress” screen is finished, The songs don’t show up on the iPod. If I reconnect the device and remount it, Rhythmbox does not show the new songs I transferred. I thought this was supposed to be fixed in 1.0.2. Was I wrong?

    Any insight you can provide will be helpful. Thanks for all your hard work. Down with Apple! (and Micro$oft)!

  21. Ryan says:

    If I remember correctly, the iphone 3g,3gs with 1.0.2 works fine (ios 4.x), but the iphone 4 uses a different hash, so they are working on it….

Comments are closed.