Today I've successfully updated my 1st generation iPhone to the latest firmware version 2.0.
Before I'm going to provide step-by-step instructions I'd like to clarify a bit about version numbers:
As of this writing there are two major versions of the iPhone available: The first generation which did not support 3G networks and the second generation which does support 3G networks. My post only relates to the first generation of the iPhone. So in case you want to jailbreak the 3G version of the iPhone, this post is not for you!
As always I've followed my instructions with my personal iPhone and they worked perfectly well for me. However, I do not grant any warranties whatsoever and I will not take any responsibility. Do this at your own risk!
I've done all of the below on my PowerBook G4, it should work with the latest Intel based Macs, too.
Jailbreaking your iPhone
Step 1:
Make sure you've got the latest version of iTunes (iTunes > About iTunes). Mine is 7.7 (43).
Step 2:
With your iPhone plugged in and showing up in iTunes you might want to make a Backup which will make it easier to restore contacts, playlists, etc. afterwards. This step is optional.
Step 3:
Download Dev Teams Pwnage tool 2.0.
Step 4:
Unplug your iPhone and plug it in again. iTunes will ask you to Download / Install the latest 2.0 firmware. Select the Download Only option. Do not install! Just download the firmware!
Step 5:
You also do need bootloader version 3.9 and 4.6 which you can download here. Make sure you unpack the Rar archives as the Pwnage tool will search for the unpacked contents later in the process. I simply created a bootloaders folder inside my Downloads folder and unpacked bootloaders.rar into it.
Step 6:
Launch the Pwnage tool 2.0 and select the iPhone icon on the very left.
Step 7:
Follow the on screen instructions of the Pwnage tool. The tool will find the ISPW file and ask you to hit next.
Step 8:
If the Pwnage tool asks you to create a new ISPW file, hit YES.
Step 9:
I responded NO to the "Are you a legit iPhone user" question.
Step 10:
The Pwnage tool is now going to create the ISPW file. It might open Finder windows and ask you for your OS X admin password. Enter it and let the Pwnage tool finish creating the ISPW file. This might take a couple of minutes.
Step 11:
Once the Pwnage tool has finished assembling the file it will ask you to put your iPhone into DFU mode. This step can be a bit awkward and you might need multiple tries. The Pwnage tool actually illustrates the process in great detail but let me summarize what you're supposed to do:
> Plug in your iPhone
> Turn it off
> Press and hold the Home and the Power buttons simultaneously for 10 seconds
> Release the Power button but keep the Home button pressed for 10 more seconds
> Release the Home button after the 10 seconds have passed
Once your iPhone has entered DFU mode, iTunes will pop up and ask you whether you would like to restore. While holding the Option Key (equals the key labeled "alt" on older keyboards) on your Mac, hit the Restore button. iTunes will allow you to select an ISPW file. Select the one created by the Pwnage tool which is at your desktop and start.
Step 12:
That's it. The rest of the process might take up to 10 minutes. The bootladers will refresh and finally your iPhone will reboot with firmware 2.0 installed and everything else restored to factory settings.
Step 13:
Optionally you might want to restore your settings from the backup created in Step 2. Restoring from a backup will not downgrade to an older firmware but simply restore contacts, calendar and sync details.
Moving on from here...
After you've freshly jailbroken your iPhone, you might want to get a couple of things working:
Fixing Voicemail
Visual Voicemail only works if you subscribe to one of the official iPhone plans. However, you might want to enable the Voicemail button in your phone application. Do the following:
Step 1:
Note down the voicemail number for your carrier. For example for Germany's Vodafone it is +49-xxx-55-xxxxxxx, where xxx represents your number.
Step 2:
Click the phone button in your iPhone.
Step 3:
Click the keypad tab.
Step 4:
Type
*5005*86*xxx#
where xxx is your voicemail number. For example if your German Vodafone number would be 0172-333-44-55 you would type *5005*86*+49172553334455#.
Step 5:
Hit Call.
After a while the new number for the Voicemail button will be set and active. Give it a try and hit the Voicemail button.
Getting rid of "Call forward active" pop up
In case you forward calls to your voicemail chances are that you see an annoying "Call forward active. Dismiss" popup whenever you initiate a call. There is a not-so-easy way to get rid of it. Here is how:
Step 1:
SSH into your iPhone using WinSCP or Putty.
Step 2:
Go to /private/var/mobile/Library/preferences and download the file com.apple.carrier.plist to your computer.
Step 3:
Open the file and change the ShowCallForwarding to <false/>.
Step 4:
Upload the changed plist file and reboot your iPhone.
Note: On Macs xCode has a plist editor. On Windows PCs you might want to use this online tool to convert the downloaded plist file into an XML representation. (You do NOT need to convert it back, just upload the XML version to your iPhone and all will be fine.)
Changing the carrier name (text)
For older versions of the firmware you could use Erica Sadun's excellent mini application Make it mine to change the carrier name on the fly. As of this writing the application has not been ported to firmware 2.0. (Update 25th July: Make it Mine is available via Cydia now and makes changing the carrier name and the banner - the part where the iPhone shows the current time - very easy! I still include the manual steps of the original post below.) Therefore you've got to do it manually but it's a very straight forward process, too:
Step 1:
Use Cydia to install Erica Utilities. Start Cydia. Go to the Search tab. Type in "Erica" and install Erica Utilities. (Erica Utilities are a set of command line tools. You'll not find any new icons on your springboard!)
Step 2:
If you've not yet done so install MobileTerminal via Cydia. This will allow you to open a local terminal session into your iPhone's OS. (Alternatively, you could use SSH to log into your iPhone from a Mac or Windows PC.)
Step 3:
Open the terminal and type login. If you're not using MobileTerminal use SSH to log into your iPhone. Login with user root and password alpine.
Step 4:
Change the directory to /var/root/Library/Preferences by typing
cd /var/root/Library/Peferences
Step 5:
Type in
sb -s “NewName” SBFakeCarrier
where NewName is the text you want to be displayed as the Carrier name.
Step 6:
Type in
restart
You're done.