downgrade ios 4 – Stay N Alive

How to Downgrade From iOS 4.0 to iOS 3.1.3 Firmware on the iPhone

Recently, after the excitement of upgrading to iOS 4.0 this last week, I had need to downgrade again so I could sell it in preparation for my new iPhone 4.  There are many others who say iOS 4 is slow on their iPhones and also want a way to downgrade.  Previously, there were ways to downgrade if you had the iOS 4.0 beta installed, but since the final release, Apple seems to be verifying new restores, and doesn’t seem to want people to downgrade to the 3.1.3 firmware.  You can tell from the long list of support requests in the Apple Support Forums.

I finally found a way to make this work, thanks to combined help from GadgetsDNA and MacLife.  It seems that Apple is checking a server at gs.apple.com, and if you previously saved your ECID SHSH certificate to Saurik’s authentication server you can trick iTunes into thinking his server is their own and go through with the install.  If you haven’t saved your certificate (you may have done this if you jailbroke your iPhone before), feel free to try this and let me know if it works, but I hear unfortunately there isn’t yet a way to make it work.  I hope to be proven wrong.

So here’s what you need to do:

  • First, you need to trick iTunes into thinking Saurik’s server is Apple’s.  To do so, you need to find your hosts file (On a Mac, this is on /etc/hosts.  On a PC, this is in c:\windows\system32\drivers\etc\).  Once you’ve found it, edit it, and add the line, “74.208.10.249 gs.apple.com” to the end.  This points gs.apple.com to 74.208.10.249.
  • Next, you need to put your phone in restore mode in preparation for the restore.  To do this, just disconnect your iPhone and turn it off (do this by holding down the power button until you see the “power off” slider).  Then hold your home button while you reconnect the phone to your computer.  Keep the home button pressed until iTunes opens and gives you a message saying you need to restore.
  • Now, you’re going to need a 3.1.3 firmware file.  Here is one for the 3GS.  Here is one for the 3G.  To load the file, hold down the alt button on a PC, or on a Mac, hold down the alt/option key and click “Restore” in iTunes.
  • Wait for the restore, and if it works when you’re done, it should reboot into 3.1.3 and you’re done!
  • For me, I got a 1015 error, so I then went and followed the instructions MacLife to complete the restore process.  To start, you need to download iRecovery (I only have the Mac version) and libusb.
  • With iRecovery downloaded, go to the directory you downloaded it to and type:

./iRecovery -s

setenv auto-boot true

saveenv

fsboot

exit

  • Now, you just need to reboot the phone and you’ll be back to iOS 3.1.3!  To reboot the phone, just hold down the power and home buttons until you see the Apple logo.

Let me know how this works for you.  Oh, and do so at your own risk!  While I don’t anticipate these steps hurting your phone, I offer no guarantee and there is always a chance doing steps Apple didn’t intend will break your phone.