|
|
|
|
#1 |
|
Member
Join Date: May 2007
Location: Italy
Posts: 80
|
http://ipodminusitunes.blogspot.com/.../weve-won.html
Thanks to some inspired work by a few heroes, we've managed to work out how to get everything working again. This is what we've found out: the hash at 0x58 is the one that matters. And we know how to generate it. It's a cryptographic signature combining data from the iTunesDB and a device specific identifier (called the firewireid) and some (formerly) secret numbers. Instructions for linux users on how to fix their iTunesDB files are here. Windows users are going to have to wait a little while. (For interested programmers, the code to generate the hash is here.) http://www.backdot.com/?p=50 The heroes in question include wtbw, nopcode, teuf, simon and many others from #gtkpod. Let's all hope that (if they haven't already from the iPhone unlocking) Apple learn that fighting against us is pointless. It's a waste of their time if the open source crowd is going to get past it in just a weekend. |
|
|
|
|
|
#2 |
|
Forum King
Join Date: Apr 2002
Posts: 2,928
|
Since the forum censored the link:
http://ipodminusitunes.blogspot.com/.../weve-won.html For interested programmers, the code to generate the hash is here: http://www.backdot.com/?p=50 Last edited by abu; 17th September 2007 at 20:47. |
|
|
|
|
|
#3 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
I had a quick look at the code and have no idea how to add that to ml_ipod
![]() Where should we get that device specific stuff (8 bytes firewire ID) from, on Windows....? There is some information how to do it with Linux, but I have no idea about the Windows side of this... Must be some string that can be read from the USB driver, I guess. But how? Any more information out there??? I'll be happy to add this to ml_ipod. BTW: Any hacks for getting to the iTunesDB of the iPod touch? WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#4 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
Well obviously there's a way to get at it in Windows, or iTunes wouldn't be able to generate the proper hash either. As for just how to get at it... hmm. I'll take a look around.
Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#5 |
|
Junior Member
Join Date: Sep 2007
Posts: 24
|
If you look in the win device manager under details for the "Apple Ipod USB device", the fwid is whats shown as the device instance id.
This is available through the system registry (although I'm not sure which is the best key to read it from, searching for the id returns multiple hits). |
|
|
|
|
|
#6 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
At the moment, I have a classic here for week, so I can test. Attaching it adds registry keys at least to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Apple&Prod_iPod&Rev_1.62\000A270015463A37&0 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_05ac&Pid_1261\000A270015463A37 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PartMgr\Enum So I guess the required ID is 000A270015463A37, this is pretty obvious. But now: How can I figure out which drive letter is connected to which USB device? Any example code would be great... I need to take care of the fact that more than one iPod might be atached, so it is important to see which drive letter needs which hash ID... And which PIDs are valid for the different models? 1261 seems to be the one for a black 80GB classic. But which string would be valid to scan for when looking at the registry keys? WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#7 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
The nice thing is that previous-generation iPods also seem to have similar 16-hexdigit IDs, so if Apple decides to implement this hash-checking in a firmware update, we'll (hopefully) be ready!
Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#8 | |
|
Member
Join Date: May 2007
Location: Italy
Posts: 80
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Junior Member
Join Date: Sep 2007
Posts: 24
|
Looking at the itunes.exe, it seems to make a bunch interesting calls to setupapi.dll:
http://msdn2.microsoft.com/en-us/library/ms792954.aspx Specifically itunes is using: SetupDiEnumDeviceInfo SetupDiEnumDeviceInterfaces SetupDiGetClassDevs SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceRegistryProperty SetupDiOpenDeviceInterface There's also this: http://ipodlinux.org/Device_Information And this sample code (from benski) for making such a scsi inquiry and obtaining that xml: http://stashbox.org/37478/SysInfoXML.cpp Ok hopefully at least abu can see these urls.
Last edited by abu; 18th September 2007 at 06:10. |
|
|
|
|
|
#10 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
Yeah, I saw those SetupDi* functions in the Win32 API docs (one of which is SetupDiGetDeviceInstanceId, which is what I think we need). They seem to only exist on Win98 or higher, but that's not a problem as Winamp's official minimum requirement is Win98SE anyway.
Edit: Here are the URLs posted above: http://ipodlinux.org/Device_Information http://stashbox.org/37478/SysInfoXML.cpp Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#11 | |||
|
Forum King
Join Date: Apr 2002
Posts: 2,928
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#12 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Ok, all this helps along the way. But even better (I don't have too much time at the moment) would be some working code, that can give me the fwid (or device instance ID) for a drive letter. We already have the drive letter in ml_ipod, so this is the basis.
How can I get the fwid if I only have the drive letter first? WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#13 |
|
Junior Member
Join Date: Sep 2007
Posts: 24
|
Using the DeviceIoControl function as shown in SysInfoXml.cpp needs a device handle, and the msdn entry for it says:
hDevice A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device handle, use the CreateFile function. and: DeviceIoControl can accept a handle to a specific device. For example, to open a handle to the logical drive A: with CreateFile, specify \\.\a:. |
|
|
|
|
|
#14 |
|
Junior Member
Join Date: Sep 2007
Posts: 24
|
Seems will beat you to it with a pmp_ipod beta over in the winamp discussion forum:
http://forums.winamp.com/showthread.php?s=&postid=2237025#post2237025
Last edited by abu; 18th September 2007 at 14:11. |
|
|
|
|
|
#15 | |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,210
|
Quote:
@fatcerberus1: min specs have changed as of 5.5 with the win9x platform support being dropped just as a quick fyi -daz |
|
|
|
|
|
|
#16 | |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
Quote:
Anyway, that DeviceIoControl tip is a good one, but we still have the problem of how we're going to parse the XML file. Looks like I'll have to add TinyXml to the ml_iPod source tree. Edit: Looks like CreateFile can only open devices on NT-based versions of Windows. For 9x/Me, MSDN says: "The file system restricts CreateFile to creating or opening files. You cannot create or open the objects [directories, disks, etc.] that are identified in the first paragraph of this topic." Looks like ml_iPod's minimum specs are about to go up. Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 Last edited by fatcerberus1; 18th September 2007 at 15:57. |
|
|
|
|
|
|
#17 | |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Quote:
And, yes, pmp_ipod is closed source, but Will gave me some hints how he did it, so I'm quite positive that we will have a running version during the next days. WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
|
#18 | |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Quote:
Did you have a look at IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER. Don't know if that helps... WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
|
#19 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
I looked that up yesterday, but that's more likely to give you the iPod's serial number, which is different from the FWID. For now it looks like parsing the XML is our only option. TinyXml isn't that big anyway. I doubt it'll add more than a few KB to the compiled code.
Edit: Also, IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER is only implemented in WinXP or higher. I don't think it wise to alienate Win2000 users yet. Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#20 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
A minute ago, I saw my first songs transfered with ml_ipod to the iPod classic! And they played fine! We're on the way!
Only the cover art does not show up. Maybe they have a hash added to the artworkdb as well? An iPod classic without cover art is quite pointless, it relies much more on the pictures than the older models. It always shows a dumb image of a music note if there is no cover present, so it looks quite dull. WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE Last edited by abu; 18th September 2007 at 18:54. |
|
|
|
|
|
#21 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
All right, for those of you with a classic, you can test a first version with limited classic support now: 3.01p02 is ready for download. As we have no code to extract the needed fwid from the device yet, it has to be inserted to the device inifile (ml_ipod.ini) by hand, you have to find the string in the registry
Then add it to ml_ipod.ini on the iPod like this: fwid=000A270315563A327 This must be a 16 character string, otherwise it won't work. Now you should be able to upload music. Coverart doesn't work, though! We are working on it... WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#22 | |
|
Member
Join Date: May 2007
Location: Italy
Posts: 80
|
Quote:
Ps. My iPod Classis will arrive in this days! Hope that the coverart album will be ok |
|
|
|
|
|
|
#23 | |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Quote:
BTW: All is in CVS now. WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
|
#24 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
Why don't you just call GetFWID (must include fwid.h) to get the FWID? It's already in CVS, fully implemented and works. I tested it on both my 1G shuffle and 5.5G.
Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#25 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Um, didn't do an update first, so I did not see your code
![]() Anyway; 3.01p03 is ready, which has this included. No longer fiddling with the registry, ml_ipod handles it all automatically now. Still, coverart does NOT work! WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE Last edited by abu; 19th September 2007 at 00:51. |
|
|
|
|
|
#26 |
|
Member
Join Date: May 2007
Location: Italy
Posts: 80
|
lov ya
|
|
|
|
|
|
#27 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
All right, cover art seems to work. Only the fancy jumping zoomed images on the right hand side of the split screen don't work, but from my point of view that was useless anyway. Cover flow works, album view works, and big covers on the "now playing" screen works.
Download 3.01p04. If you used a previous version on your iPod classic, you should make the X:\iPod_Control\Device\SysInfo file completely empty (delete the contents, but not the file) once before running Winamp now. WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#28 |
|
Senior Member
Join Date: Dec 2002
Location: Paris
Posts: 445
|
Hey abu
you talk about iPod classic but what about "Nano" ? (cause i presume that nobody have the "Touch" |
|
|
|
|
|
#29 |
|
Senior Member
Join Date: Sep 2007
Location: NH, USA
Posts: 106
|
There's still some weirdness going on with the cover art, beyond it just not displaying the Ken Burns effect at the main menu. Some albums don't display on the "Now Playing" screen while showing in the menus, and some albums don't display in Cover Flow, while showing in menus and "Now Playing".
|
|
|
|
|
|
#30 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Couldn't reproduce that here. Maybe I have to upload more songs...
@glop: see my other post. I need the files from a nano first. WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
#31 |
|
Senior Member
Join Date: Sep 2007
Location: NH, USA
Posts: 106
|
I have 13,000 or so songs on it, so maybe it is a size issue. My iTunesDB file as created by ml_ipod is 13.7 MB.
Edit: I'm going to play around with it and see if I can't get some more info. Also, it's off-topic, but the two coverart options "pad with whitespace" and "AR-breaking resize" are a false dichotomy. There's a perfectly acceptable third choice: leave it alone. Last edited by xamphear; 19th September 2007 at 20:03. |
|
|
|
|
|
#32 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
Can't leave it alone; not only does the artwork have to be converted to an iPod-compatible format, but it also must be resized to a certain fixed resolution (the actual res. depends on the model of iPod). The closest thing to leaving it alone is "pad with whitespace".
Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#33 |
|
Senior Member
Join Date: Sep 2007
Location: NH, USA
Posts: 106
|
You know what, you're absolutely right. Looks like iTunes handles it in a third fashion by cropping, and I just never noticed what it was doing.
|
|
|
|
|
|
#34 |
|
Member
Join Date: May 2007
Location: Italy
Posts: 80
|
anyone know why i'cant submit tracks to last.fm?
|
|
|
|
|
|
#35 |
|
Junior Member
|
Hey all,
I just tried updating my Ipod Classic hardware to 1.0.1 and running mlipod. I dragged and dropped one song from my computer playlist into the ipod, then ejected the device. No songs. Did apple end up changing their hashing method again, or am I not doing something right with 3.01p04? |
|
|
|
|
|
#36 |
|
Major Dude
Join Date: Mar 2007
Location: United States
Posts: 806
|
It's possible that they changed the hashing algorithm, but it's just as likely you got bitten by a bug in the FWID retrieval code. I fixed the bug, but not in time for 3.01p04.
@abu Think you could update from CVS and get the bugfix into the next patch? Windows 7 Beta iPod touch (Second Generation), 8GB Winamp 5.55 with ml_iPod 3.08 |
|
|
|
|
|
#37 |
|
Senior Member
Join Date: Sep 2007
Location: NH, USA
Posts: 106
|
When scrolling through a long list, the ipod pops up a block with a letter in it, so you could quickly go to the artists that start with N for example.
Something that ml_ipod does with artists starting with "The" makes my classic freak out so that as you zip through the alphabet it goes like "B,T,C,D,T,D,T,E,T,F,T,F,G,T,G" etc as it finds artist names that start with "The" in each letter grouping. I didn't see this happening in the album list, all albums starting with "The" all sort together under "T". Also, when/if you figure out why the kenburns covart effect isn't working in the menus, you should absolutely make it an option to keep broken or not, since Apple hasn't included a way to disable this feature in the ipod settings. |
|
|
|
|
|
#38 |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Oh no. We had this already with the 5G, and it was fixed. Now the issue is back
Seems Apple is using some other means for this again...An easy workaround would be an option to NOT ignore the "The" while sorting the list. Maybe I'll do that. A bit better than the broken box... WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE Last edited by abu; 22nd September 2007 at 20:34. |
|
|
|
|
|
#39 | |
|
mlipod moderator
(Senior Member) Join Date: Jun 2005
Location: Germany
Posts: 3,459
|
Quote:
WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it) ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug? Donations to support the ml_iPod project can be done HERE |
|
|
|
|
|
|
#40 |
|
Junior Member
Join Date: Sep 2007
Posts: 6
|
Hmm , I got the latest patch for ml_ipod and ... If I put anything on my iPod classic it do not show up in it . I see all the stock in Winamp , but not on my iPod . :S
|
|
|
|
![]() |
|
|||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|