For a moment there, I actually thought I had jailborken my iPhone. (Get it? Jailborken, as in borked? As in temporarily bricked?)
This took quite a few attempts, though, so I’ll just outline what worked for me.
- If you get a 1604 error, try a DFU restore instead of a recovery. DFU is where you hold down the sleep+home buttons for 10 seconds, then release just the sleep button, still holding down the home button – there are more guides on the net, but you’ll know if you’ve done it right from the fact that nothing appears on the screen and it doesn’t power up in any way.
- If you get a 1600 error, try restoring from recovery mode instead of a DFU restore. Restore mode is where you hold down the home button, then plug your iPhone into iTunes. You’ll know if you’ve done it right from the fact that there’s a USB cable pointing to iTunes on the iPhone screen.
- Preventing these errors isn’t something I’m that sure about. There were times when I thought it wasn’t going to work, but a quick reset of the phone fixed that.
I also encountered what I’ll term the “error 1604/1600 merry-go-round of hell” (or death, depending on your personal preference), where I would do a DFU restore to be greeted with a 1600 error. I would then try a recovery as per my own “research” (comments on the dev-team blog, haha), only to be greeted with a 1604 error. This carried on until…
…I found a blog post explaining how to circumvent the errors altogether. It involves some possibly dodgy, third-party, non dev-team-sanctioned software, but hey – it worked for me.
I now run iPhone OS 3.1 quite happily on my iPhone 3G, and everything’s all right with the world.
So I’m cheating a little in this particular blog post (part of Blogtober 2009) – I’ll just set the date of publishing back to the third, and no one will be the wiser! I love WordPress. 🙂