Users who want to downgrade their iPhone 3G and iPhone 3GS devices after accidentally upgrading to iOS 4 will find this guide useful, thanks to commenter Kamrul for the simple and straight forward steps. It has been tested to work on both iPhone 3G and iPhone 3GS.
Please note that this only works with OLD bootrom and you need your SHSH blobs saved on cydia before you can do this downgrade.
1. Open the file C:\Windows\System32\drivers\etc\hosts (Windows) or /etc/hosts (Mac OS X) and add the following entry to the bottom of the file.
2. Connect your iPhone to the USB and put it into DFU mode. iTunes will display an alert stating you need to restore your device, click ok then hold option + click restore and navigate to your previously downloaded 3.1.2 FW.
3. After the restore finishes you should be hit with a 1015 error. That’s expected. Your phone should be in Recovery mode now and iTunes will tell you to restore again. Click OK then hold option + click on restore again – this time you do not have to go into DFU mode – and navigate to the 3.1.2 FW.
4. After the restore finishes again it’ll throw another 1015 error. That’s expected again. This time, just select OK and close iTunes. Fire up redsn0w – make sure it’s the 0.9.4 version – and jailbreak as normal. Uncheck all the ticks while jailbreaking.
5. After the jailbreak is finalized your device should reboot and strange enough you successfully downgraded to 3.1.2.
– Heaps of ipsw available here
Update: If your iPhone goes in Recovery Mode loop, use RecBoot to get out of it. It is a brilliant application which will get you out of continuous never-ending loop.
Disclaimer: Please make sure that you have ample hands-on experience before trying your hands on this one. AddictiveTips won’t be liable for any damages that may incur to your device during the process.