iPhone downgrade to 1.1.1 then upgrade to 1.1.2


OK, I had some trouble getting an iPhone (jailbroken, but locked) to work and now it is always in recovery mode. After much searching, “iphone.unlock.no”:http://iphone.unlock.no/#recovery-restore-mode seems to have the answer, which is to downgrade to 1.1.1. The biggest problem is that I forgot that you have to recover the firmware back to the 1.1.1 version. So you have to do two downgrades. First with recovery mode and then with the firmware reload. It is incredibly confusing and I made mistakes all day, so here is a detailed guide:

# Assuming you have a phone that doesn’t have 1.1.2 preinstalled (e.g., has a newer boot loader), do the following
# Check your version of itunes, it needs to be version 7.5 or lower. Get older version from “filehippo.com”:http://filehippo.com/download_itunes/3402/. On a PC, goto control panel/add and remove programs and uninstall itunes, then run itunes 7.5 installer. On a Mac, delete the iTunes in /Applications and then delete /System/Private Library/Mobile Framework and then install itunes 7.5
# Now turn off your iPhone by holding the power button for 15 seconds, plug your iPhone into your PC. Hold the HOME and the Power button for fifteen seconds. The thing will come on with an screen saying plug into the PC.
# Now download 1.1.1 from “iphone.unlock.no”:http://iphone.unlock.no/#restore-firmware-files list of firmware locations
# Start iTunes and you should see a screen that says iPhone is in recovery mode and you have two options, Restore or Upgrade
# Now hold the Shift key and click on Restore, if you’ve got a PC, on a Mac, it is Option and click on Restore and select the 1.1.1 ipsw file you downloaded earlier. Repeat click on RESTORE.
# The firmware will then reload and you will get an error from iTunes that is normally 1604 or 1015, this is superious but you will still see the recovery screen, so you have to kick it out with a PC/Mac program.
# Exit itunes.
# Download the “1.1.2 Jailbreak”:http://conceitedsoftware.com/iphone/site/112jb.html. Turn off any firewalls like Zonealarm on your PC. Install “Java”:http://java.com if you have a PC. Macs already have Java on them. Run Windows.bat on your PC. Run jailbreak.jar from your Mac.Click on _Boot from Recovery_ and you should see the thing reboot into a normal screen. You might have to Control-C the Java program as it can hang waiting for reboot.
# You should now see the Activate iPhone screen on your iPhone
# Now “Bypass Activation”:http://iphone.unlock.no/#Bypass-Activation-and-Jailbreak by putting a Sim card in and then you go thought this very complex sequence, where you slide for emergency
# Dial *#301# which makes the phone call itself
# Answer the call and tap Hold and Tap decline. This gets you to the dialer screen. Nice trick!
# Tap contacts and then the + icon and then Add new URL called _prefs:_ and then add another called _i.unlock.no_ and choose Save
# Now tap on the prefs: URL and you magically get to the settings menu. Click on About and make sure you are at 1.1.1. Sometimes the install fails and you’ll have to try it on another computer
# Tap on Wifi and connect to your access point
# Tap on Autolock and select never
# Tap on HOME, slide the emergency call unlock and dial 0 call and get back to the full dialer screen
# Tap on Contacts and tap on the contact you just made
# Tap on i.unlock.no and you should get to Safari and then hit the jailbreak me link
# At this point you will have 1.1.1 firmware and some strange baseband most likely the 1.1.2 version which is 4.02G, so if you just want to get your phone working again, you have to downgrade the firmware too. Note that if you are just going on to 1.1.2, you don’t have to do this since unlocking 4.01G (1.1.1 baseband) doesn’t help you with 4.02G (1.1.2 baseband)
# As “i.unlock.no”:http://iphone.unlock.no/#how-to-jailbreak-1.1.2-and-1.1.3 says, Tap on the Installer icon and then go to Tweaks 1.1.1 and install Oktoprep
# Now download the 1.1.2 firmware, connect the phone to the computer and open iTunes, it will show a screen saying, hey this is a new iPhone, what do you want me to sync. Don’t sync to anything
# Now hold down the shift key for windows or option key for Mac
# _Note Hit UPGRADE, not RESTORE_, I made this mistake all day, you are not restoring but upgrading and you don’t need to put the iPhone into recovery mode.
# After the installation is finished, you have have an activation screen
# Exit itunes
# You should already have jailbreak 1.1.2 on your PC or Mac somewhere, run windows.bat or jailbreak.jar for PC and Mac respectively. Click on install SSH and change the password from alpine and remember that password. Jailbreak.jar will now upload lots of stuff and you should see all kinds of numbers flying by as it uploads 31MB worth of junk. You will also se a progress button saying Jailbreaking…Reading flash image and then writing flash image and finally it will say your device will reboot several times and you should be jailbroken
# Now you can unlock your phone, first tap on Settings and enable Airplane mode
# Tap on Setting and General and make sure you are in Auto lock never
# tap on Installer and then Utilities category and locate anySIM 1.2.1, (Don’t run this unless you are in Airplane mode!)
# Since 1.1.3 didn’t break the “IPSF exploit”:http://iphonejtag.blogspot.com/2008/01/113-unlock-and-linux-driver.html you can unlock the 1.1.3 baseband.

The main tricky part I’ve noticed is that there is something called the Mobile Development framework. You can really get Independence confused by what is there and you get this strange “FAILURE. Error registering for callbacks from iPhone.” As “modmyiphone.com”:http://www.modmyifone.com/forums/showthread.php?p=161617 says, you have to go to /System/Library/PrivateFrameworks/ and delete the MobileDevice.framework folder and reinstall iTunes 7.5 or lower. Actually the post says 7.6 works, but the documentation in Independence 7.2 says you need 7.5 or lower. Go figure.