A friend had a jailbroken and unlocked iPhone 3G with his T-Mobile service. He had paid someone to upgrade the iOS to the latest 4.0.2. Unfortunately, the hardware on his iPhone 3G was incapable of running iOS 4.0.2 efficiently and would freeze every minute for several seconds. In his words, it was unusable. When he asked that same person to downgrade the iOS, he was told that it was impossible. Which is when he turned to me for help. (Cue Mission Impossible theme music.)
After some research, I found that iOS 3.1.2 was the best version to downgrade to because it was the version most commonly jailbroken and unlocked with by others. There is an iOS 3.1.3 version but I figured it was better to stick with the tried and true. Also, I found that it was easy to downgrade an iPhone 3G but not an iPhone 3GS. For 3GS and later models, you had to save some configuration data off the iPhone before doing the upgrade in order to allow the possibility of doing a downgrade later. Whew, dodged that one.
One area of concern was that my friend’s iPhone 3G’s baseband version was also upgraded to the latest 05.13.04 version (used by the phone functions) which usually came with iOS 4.x. All references to 3.1.2 unlocking referred to older baseband versions, such as 04.26.08. So I was concerned that downgrading to iOS 3.1.2 but keeping the later 05.13.04 baseband version would make unlocking unfeasible. However, I found that the latest UltraSn0w was reportedly able to unlock 05.13.04 baseband and decided to use it with success. (There is an iPhone app called FuzzyBand that reportedly makes it as easy as pushing a button to downgrade the baseband version.)
Note: I did the downgrade steps on a Windows 7 64bit platform but it should work fine for Windows 7 32bit or Windows XP.
Here are the steps that I took to downgrade the iPhone 3G (these steps may not be 100% comprehensive because I am writing this from memory and some notes):
- You can leave the T-Mobile SIM card in the iPhone during the whole downgrade process.
- In the last steps, you will need a wireless wifi network which the iPhone can access.
- Make sure you the following installed or on your hard drive:
- Install an iTunes 9.x version such as iTunes 9.1.1. iTunes 9.x is commonly used by everyone when jailbreaking/unlocking iOS 3.x.
- Use a non-IE browser such as Firefox or Chrome to download the iPhone 3G iOS 3.1.2 firmware from apple. You will download an .ipsw restore file. (If you use Internet Explorer, you will end up with a .zip restore file; you should be able to rename it to be .ipsw but I’m not sure I would trust IE.)
- Download the RecBoot utility for Windows. You will need this program to force your iPhone out of recovery mode below.
- Download RedSn0w 0.9.4 for Windows, which will be used to jailbreak the iPhone iOS 3.1.2. There are later versions of RedSn0w but 0.9.4 is the last version to recognize iOS 3.1.2. (When you click on the download link, it will take you to a RapidShare page which is a little confusing… just click on the “Slow Download” button on the bottom right.)
- Run iTunes.
- Connect the iPhone 4.0.2 to the computer. You will get an iTunes error saying that you need iTunes 9.2 to sync with an iPhone 4.0.2. According to the web, this is not a problem when you put the phone into Device Firmware Upgrade (DFU) mode. (I went the long and wrong route of installing iTunes 9.2, restoring iOS 3.1.2, and then re-installing iTunes 9.1.1.)
- Put the iphone into DFU mode by holding the power and home button for 10 seconds, releasing the power button but keep holding the home button until iTunes detects that the iPhone is in recovery mode. Here is a nice visual guide on how to do this.
- In iTunes, when you select the iPhone details, you will see a Recover button. Hold the shift key and click on the Recover button.
- Select the iPhone 3G iOS 3.1.2 restore .ipsw file that you downloaded above. iTunes will then restore the iPhone to that image.
- When the restore to iOS 3.1.2 is completed, the iPhone will come up in recovery mode. This is okay; the iPhone has been downgraded to iOS 3.1.2 successfully and you do not need to do another iTunes restore.
- Run the RecBoot utility and hit the “Exit Recovery Mode” button to take the iPhone out of recovery mode. The iPhone will restart and you will see a “Slide for Emergency” screen.
- Exit RecBoot. RecBoot may leave an orphaned black command “cmd” window behind; if you see it, manually exit it by clicking on the top-right X button.
- Exit iTunes.
- Run the RedSn0w 0.9.4 utility to jailbreak the iPhone iOS 3.1.2.
- Browse to the same 3.1.2 restore .ipsw file.
- On the next screen, make sure “Install Cydia” is selected. Leave the rest of the options unchecked.
- On the third screen, RedSn0w will prompt you with onscreen instructions and countdowns to put the iPhone into DFU mode. (According to one source on the web, if you have problems with this step, you can put the iPhone into DFU mode first and then run RedSn0w… but I have never tried this method.)
- Once RedSn0w is complete, the iPhone iOS 3.1.2 will be jailbroken. However, the T-Mobile phone service will not work until after we do the unlock step below.
- At this point, you can disconnect the iPhone from your computer if you wish to.
- Configure your iPhone to connect to the wireless wifi network.
- On the iPhone, disable the auto-lock by going to Settings->General->Auto-Lock and selecting Never. The steps below will take longer than 1 minute and it is annoying if the iPhone locks while you are waiting for some task to complete.
- Run the Cydia application. You will need to have patience as Cydia will take like 10 minutes or more to load, reorganize, and upgrade its packages; answer yes to upgrade all packages when you are prompted. You may need to exit and restart Cydia more than once. The second time you run, Cydia may take several minutes so have patience. (Later times when you run Cydia, it will take about a minute to load but that is way shorter than the initial run.)
- Once Cydia is up and running, search for “UltraSn0w” and install it. You don’t need to explicitly run UltraSn0w; just installing it will unlock the iPhone to be able to use T-Mobile.
- At this point, you should be able to make and receive phone calls and do text messaging.
- Configure the T-Mobile EDGE Internet service:
- Go to General->Network and set “3G” to off and “Data roaming” to off.
- Go to General->Network->CellularData and input into the “APN” field the value “epc.tmobile.com”.
- Under MMS section, input the following:
- MMS APN: wap.voicestream.com
- MMSC: http://mms.msg.eng.t-mobile.com/mms/wapenc
- MMS Proxy: 184.108.40.206:8080
- MMS Max Msg Size: 1048576
- MMS UA Prof URL: http://www.apple.com/mms/uaprof.rdf
- Leave anything not mentioned above as blank values.
- Disable the Wifi in order to check that your T-mobile broadband is working by running the browser. You should see a “E” symbol (I guess it stands for T-Mobile’s EDGE network) near the top-left corner of the iPhone screen.
- I could not get Youtube working. There used to be an app on Cydia called “Push Fix” or “Push Fix & YouTube” that would easily fix this issue, but I can no longer find it. I did find some hints that it may be related to security keys and found some steps to manually fix it… but didn’t try it.
- Re-enable the auto-lock by going to Settings->General->Auto-Lock and selecting “1 Min”.
Optionally, you may wish to install the app Installous which is much nicer and faster than Cydia for finding applications.
Hopefully, the above will help you should you encounter this same downgrade situation. Good luck!