I picked up a second-generation iPod Touch over the holidays, as Amazon had the 8 GB version on sale for just a little over $200. I always justify these things as "for development purposes" so as to get my wife's approval, and truth be told, that's pretty much what I wanted it for. I figured it would be a much cheaper way to get into iPhone development, and I'd jailbreak it so that I could even bypass the $99 annual fee that is normally required to put your app on an actual device.
As it turns out, Apple changed some internal hardware just enough between the two revisions of iPod Touch that the usual one-click solutions didn't work with my device. I was ready to throw in the towel and pay the fee until I ran across the redsn0w solution from iPhone Dev Team. It's still a work in progress, so the jailbreak procedure is tedious and error-prone. It also comes with one hell of a caveat: it will not boot without the assistance of a computer attached via USB cable. Still, in practice the only scenario I could think of when I'd run into this problem is if the battery runs out while I'm listening to music, and I'm pretty good about recharging my portable devices, so I decided it was worth the hassle.
There's been a ton of forum posts, blogs, and videos detailing the process, and while I was eventually able to use this one with success, there were two important details that I didn't catch onto until I read the entire thread. The first is that there is a difference between "DFU Mode" and "Recovery Mode", and timing is critical in order to get into one mode versus the other. The second takeaway is that towards the end of the procedure, at the point that your iPod screen turns completely white, you have to use an alternate method to get into DFU mode. Before this step, you can simply:
- Connect iPod to computer
- Hold Sleep/Wake+Home buttons for 10 seconds
- Release Sleep/Wake but continue holding Home for 7 seconds
- Connect iPod to computer
- Hold Home for 5 seconds
- Continue holding Home + hold Sleep/Wake for 10 seconds
- Release Sleep/Wake, continue holding Home for 15-20 seconds