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

    Joined:
    Sep 6, 2010
    #1
    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