Project status

From Winamp iPod plugin ml_iPod
Jump to: navigation, search

Contents

Current situation

General statement

For the last couple of years, I (abu) have been the only one who contributed to the code base of ml_iPod. Most of the time it was fun, but not any more. Why? Due to Apples's product philosophy.

With every new generation of iPods or iPhone firmware, they invent a new protection scheme that forces all users to use iTunes, until a crack is found. Sometimes it's easy to crack the protection, sometimes it takes weeks or months. In any case it takes a lot of time and effort to include support for newer devices in ml_iPod. And, of course, I always need one of the newest devices at hand, for testing and reverse engineering.

Well, from now on, I won't buy the newest Apple toys with the newest protection scheme, and as long as nobody else steps in for development, there will be NO SUPPORT for new iPod/iPhone devices that contain new encryption, new protection, new DRM or whatever the Apple guys invent next.

Their product philosophy simply doesn't fit at all to an OSS project like ml_iPod. That's sad, I know, but Apple does so much to make it hard or even impossible to manage their toys without iTunes. They want to force you to use iTunes, because they have way more control over your listening and buying habits that way. Hey, they make so much money with the iTunes store, of course they want to trick you in. That's the game. Apple's just a company that wants to make money, like everybody else.

But they are so rude against OSS developers that I don't want to support that any longer. I will try to keep ml_iPod as bug-free as possible for the existing devices, especially for the ones I use personally (nano and classic), but nothing else.

I'm sorry, but maybe pmp_ipod will be enhanced with all the new features that you need. It's getting better month by month, so check it out.

Thanks for all the nice words and encouragement on the forum, guys. Yeah, it's been fun for a long time indeed, but over the last couple of months Apple really made it an utterly exhausting experience.

For the older devices, ml_iPod will continue to work, maybe even bugfixes will be released from time to time (no promise though).

Status nano 5G (with camera)

I had a nano 5G for some days from a friend, and tried to patch ml_ipod for it. Finally, I gave up. Some research showed that it's not only the use of the compressed iTunesCDB format as on the iPhone now, they also need some hashed sqlite databases on the device now which was not necessary before. Adding this capability to ml_iPod would be a major project, costing several days of development. We would need to add two external libs (zlib and sqlite) and add a whole bunch of new code to ml_ipod itself.

Personally, I can't do that, simply because of the time it takes.

As a result, we have to admit: No nano 5G support with ml_iPod! Apple won. We have to use iTunes for the nano in the future. Too bad.

Status iPhone/iPod touch with firmware 3.x or higher

Same thing as with the nano 5G: iTunesCDB and some hashed sqlite databases on the device. No iPhone/iPod touch with firmware 3.x or higher with ml_iPod!

Status iPod shuffle 3 gen

Same thing as with the nano 5G: No iPod shuffle 3 gen with ml_iPod!

Internals

The problem is not to access the device, we worked that out even for the iPhone and iPod touch long ago. It's the internal structure of a binary file (called iTunesDB, or iTunesCDB in newer firmwares), and that is protected and changed all the time by the Apple guys. It's really a pity. Apple is driving me nuts with their change of database format with every SW release. Personally, I gave up, and as long as nobody else wants to step in here, we're lost. Sorry.

The Future: libgpod again???

In the early days, ml_ipod was a fork of what would become libgpod later... so the roots are the same. To keep ml_iPod up-to-date, it would be necessary to change all the code to use the current libgpod. So if libgpod (with a whole bunch of devs) managed to do it, it should be possible to add that to ml_ipod. If you are a C++ developer, you are more than welcome to go for it. Read the "developers corner" in the Wiki first, to get you started.

Personal tools
Translations of the Wiki