iPhone jailbreak & unlock yourself using free tools

There's a lot of false information out there about how to reset your iPhone and/or jailbreak unlock it. Many of the sites and guides tell you to pay money or go through other unusual steps which simple aren't needed.

If you need to unlock the phone's mobile network and your iPhone has been updated to iOS 6 already, then the chances are it's baseband has also been upgraded to 04.12.05. You can see this by going to Settings > General > About > Modem Firmware.

The newer versions of the baseband cannot be unlocked using software, you will need to call the original network provider and ask them to unlock the phone. If you can't do this for some reason then the only way to unlock the phone is to downgrade iOS to 5.1.1 so you have the older version of the baseband 01.59.00. But this is only possible if you have your shsh blobs saved from when you phone was at that version previously.

If you don't need unlock, just jailbreak then you will need to be running iOS 6.1.2, as 6.1.3 has some of these methods blocked. You may be able to downgrade to 6.1.2 but only if you already have your blob files saved from step 1. So whatever you do, do that first!!

Here's the most reliable technique i've found for my iPhone 4.

1) Go to http://www.icj.me/ios/ and find your phone model and version. Then download the iOS 6.0 version. The one i'm using is: iPhone3,1_6.0_10A403_Restore.ipsw or if you need to unlock then iOS 5.1.1 would be iPhone3,1_5.1.1_9B208_Restore.ipsw

2) Go to http://ih8sn0w.com/ and download iFaith. Run this program with your iPhone connected to back up your phones unique ssh blobs (You will need these backed up in case you decide to install another version of iOS which isn't the latest version from Apple). Another way to backup your blobs is to install Redsn0w and go to Extras > shsh blobs > Fetch.

3) To jailbreak first back up your phone blobs from the previous step. Then go to http://ih8sn0w.com/ and download Sn0wbreeze. Run this program and choose one of the files such as iPhone3,1_6.1.2_10B146_Restore.ipsw

4) Select 'iFaith Mode' and select the blobs you saved from iFaith in step one, or ones you have previously backed up in the past. Sn0wbreeze will then create an IPSW file on your desktop which is properly signed with your shsh blobs. It should have a filename something like this: 000043423241C7C96_sn0wbreeze_iPhone_4-GSM-6.1.2-10B146_signed.ipsw

5) Now follow the next step to put your phone into DFU development mode, or select the iREB option from the top left menu within Sn0wbreeze. This will load your iPhone in development mode ready for loading the custom image.

6) Now open iTunes and you will see it has detected your device in development mode. Hold Shift and click the Restore button to select a custom image to be restored (IPSW). Note only signed IPSW's from step five or the most recent iOS version from Apple will work using this method so if your ISPW isn't signed then iTunes will give you error codes.

7) Once the image has installed you will notice you can now bypass the activation screen. If you click on Cyda on the homescreen and go to 'Manage' you will notice Sn0wbreeze has already installed an untethered jailbreak package for you.

8) If you have managed to preserve your old baseband 01.59.00 then at this point you can use ultrasn0w to unlock your phone. Go to Cydia > Manage > Sources > Edit > Add > repo666.ultrasn0w.com and once added Install Ultrasn0w to automatically unlock your phone. If you are on a newer baseband this software unlock won't work and you will need your mobile network provider to unlock the phone their end.

Useful links:
http://www.icj.me/ios/ - download original images
http://ih8sn0w.com/ - backup your ssh blobs, create custom images
http://www.jailbreakqa.com - help, questions and answers about specific versions