The following step-by-step tutorial will help you jailbreak iPhone 3GS running on iPhone firmware 3.1 with PwnageTool 3.1.3. This version of PwnageTool will enable you to update to firmware 3.1 without updating your baseband and is for those of you who are on a jailbroken firmware 3.0 or 3.0.1. If you have updated to firmware 3.1 from iTunes but have saved your SHSH file to Cydia then you can still jailbreak but you’ll first have to downgrade your firmware back to 3.0 or 3.0.1. Complete guide on how to downgrade your iPhone 3GS to firmware 3.0 or 3.0.1 from 3.1 can be found here. In any other case, you are pretty much out of luck for now.
Complete tutorial/guide on how to jailbreak and unlock iPhone 3G and iPhone 2G running on firmware 3.1 can be found here.
Note For Windows XP/Vista/7 Users: PwnageTool 3.1.3 is for Mac OS X only. Windows users should follow the instructions posted here in order to jailbreak and unlock iPhone 3GS running with firmware 3.1.
Step 1: Download and install the latest version of iTunes if you haven’t already.
Step 2: Now start iTunes and sync your iPhone with your PC so that iTunes backs up all your important data including settings, apps, music, contacts and photos.
Step 3: Download PwnageTool 3.1.3 and the original iPhone OS 3.1 firmware for iPhone 3GS (download links given below). Move all these files to your desktop.
Step 4: Start PwnageTool 3.1.3 and select your device (iPhone 3GS):
Step 5: PwnageTool 3.1.3 will now automatically detect the correct firmware for your device as shown in the screenshot below:
Step 6: Click on "No" when PwnageTool asks you “Do you have an iPhone contract that would activate normally through iTunes?”:
Step 7: PwnageTool will now create the custom .ipsw file for your iPhone 3GS which will be jailbroken.
Step 8: Now you will have to restore your iPhone to this custom firmware 3.1 that you just cooked using PwnageTool 3.1.3 for iPhone 3GS. Click on your phone from the sidebar in iTunes to get to this screen as shown in the screenshot below:
Now press and hold left “alt” button (“Shift” button on Windows) on the keyboard and then click on “Restore” (Not “Update” or “Check for Update”) button in the iTunes and then release the “Shift” button.
This will make iTunes prompt you to select the location for your downloaded custom firmware 3.1. Select that custom .ipsw file and click on “Open”.
Step 9: Now sit back and enjoy as iTunes does the rest for you. This will involve a series of automated steps. Be patient at this stage and don’t do anything silly. Just wait while iTunes installs the new firmware 3.1 on your iPhone. Your iPhone screen at this point will be showing a progress bar indicating installation progress. After the installation is done, iPhone will restart automatically and you should now have a fully jailbroken iPhone 3GS running on firmware 3.1.
You can now follow the tutorial/guide posted here to unlock iPhone 3GS on firmware 3.1 using ultrasn0w.
Step 10: Once you are done with the unlocking and jailbreak process. You can now restore all your settings, apps, music, contacts and photos to the newly installed firmware version 3.1 by restoring the backup that you made in Step 2 from iTunes.
UPDATE 1: iPhone 2G and iPod touch 1G/2G(older models) can be jailbroken and unlocked(iPhone 2G only) on the latest iPhone 3.1.3 firmware. Follow the step by step guide posted here or here to jailbreak/unlock iPhone 2G, and here for iPod touch 1G/2G.
UPDATE 2: Redsn0w 0.9.4 is LIVE! Download links and jailbreaking instructions can be found here.
Feel free to ask me any question here should you run into any problem during the jailbreak process.
Disclaimer: This guide is for testing & educational purposes only. I’m not responsible for any loss of important data or malfunctioning of your iPhone.