Okay here is what I did in detail to unlock my iPhone 3GS with iOS 4.0.2. Note this should work with iPhone 4 but I haven’t personally tested it. I did this on Windows 7, if you have XP the paths to some directories will be different and same with macs.
The most important part is the downgrading step. The unlocking part is analogous to all other unlocking procedures. I used jailbreakme.com and ultrasnow from Cydia.
Downgrading:
1. Backup up your iPhone using iTunes. Right click on your iPhone from iTunes and select backup. This will ensure that when we’re done we can restore the backup and all your contacts, apps, music etc. You will need this since a restore, which we will do in the next step, wipes your phone back to factory settings.
2. Perform a normal restore on your phone. It’s the big button on the main iPhone page in iTunes that says restore. This will restore 4.0.2 (that’s not a typo, we’re not at 4.0.1 yet) on your phone wiping it clean, especially important if you bought an iPhone 4 with 4.0.2 preloaded. The point of this step is that iTunes will download the 4.0.2 firmware and put it in C:Users\AppDataRoamingApple ComputeriTunesiPhone Software Updates. We will modify this firmware package in the following steps.
3. Download the 4.0.1 firmware from http://www.felixbruns.de/iPod/firmware/ depending on your device (3GS, 4 etc). Download winRAR if you don’t already have it, rarsoft.com
4. Extract the 4.0.1 firmware package using winRAR into a folder. Using notepad open the buildmanifest.plist and restore.plist and perform a find and replace on the string 8A306 replacing it with 8A400. Essentially what we are trying to do is trick iTunes into thinking that the firmware is 4.0.2 when it really is 4.0.1.
5. Now using winRAR open the 4.0.2 firmware package that was downloaded by iTunes and stored in the folder mentioned in step 3. Simply drag and drop all the files in the 4.0.1 extracted folder onto winrar and this should add an replace all the files into the package. Once that is done, using winRAR, delete all dmg files that end with 002. Our new firmware package is now ready.
6. Open your hosts file. C:WindowsSystem32driversetc. Add 74.208.10.249 gs.apple.com line. Open notepad using Run as Adminstrator. If you have an antivirus it may ask you to “Allow” the change once you save the file.
7. Now here’s the climax. Restart iTunes if you haven’t already. Sometimes iTunes will have the firmware cached so it will not re-extract the package. To force the re-extracting we need to restart iTunes. Put the phone in DFU mode. To do this: Once iTunes is restarted with your iPhone connected to your computer hold the top button and home button together for 10 seconds. Once you see the apple logo on the phone let go of ONLY the top button and keep holding the home button. Hold until iTunes prompts you with a message saying that your phone is in recovery mode and needs to be restored. (You’re now in DFU mode)
8. Restore your phone again through iTunes. This time iTunes will think that it has already downloaded the firmware and has it in the folder in step 3. Little does it know that we’ve changed the contents of the package. iTunes will verify that the package is indeed 4.0.2 but since we changed the *.plist files to the new version the verification will pass. The package will be opened and 4.0.1 will get installed.
9. Once restored iTunes will ask you if you want to restore a backup. Simply select the backup we made in step 1 and restore it. Check your version under settings of the iPhone, it should say 4.0.1, probably a sight for sore eyes by now!!
10. Follow normal steps to jailbreak and unlock.