Downgrade from iOS4 to 3.1.3

As many of you already know Apple released iOS4. It has some great features, however iOS4 has some compatibility issues with some programs that I require for work (e.g. Cisco VPN) and others.

I tried for some hours and then I decided to downgrade back to iPhone OS 3.1.3 and upgrade when some of those apps are updated for iOS4. After doing some research on the internet I found the following method that allowed me to downgrade from iOS4 with no problems:

1- The first thing that you have to do is to make sure you have latest iTunes installed (I used 9.2) and connect your iPhone to your computer (I use a Mac).

2- Need to download the original iPhone 3.1.3 firmware from here http://www.iclarified.com/entry/index.php?enid=750.

3- Then you need to put your iPhone 3G/3Gs in DFU mode:

With the iPhone connected to your computer turn iPhone off.

Hold power and home together for 10 seconds.

Release power but keep holding home until the computers beeps (observed on a PC) as a USB device is recognized (no beeps in Mac).

A few seconds later iTunes should detect your iPhone and you will get a message that a phone has been found and must be restored.

If the Restore Logo is present on the screen, you are in Recovery Mode, not DFU (try again).

3- Once your iPhone is in DFU mode, Hold Option key (in Mac) while clicking Restore in iTunes and browse for the OS 3.1.3 or below firmware for your iPhone 3G/3Gs. Now the restore process will take 10 – 20 minutes.

4- You will get an error message like 1011, 1013, 1015, just ignore it (Actually the firmware 3.1.3 is already successfully installed) and use irecovery to get the hold of your iPhone again.

5- Download iRecovery irecovery-mac. Once downloaded expand it on any directory that you like.

6- Start Terminal in Mac and run “iRecovery -s” on the directory that expanded irecovery to.

7- Within the utility run the following commands:

setenv auto-boot true
saveenv
reboot

8- Your iphone will reboot. Once it is back on just restore your backup.

9- You iPhone should be back on 3.1.3