How can I write software that allows for any firmware version on your iDevice?

Discussion in 'iPod touch Hacks' started by BenjaminD, Sep 7, 2010.

  1. BenjaminD macrumors newbie

    Sep 6, 2010
    Hello everybody!
    This is my very first post on your forum, and I don't even know if I'm posting this in the right section.
    Recently I downloaded the 3.1.2 firmware, and freaking iTunes denied me downgrading my 4.0 firmware to 3.1.2!
    I quickly discovered that this is because Apple have "invalidated" any firmware below 4.0, which I don't see ANY reason to do! - So pissed of as I was, I decided to write my own piece of software that allows the user to downgrade to any firmware version they wish.
    Here's a list of the things that (to my understanding) is required to actually bring this software idea to life:
    • My own USB driver (to establish a connection between my program, and the device).
    • The device has to be in DFU mode.
    • The device's memory map (so I know where to place the various parts of the decompressed firmware).
    And now, for a closer look of the list:
    My own USB driver: I expect to write this device driver in Xcode using the IOKit framework.
    The device has to be in DFU mode: This is kind of self explanatory, but it is just as much an opportunity to ask a question: Does the device actually have to be connected with iTunes once in DFU mode, to continue the process - or just a computer?
    The device's memory map: This also is kind of self explanatory, AND like the above point, just as much an opportunity to ask a question: Does anybody know the memory map of the iPod touch 2G? - Or does anybody know where I can find it?

    The first version is only going to support the iPod touch 2G, but I might expand it to support all of the iDevices.

    I assume I do, but do I REALLY have to write the USB driver? - I've developed my own GUI OS for PCs before, so it's not because I don't know how to operate in this level of the computer, but just because I know how hard it is to write safe and stable software at that ring level!

    If you need any more info, just ask, and I'll be happy to provide it :).

    Just in case you are in doubt of what my actual question is, here it is: Am I approaching this right? - Can I actually pull this idea off with what I wrote above?

    Best regards,
    Benjamin :apple:.

Share This Page