Using Amarok and other iTunesDB compatible software with the iPhone 2.x
With newer iPods and the iPhone 2.x firmware, Apple decided to implement a new hash scheme for iTunesDB to prevent third-party apps from managing the iPod database. Stupid. They decided to make it part of the FairPlay codebase, including its obfuscation. Very Stupid. But just in case that weren’t enough, then they went ahead and tried to take down the iPodHash project which was attempting to reverse engineer the (annoyingly obfuscated) algorithm. Completely Stupid.
I had previously patched the check out in the MusicLibrary binary, and forgot to write it up. However, I just looked at it again, and it turns out that you can get it to work just by changing a simple XML file. I guess they didn’t really care if jailbroken iPhone users used third-party software.
Here’s how: Edit /System/Library/Lockdown/Checkpoint.xml, find the DBVersion key, and change its value from 4 to 2. Save and reboot. Voila! I haven’t tested this extensively, but it seems to work at least on 2.1 and 2.2. You can then use Amarok or any other libgpod app to transfer data to the device (using the usual sshfs mount trick which is documented elsewhere for 1.x iPhones)
Update: abu from ml_ipod pointed out that DBVersion 3 also works. This version includes the old hash which was already present in older versions. I have tested this to work on version 2.1 of the iPhone software.
Update 2: DBVersion 3 works only on some devices, better stick with DBVersion 2.

MobileMusicPlayer synced via Amarok
January 7th, 2009 at 8:25 pm
Thanks for this great info. We at Winamp’s ml_iPod plugin are currently testing this, and it seems to work fine (http://forums.winamp.com/showthread.php?postid=2467097#post2467097) . In my latest patch, I added the possibility to do this xml hack without the need of an editor, ml_iPod does it for you. The iPhone must be jailbroken first, of course.
I guess the value DBVersion==3 should be fine too, as this is the value on 1.1.4 devices which did have the old hashing scheme. But I haven’t tested, have no 2.x device.
January 7th, 2009 at 9:01 pm
Just tested. Works too, at least on 2.1. Good catch
January 7th, 2009 at 10:22 pm
Just updated my ipod touch 1G to FW 2.2. And I must admit, DBVersion 3 does NOT work there (it just shows the well known ‘no music’ screen), but value 2 still does the trick. Strange, but well… great to have a way to use these devices with Amarok, Winamp, GtkPOD or whatever now.
January 16th, 2009 at 6:26 am
Confirmed that changing 4 to 2 works on 16GB black iphone running 2.2.
But, podcasts don’t sync. I’ve posted this to the libgpod dev mailing list. Hopefully this is a trivial fix.
Thanks for posting this! This is huge.
January 16th, 2009 at 6:32 am
I should have stated that I was trying to sync podcasts with Amarok and gpodder on Ubuntu with libgpod 0.6.0
January 16th, 2009 at 1:22 pm
Changing /System/Library/Lockdown/Checkpoint.xml, find the DBVersion
1)to 3 did not work on iPhone 3g 16GM white.
Itunes on OS X does not recognise Iphone, and asks to reset.
2) to 2 does seem to work:
Amarok was able to add songs to iPod on Iphone 3g, iTunes on Mac OS X complains about an error and tries to send information to Apple…. But Library seems to be intact!
Will post more observations soon..
January 19th, 2009 at 7:01 am
It looks like above user also tried to sync with iTunes. Can anybody else out there tell whether iTunes still works with this change (I sync with both a Windows and Linux system)? If so, it would mean a big breakthrough. Getting this working has been a major issue since firmware v2.0!
January 22nd, 2009 at 3:41 pm
Thanks for this suggestion, very glad to be using Amarok again.
However, people should be warned that as soon as I made this change, all app-store apps stopped working. They crash at startup, and new apps refuse to install, saying they’re incompatible with this phone version.
January 22nd, 2009 at 5:10 pm
[...] iPhone “kein” Problem – aber eine gehörige Frickelei. Der vor ein paar Tagen bei Marcansoft veröffentlichte Hinweis, beschreibt eine Vorgehensweise, die es ermöglicht, das iTunesDB-Format des iPhones (Firmware 2.2) [...]
January 22nd, 2009 at 5:13 pm
It makes sense that iTunes complains, since the database still has an invalid hash – the iPhone doesn’t check it, but iTunes probably does. A similar workaround might be needed in iTunes, or maybe some tweak inside the database itself could convince iTunes that it’s valid (for example, making sure the version number inside the DB is older might convince iTunes to accept it, upgrade it, and sync with it).
I don’t have any issues with App Store applications, at least with OS version 2.1.
January 22nd, 2009 at 6:15 pm
I’m on OS version 2.1 as well. Huh. Well it could be a coincidence, I’ll dig deeper.
January 22nd, 2009 at 6:35 pm
Sorry for the confusion, I found my (unrelated) problem.
Thanks again for this fix.
January 25th, 2009 at 12:30 am
[...] only that, this clever chap has figured out how I can use gtkpod to place music onto the player and have the iPod program recognise it (something I couldn’t [...]
February 3rd, 2009 at 12:35 am
[...] (Quelle:http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-ipho…) [...]
February 19th, 2009 at 2:02 pm
[...] Note: If you are looking for further information on why you need to do this I would recommend you this site. [...]
February 21st, 2009 at 2:02 pm
[...] Source: Marcan’s blog [...]
February 24th, 2009 at 2:20 am
[...] DRM crap. If you are curious about the details, this is all explained here: Marcan’s Blog. Long story short, you need to tell your iPhone “please, sir, use the old version of the [...]
February 25th, 2009 at 2:03 am
[...] Well, it happened. And the solution was simpler than one would think. http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-ipho... [...]
March 2nd, 2009 at 8:37 pm
[...] another coder figured out an easy fix for the iPhone’s hashing problem, but a familiar problem has again been illustrated: an attempt to control the usage of a [...]
March 6th, 2009 at 10:35 am
[...] info: synchroniseren van Ubuntu met PwnPlayer en synchroniseren met Amarok. Vorige [...]
March 6th, 2009 at 11:44 am
[...] more info: synch with Ubuntu by PwnPlayer and synching with Amarok. [...]
March 18th, 2009 at 1:27 am
hello. I tried to do this as well as what is explained in this http://youbegin.blogspot.com/2007/11/mlipod-winamp-iphone-sync-true.html guide
everything seemed to work, i got remote access to my iPhone, and I see my iPhone show up as a device in winamp, but after a few seconds windows closes winamp with this error signature
AppName: winamp.exe AppVer: 5.5.5.2419 ModName: ml_ipod.dll
ModVer: 0.0.0.0 Offset: 00039718
now, I’m not the most computer literate person in the world, but I followed the instructions exactly, looking elsewhere for information where I didn’t understand something.
I tried setting the DB to 2 and 3, neither worked for me, still crashed
help?
March 18th, 2009 at 1:35 am
i’m using fw 2.2.1
March 22nd, 2009 at 6:44 am
[...] modify this xml file (/System/Library/Lockdown/Checkpoint.xml) on your iPhone (Backup your file [...]
April 8th, 2009 at 9:35 pm
[...] Keine langsame WLAN-Verbindung ist mehr notwendig. Nun geht’s endlich direkt. Mit dem Hinweis von marcan gelingt es nun also auch mit der 2.x Firmware Musik schnell auf das Gerät zu bringen. Natürlich [...]
April 14th, 2009 at 5:03 pm
[...] Highlight: Uploading media file to iPhone with firmware 2.x is now enabled. So that you can uploading music and video to iPhone like i-FunBox V0.6 does. We really appreciate Alba for sharing the DBVersion trick to us for beating Apple again. More details can be found at http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-ipho... [...]
April 15th, 2009 at 9:08 am
[...] ファームウェア2.0以前までは、i-FunBoxでメディアファイルを転送、iPhoneで認識できていたらしい。が、その後Appleがハッシュの方法を変更し、利用できなくなっていた。そのハッシュを外す方法を発見した人がいて、それを利用しているらしい。まだ使い込んでいないが、MP3を一曲iFunBoxで転送してみたが、確かにiPod Appから認識された。これは便利だ! 母艦がないところでも、ビデオや音楽がiPod Appのライブラリに追加できる。ただし、ハッシュを外す方法のページに記述のある、パラメータを自分でいじる必要があるようだ。この手法は、DBVersion Trickと呼ばれているらしいが、3.0ではまた使えなくなるのでは?とも書いてあった。i-FunBoxを使って作業する場合、/System/Library/Lockdown/Checkpoint.xml [...]
May 5th, 2009 at 4:31 am
how do you edit this file? permission wise I get denied.
May 5th, 2009 at 4:31 am
Make sure you are logged in as root, not mobile
May 12th, 2009 at 3:18 pm
Thanks for the info. One further trick to getting cover art to work on my Jaunty system. An important trick to getting the path right with amarok’s connection.
http://www.hackint0sh.org/forum/f128/30709.htm
“sshfs -o workaround=rename your.iphone.ip.addr:/private/var/mobile/Media /media/ipod” for the pre-command and “fusermount -u /media/ipod” for the post disconnect. Ipod convenience scripts worked initially but didn’t copy cover art.
May 20th, 2009 at 10:19 pm
[...] Si vuestro firmware es 2.00 o mayor, debereis miraros ésto para poder sincronizar vuestra música. Leer [...]
June 12th, 2009 at 12:29 am
I tried this, and it does indeed make my music show up, but now I have the same problem that Ed4 reported above: no AppStore apps will launch. They show their splash screen, but then crash.
Any ideas how to fix this, so that I can both play music synced with Amarok and use AppStore applications?
June 12th, 2009 at 2:33 am
I’ve had that happen with at least one Appstore app. A simple redownload/reinstall fixed it. I haven’t seen any problems with apps refusing to install on this iPhone version. What version are you using?
June 13th, 2009 at 1:03 am
Oh, man, I almost freaked out!
I made all the changes and synced some music but the player wouldnt show any of the songs as if the hash was broken. After a couple of hours of searching the web for solutions I realized I had forgotten to restart the phone after changing Checkpoint.xml.
Everything works perfectly now! Thanks alot!
June 20th, 2009 at 10:25 pm
Seems like this doesn’t work anymore under firmware 3.0 :-/
June 20th, 2009 at 10:50 pm
Wouldn’t surprise me. I haven’t taken the plunge and upgraded yet, but I probably won’t last long. Since 3.0 is thoroughly pwned anyway, at worst I’ll need to patch the MusicLibrary binary instead of just that XML thing. I already know how to do that, it’s just more annoying for the enduser :/
June 21st, 2009 at 12:06 am
Neevermind. We’re screwed. See newer blog post.
July 15th, 2009 at 9:47 pm
Hi Marcan,
I am using 2.2 firmware, I modified the DBVersion to 2, and tried to copy some mp3 files over using podtool (libgpod wrapper written in python) and in gtkpod.
sadly, the iphone didn’t see the new files. any idea what could be the reason?
March 30th, 2010 at 10:18 pm
how do you modify this file?? it says that i do not have the privilege.
i m jesus christ btw
May 19th, 2010 at 10:14 am
[...] unexpected, was that they have kept the scramble algorithm they introduced in 2.x, and removed the hacked support for older versions of the library. There was also another file that looked like it kept some cryptographic info. I [...]