We need you! (and apple sucks – part 2)

Snorp and I absolutely hate Apple. With almost every release of a new iPod device, firmware, or even iTunes updates, there’s a chance that they have royally screwed us into not being compatible with them. Most often there are only minor changes to the iTunesDB database format, and they’re easy to cope with. Sometimes they hit hard.

A couple of days ago, they hit hard. We are now hard at work trying to figure out what to do next, and have almost solved it, but we could use your help. If you have not used iTunes 7, upgraded your firmware since the late-June release, or do not have one of those new-fangled evil iPods, we could use a file from your iPod to help us out.

It appears this last round of updates from Apple removes the iPod_Control/Device/SysInfo file or zeros it out, for good. Removing it (if zeroed) and rebooting does not restore it (what used to happen on older firmware). This file was critical in detecting all sorts of useful things about your iPod, and ultimately provided a key (model number) into our capability table in libipoddevice for the device (does the device support photos? videos? what resolutions does it prefer? what’s its generation? what icon should we display?).

To anyone with an iPod that hasn’t been touched by anything new from Apple in the last week, we are requesting your iPod_Control/Device/SysInfo. This file contains model information and your serial number. We are still able to find the serial number in other places on the device, and it just so happens that the serial number actually has encoded in it model and manufacturing information. My point here is that if you send us your SysInfo, we need the serial number along with everything else, so don’t mask it out – it would make your data donation useless.

There’s only one really unique part of the serial number, if you’re worried about sending that unique part in you can mask characters 6-8, which apparently are a 3 digit base 34 number identifying the production order of your iPod for that week of production at some factory. In other words, if your serial number is OOOOOOOOOOO, and you’re worried about privacy, security, whatever, send us OOOOOXXXOOO – O being characters we need, X are UID characters we don’t care about.

Email your SysInfo files to: aaron abock org — your help is much appreciated.

I also feel obligated to mention that this post is also on the heels of Crispin’s post about his new 8GB iPod Nano:

I was hoping for the ‘just work’ integration I have come to expect from Ubuntu, and sadly it doesn’t ‘just work’, lets take the apps I have tried one at a time:

  • Banshee – This doesn’t find my iPod at all
  • ipod – this is a little command line tool to test the libraries – it claims Not a Valid iPod!

(edited for brevity and relativity)

Well, Banshee can’t detect this new device for the very reasons explained above. The ‘ipod’ tool is a tool that comes with libipoddevice. It’s used for diagnostics, and doesn’t manage your iPod. It shows nothing for the same reason that Banshee shows nothing – libipoddevice is the common link, and Apple broke it.

This does lead me to want to add a fallback “unknown iPod” setup in libipoddevice. We can tell by just the USB vendor and product IDs if a device is an iPod… we just can’t detect the bells and whistles without the model number. Nevertheless it should still display something. Maybe even present a dialog asking for the model number manually, have it automatically collect data, and offer to submit it back to us somehow.

41 Replies to “We need you! (and apple sucks – part 2)”

  1. Hmm… let’s see. When Apple changes something around in its internal stuff and it breaks Banshee, Apple sucks. But when Greg Kroah-Hartman (or some other kernel developer) intentionally changes something in the kernel to break the nvidia drivers, nvidia sucks.

    Pot. Kettle. Black.

    P.S. If you hate Apple so much, why not just refuse to support the iPod?

  2. Apple doesn’t owe you anything. Why shouldn’t they change the way the iPod works if they want to? It’s their product. You can’t say that they “suck” just because they aren’t doing what you want them to. If you don’t like the way the iPod works, get a different player. Grow up.

  3. Who said anything about the Kernel or Nvidia? With that logic, we could find a million things “that suck.” “Apple sucks” is not just related to the iPod and Apple breaking things constantly (on purpose, to keep their software-player-monopoly over the device)… they’re an evil company, and that’s that. In many ways, they play dirtier than Microsoft.

    I’d love to not have to support the iPod, but consumers don’t seem to share my same disregard for the device or the company, so we deal with it.

  4. Chris: before telling me to grow up, learn a thing or two about making users happy, supporting popular demand, etc. I do not personally care for Apple or their hardware, but I do want it to be supported for the sake of the majority of the users that use my software. So yes, we gripe. But we also persist, and the result is that one day, very soon, the new devices will work again on open source software.

    What Apple does owe to me, however is the right to use my device under any given software platform of my choice. I signed no agreement when I purchased my device that said I had to use iTunes. My point is that I would bet everything I have that part of their motivation for changing things (lots of stuff they change is rather pointless as well) is to intentionally disrupt competing software. Yes, they have that power.

    No, they don’t have to publish any specifications or standards, no they don’t have to keep the files and formats convenient and readily accessible, no, they don’t have to play nice at all. But it would be the right thing to do. That is why I gripe. And that is all. Grow up.

  5. I actually think that the kernel should have stable interfaces, and I disagree with Greg on this particular point.

    I just do not have the stamina to blog post, follow up, and email. But I think that Linux should have a stable ABI for kernel drivers.


  6. Greetings Aaron!

    Sorry to hear your hacking-efforts need to take the troublesome route. I’m 100% with your point of view. This is the very curse and virtue of OpenSource systems (until it will be regarded as a major player better not to f**k around with) at the same time.

    It is once again a clear indication to stick to open standards and companies that follow them by implementing them in their devices.

    Best regards…


  7. I just sent the SysInfo file from my iPod nano I got for christmas last year and haven’t updated since then.
    I hope it helps.

  8. Sorry to hear about the hassle. As much as I love their product design, Apple does feel at home leveraging their monopolies.

    DAP support is one of the greatest thing about Banshee. Being able to DnD songs onto my ipod, phone, PSP and IAudio is just crazy cool!

  9. Aaron –

    Keep up the good work! Many, many of us really enjoy the benfits of it!

    We are going to put a call out on our podcast (The Linux Action Show!) and draw attention to this issue.. We are no stranger to taking on Apple Fan boys (We used to run http://www.resexcellence.com) and we know exactly how you feel.

    Good luck my friend! And expect my data donation soon!

  10. Hi,

    I haven’t updated my firmware nor iTunes for a while. How can I find the file you need? I have left my data cable at work but will have a look tomorrow.

  11. nvidia/Linux kernel is a bad example, since source of Linux _IS_ available for everyone, even for nVidia. However Apple does not inform banshee developers, or release source of firmware, or anything like that. Also as we know legal status of a non-GPL kernel module (with the trick using a GPL’ed glue, and a binary-only non-GPL stuff) is questionable at least. However using services of iPod is like interaction of a web browser with kernel via syscalls (with using libc and sure, other stuffs sually), and NOT nvidia-kernel relation: that would the example if you want to MODIFY or to LINK directly to the firmware code of iPod or something similar horror ..

  12. Tanner: no, it’s not hypocritical. When NVidia distributes binary drivers and no specs, users of free systems are SOL. When Apple distributes hardware that zeros out part of the interface, users of free systems are SOL. It’s the same position: if your company is making hardware and you’re trying to screw over free software users, you suck.

    Chris: if Apple is free to change their hardware, he’s more than free to say they suck because of it. He’s not trying to take legal action, or boycott their products, or even pretend that they “owe [him] anything”. He’s just upset with their behavior, and trying to take positive action. In a bad mood today, are we?

  13. By the way I’ve almost forgot: interface for interaction of non GPL code is for syscalls. Module interface is an internal kernel API/ABI and not for plugging out-of-kernel-tree modules. That’s why many kernel developers suggest push your code into kernel. Sure, a GPL kernel would like to have GPL drivers. No surprise. For example Intel release information. nvidia should also do it instead of blaming kernel development model which is GPL based, if nVidia do not want this, do not write drivers for Linux, it’s simple.

  14. You should never support something that you hate. It won’t make you – and others – happy. You will never manage to produce something great for something that you don’t love. Do yourself and your users a favour and just drop it.

    @Miguel regarding your “Apple fanboy” comment: I think the same statement is true for Open Source & Linux fanatics, they show the same religious stupidity. But at least the Apple fanboys get to use innovative software, whereas the poor Open Source groupies have to use unstable and lousy clones of commercial products that never live up to their promise.

    I’m sorry, Miguel, I have a lot of respect for your marvelous work, but comments like this just drive me nuts.

  15. I’d also be willing to contribute the needed file but I have no idea what I need to do to obtain it. If you could post some instructions and where to send it I’ll do what I can to help.
    Thoguh for the record I don’t hate Apple or Microsoft, I do love open source though.



  16. Basically, you are using the iPod in a way it is not designed to be used. The iPod is designed to be used with iTunes. You’re doing something with it that Apple never said would be possible and then you’re saying that they “suck” for it not working. If I buy a knife and try to use it as a screwdriver and it breaks, can I say that the knife manafacturer “sucks”? I don’t think you should be insulting the people at Apple because you can’t use their product to do something that they never said you would be able to.

  17. Miguel, I too agree that the kernel should have a stable ABI, but I also think the kernel developers are well within their rights to change things however they want. I also think that Apple is well within its rights to change things, especially unpublished things, however it wants and complaining about it shows quite a bit of immaturity.

    Ken, it certainly IS hypocritical. NVidia is certainly not “screwing anyone over”. If the choice is between no support at all or limited support with a binary driver then it looks to me like NVidia is actually trying to support the user to the extent that they can. While a fully free GPLed driver would certainly be preferable, I don’t see how that can happen when they use the exact same code for both the windows and linux drivers (which, btw, also negates the argument that the driver is a “derivative work” of the kernel, which it clearly is not).

    Apple may indeed be attempting to “screw someone over” but in reality, they probably aren’t. Open source projects like Banshee barely register on their radar and if they do it’s that they help sell more iPods to people who use Linux. What most likely happened was they changed their code around and in doing so got rid of that particular file. This happens all the time in all kinds of software projects without there being anything sinister about it.

    Out of curiosity, has anyone actually contacted Apple and asked for specs on the iPod to help support it better? With the recent announcement of macosforge Apple seems to be offering more support for open source projects and an opensource library that interfaces with the ipod seems like it would be a good fit for that.

  18. Question: can the missing file be restored by reverting to original ipod firmware off original disk?
    Also, how is itunes identifying the model now?

  19. I posted this issue to the Banshee list about two months ago after the firmware update of June 28th.

    There are two things that we need out of the SysInfo — the model and the serial number. I simply found a listing from the web of other people with broken SysInfos and copied the format.

    This is for a 1GB Black Nano (1st gen)

    pszSerialNumber: YM613—UPR
    boardHwSwInterfaceRev: 0x000C0005 (0.0.12 5)
    ModelNumStr: xA352

    My suggestion was simply to prompt the user to select her iPod model and serial number and then save that back to SysInfo. That just seems like the easiest to implement and would bring all apps up to speed whether or not they used libipoddevice. I’m just lazy like that ^_^.

    — Tamara

  20. Hello again,

    I posted earlier saying that I would be happy to contribute this file but don’t know where to look for it (I see Joe Audette has made a similar request for info). Can you please post some instructions or a link?

  21. I’d just recommend people to buy hardware that doesn’t break. Products by iAudio support Ogg Vorbis, FLAC etc. and can be used as USB mass storage device. Why would I ever buy an Ipod if I can’t official support for the (open) file formats I want to play there?

    I’m not interested in doing hacks to make some more evil commercial device usable, I rather buy something that really works out-of-the-box.

  22. I’ll gladly provide my Sysinfo, on the proviso that the Banshee team assist developers of other open-source iPod communication implementations should they request it, by providing them with this Sysinfo collection you’re trying to start. :-)

    Unfortunately I bought my iPod mini before I was aware of open-source, and now that I use Linux as my fulltime desktop OS, Linux support for my iPod is a must. Rest assured I won’t be buying Apple next time I invest in an mp3 player, though.

  23. WOW, I knew 33 year old vegitarians were funny, but comparing apple so scientologists is pretty bad.

    Hopfully the updated iPod libraries will allow for show notes to be added automatically? Just a thought. Sorry I can’t help I had a brain lapse a few weeks ago and installed Windows XP for the first time on one of my computers. Shortly after iTunes auto updated my nano I removed all M$ products from my house and removed the only Mac software ever used as a result.

  24. Heres the info in my file from my Nano.

    BoardHwName: iPod M26
    pszSerialNumber: YM624TD6TJT
    ModelNumStr: MA099
    FirewireGuid: 0x000A270018407BD5
    HddFirmwareRev: ADBA42KC
    RegionCode: LL(0x0001)
    PolicyFlags: 0x00000002
    buildID: 0x05118000 (5.1.1)
    visibleBuildID: 0x01118000 (1.1.1)
    boardHwRev: 0x00000000 (0.0 0)
    boardHwSwInterfaceRev: 0x000C0006 (0.0.12 6)
    bootLoaderImageRev: 0x00000000 (0.0 0)
    diskModeImageRev: 0x00000000 (0.0 0)
    diagImageRev: 0x00000000 (0.0 0)
    osImageRev: 0x00000000 (0.0 0)
    iPodFamily: 0x00000000
    updaterFamily: 0x00000000

  25. here’s my gen4 ipod info. the linuxlinktechshow passed a link to here in their latest podcast. let me know if you need anythign else.
    BoardHwName: iPod Q21
    pszSerialNumber: 4U444GFTPS9
    ModelNumStr: M9282
    FirewireGuid: 0x000A270002AF6203
    HddFirmwareRev: JD100B
    RegionCode: LL(0x0001)
    PolicyFlags: 0x00000000
    buildID: 0x03118000 (3.1.1)
    visibleBuildID: 0x03118000 (3.1.1)
    boardHwRev: 0x00000000 (0.0 0)
    boardHwSwInterfaceRev: 0x00050013 (0.0.5 19)
    bootLoaderImageRev: 0x00000000 (0.0 0)
    diskModeImageRev: 0x00000000 (0.0 0)
    diagImageRev: 0x00000000 (0.0 0)
    osImageRev: 0x00000000 (0.0 0)
    iPodFamily: 0x00000004
    updaterFamily: 0x00000004

  26. From my 4Go Nano:
    BoardHwName: iPod M26
    pszSerialNumber: 5U6130J7TK2
    ModelNumStr: MA107
    FirewireGuid: 0x000A27001807A151
    HddFirmwareRev: ADBA41KB
    RegionCode: FD(0x0003)
    PolicyFlags: 0x00000001
    buildID: 0x05118000 (5.1.1)
    visibleBuildID: 0x01118000 (1.1.1)
    boardHwRev: 0x00000000 (0.0 0)
    boardHwSwInterfaceRev: 0x000C0006 (0.0.12 6)
    bootLoaderImageRev: 0x00000000 (0.0 0)
    diskModeImageRev: 0x00000000 (0.0 0)
    diagImageRev: 0x00000000 (0.0 0)
    osImageRev: 0x00000000 (0.0 0)
    iPodFamily: 0x00000000
    updaterFamily: 0x00000000

  27. From my Ipod Video 30 gb

    BoardHwName: iPod M25
    pszSerialNumber: 4J552YDJSZ9
    ModelNumStr: MA002
    FirewireGuid: 0x000A270014C72BD8
    HddFirmwareRev: BU111A
    RegionCode: LL(0x0001)
    PolicyFlags: 0x00000002
    buildID: 0x06108000 (6.1)
    visibleBuildID: 0x01108000 (1.1)
    boardHwRev: 0x00000000 (0.0 0)
    boardHwSwInterfaceRev: 0x000B0005 (0.0.11 5)
    bootLoaderImageRev: 0x00000000 (0.0 0)
    diskModeImageRev: 0x00000000 (0.0 0)
    diagImageRev: 0x00000000 (0.0 0)
    osImageRev: 0x00000000 (0.0 0)
    iPodFamily: 0x00000000
    updaterFamily: 0x00000000

Comments are closed.