A few people here at MacTalk have successfully updated their iPhones to firmware 1.1.2. This thread is intended to provide a guide to updating successfully, and offering whatever troubleshooting we can offer.
But first some details. This guide is intended for those who are successfully running firmware 1.1.1 unlocked, but is not intended for IPSF (iPhoneSimFree) unlocked phones, or phones running 1.0.2. Here's why.
The 1.1.2 update includes a new version (04.02.13_G) of the modem firmware (or baseband.) If you have been running firmware 1.0.2 and you unlocked your iPhone with any version of anySIM prior to 1.1 (or iUnlock or unlock.app) you may need to revirginise your baseband first. What does this mean? There is a unique token in your baseband which identifies your iPhone. Early versions of the unlock inadvertently corrupted that token (which is part of your seczone.) If that token is not present when updating the baseband to a newer version, you may end up with a locked and corrupted baseband, and an iPhone which will refuse to work as a phone (as we witnessed when people first applied the 1.1.1 upgrade.)
The IPSF unlock (at least the early versions) zeroed out the token in your secpack. If you are an IPSF unlocker, I cannot guarantee you won't brick your phone in the process of upgrading, or following any part of this guide. Remember to jailbreak you'll need to do so from 1.1.1.
If you have revirginised your iPhone, then unlocked with anySIM1.1+ the Update to 1.1.2 will overwrite the unlock. If you have any issues it may help to back up your relocked secpack. This should allow you to recover from most situations. I can vouch for being able to get back to a locked 1.0.2 virgin firmware, after fucking this up over the weekend.
Please note, this is not a straightforward process. You run the risk of permanently disabling your iPhone, and losing all your data. Please do not proceed unless you're aware of the possible consequences, and are happy to take the risk. This guide is only a work in progress, and I'm sure by the time I wake up tomorrow, they'll have made a one-click GUI for the whole process.
WHAT YOU'LL NEED
- A Mac (they smell nice, plus, if you're on PC, this guide will be only partly useful)
- Wireless network
- iTunes 7.4.x (preferably, iTunes 7.5 should be fine, but you'll need the mobile device library from iTunes 7.4.2 for iNdependence)
- iNdependence 1.3beta2 (or iNdependence 1.2.5)
- 1.0.2 firmware
- 1.1.1 firmware (without the jailbreakme.com TIFF exploit patched)
- 1.1.2 firmware (you can let iTunes download that for you if you're a trusting soul)
You can find links to the Apple versions of the firmware here, but you may need to look harder for an earlier version of the 1.1.1 firmware (pre-TIFF exploit patch by Apple)
- AppTapp installer
- anySIM 1.2.1u (the version modified by the iphone-elite-team to include the 04.02.13_G secpack. Read the warnings on the front page. Do NOT run under 1.1.2)
- The official Dev Team jailbreak for 1.1.2 (jailbreak.jar, a Java archive, which will also run on Windows with the supplied .bat file.)
- These AU specific files (inc. modified AppSupport, Telstra and Optus .plist files and UIPhoneFormats.plist.) This link will expire in a week.
STEP 1: Sync your phone
Connect your iPhone to your computer, start iTunes (if it doesn't open automatically) and sync your phone. When you sync your phone, iTunes updates (or creates) a backup of much of the important information on your iPhone. When you go to set-up your phone again after the update, you'll find it much simpler if you have a current backup.
STEP 2: Update to 1.1.2
This step assumes you are running firmware 1.1.1. Under the Info tab of the iPhone, you'll find a button that says 'Update.' Press it and you'll be asked if you want iTunes to check for the most recent version of the firmware. If you've already downloaded it, it will begin to unzip, otherwise the 160MB file will start downloading from Apple.
Let iTunes do it's thing, might take a few minutes because it has to upgrade the baseband. The new modem firmware is the important step at this stage.
STEP 3: Put the phone in DFU mode
While still connected to iTunes, hold down the iPhone home button and then the sleep button until the screen goes black. Release the sleep button, but hold onto the home button until iTunes recognises the iPhone in 'Restore Mode.' The iPhone screen should remain black. If you see the iTunes icon and iPod cable with an arrow, the downgrade will not work; error (1), IIRC.
STEP 4: Downgrade your firmware to 1.0.2
You will only have the option to Restore here. Make sure you hold Option when you click Restore. This will bring up the dialogue box to locate the firmware of your choice. Select 'iPhone1,1_1.0.2_1C28_Restore.ipsw'
The firmware will now downgrade to version 1.0.2. It will attempt to write an earlier version of the baseband, but when the versions don't match, iTunes will stop and show an error (1013) and put the phone in Restore Mode.
STEP 5: Unlock and Activate firmware 1.0.2
Open iNdependence and wait. It should kick the iPhone out of Restore Mode. Quit iNdependence and reopen it (voodoo, I know, but it seems to help.) Click the Activate button. This should jailbreak and Activate the phone (after you follow the instructions.) If it fails, quit the app and try again.
STEP 6: Install and run anySIM1.2.1u
Use iNdependence to install SSH/SCP/SFTP etc. Then, you must make sure the anySIM 1.2.1u folder is renamed anySIM.app (capitalisation important) by using Get Info from the File menu. (This includes all 19 files in the directory, the .pngs etc. as well as the anysim .exe file.) If it is not correctly named, the procedure will fail. Back in iNdependence, go to the Customize tab, click Applications/User, then click Add. Navigate to where you have saved the anySIM 1.2.1u app and select it. You'll need to enter the iPhone's wireless network address and password. iNdependence should look after correct file permissions.
iNdependence should restart Springboard and put you back on the slide to unlock screen. If it doesn't for any reason (e.g. my wireless network was causing issues at one point) you might like to make absolutely sure by removing it and reinstalling it.
*see note below about performing this step in 1.1.1, or alternatively, doing it all under 1.0.2
STEP 7: Restore firmware 1.1.1
Option-Restore from iTunes and select iPhone1,1_1.1.1_3A109a_Restore.ipsw (this needs to be an early version, before the TIFF exploit was patched.) Once the Restore is finished, iTunes will show an error (1015) and put the phone in restore mode.
Quit iTunes and use iNdependence to get the phone out of Restore mode. Wait a minute or so (longer if you like) but if this does not work, like it failed to for me, Option-Restore the 1.1.1 firmware again. This allowed iNdependence to bump the phone out of Restore mode, second time lucky in my case. If that fails, you can also try using iPhuc to issue the following commands to get the phone out of Restore mode;
Code:
cmd setenv auto-boot true
cmd saveenv
cmd fsboot
STEP 8: Activate and Jailbreak firmware 1.1.1
This has been documented well; use the emergency dial pad to dial *#307# etc. to access the prefs, select a wireless network and browse to
http://www.jailbreakme.com
Select Install AppTapp at the bottom of the page. This will install Installer.app, jailbreak the phone, and patch the TIFF exploit, returning you to the Activation screen. Wait a few minutes to let the phone reboot and you should be back on the Slide to Unlock screen. If it fails you will see the Activation screen again; you can try Option-Restoring again, or find an earlier version of the firmware.
STEP 8a: Install OktoPrep
The jailbreakme.com exploit should have installed Installer.app for you. You may need to update Installer.app, then install OktoPrep (from the Tweaks (1.1.1) menu)
STEP 9: UPDATE to firmware 1.1.2
First time around, it didn't matter whether you Updated or Restored to 1.1.2.
This time, you must Update. If you Restore, you'll overwrite the OktoPrep and won't be able to jailbreak. Quit iTunes.
STEP 10: Jailbreak 1.1.2 and install SSH
On the Activation screen (which now looks like the Connect to iTunes screen, with an emergency dial pad in several languages) make sure your iPhone is connected to your computer. Double-click the jailbreak.jar file from the
DevTeam jailbreak you downloaded earlier. This should include the necessary Java library.
On the first screen, the jailbreak gives you the option to install SSH. Check it, as you want to be able to alter some files to run on Australian networks. When it's all done, it will ask you to restart, then it will force another restart itself.
STEP 11: Modify the phone and SMS apps for Australia
Download these
AU specific files; (
Thanks, anarchron for the Telstra .plist)
Code:
/System/Library/Frameworks/AppSupport.framework/AppSupport
/System/Library/Frameworks/CoreTelephony.framework/Support/Telstra_Australia.plist
/System/Library/Frameworks/CoreTelephony.framework/Support/Optus_Australia.plist
/System/Library/Frameworks/UIKit.framework/PhoneFormats/UIPhoneFormats.plist
*You can view and edit .plist files using this handy little utility called PrefSetter
I've included Telstra and Optus .plists, but have a look and you'll be able to work out any others that are needed e.g. Vodafone. I've added the ability to edit Edge (GPRS) settings (apn/username/login) as this was not enabled by default.
For more information on how to edit the AppSupport file, read this post in this hackint0sh thread. The timschuerewegen dude made this rocking little utility which extracts a data table containing info about recognising and handling phone numbers in various countries.
STEP 12: Create symlinks for your new Australian carrier .plist
You'll need to install the BSD subsytem via Installer for this step. Then fire up the terminal, ssh in to the phone and enter the following;
Code:
cd /System/Library/Frameworks/CoreTelephony.framework/Support/
ln -s Telstra_Australia.plist 50501
Just alter the names as necessary.
Telstra=50501
Optus=50502
Vodafone=50503
(See the entire list
here at Wikipedia.)
You'll need to restart the phone with a different SIM (perhaps the orig. AT&T SIM) then switch back to your SIM for the symlinks to take, apparently.
You might now be good to go with firmware 1.1.2
NOTES: These steps are probably unnecessarily complex. You may not need to go all the way down to 1.0.2. I didn't have any luck at the 1.1.1 firmware level, the phone kept getting stuck in DFU mode, and endless reboots. Only a restore to 1.1.2, and back down to 1.0.2 got me back working again.
When you restore from 1.1.2 to 1.1.1, apply the Restore twice if you can't get out of DFU mode. If you can get to the Activation screen, you're good to go (assuming the jailbreakme.com TIFF exploit works.)
Finally, virtually none of this info is mine. I just thought it would be good to put it in one place after wasting a large part of my weekend. Thanks to anarchron for the carrier .plist, and go read all the hundreds of posts at hackint0sh, just like I did, before posting here. We can edit as we go with new info.
_______________
FURTHER NOTES:
A Mr. Lefteris, from Athens, Greece, has kindly posted his successful experience further into the thread explaining how it might be possible to go straight from firmware 1.0.2 to 1.1.2 by installing OktoPrep in 1.0.2. Thankyou, sir.
I can also confirm that from firmware 1.1.2, it is possible to force DFU mode and use iTunes to downgrade (Option-Restore) firmware 1.1.1, jailbreak, OktoPrep, and Update back to 1.1.2 then jailbreak.jar. In my case, it was necessary to setup the iPhone with the backup I made previously in 1.1.1, which restores your Address Book, SMS and call data etc.