Let me clear this upfront. The following instructions will only help downgrade iPhone 3G which is currently on iPhone OS 3.1.3 with 05.12.01 baseband and older bootloader 05.08.
This wont work with iPhone 3GS.
If your iPhone meets the above criteria, you can then use the latest version of Fuzzyband which supports iPhone 3.1.3 to downgrade your 05.12.01 baseband to the older 04.26.08 even if you accidently upgraded to the stock iPhone OS 3.1.3 from iTunes.
Once you have downgraded your baseband, you can then use ultrasn0w to unlock your iPhone on iPhone 3.1.3 firmware. Here’s how you do it.
Step 1: To downgrade your baseband from 05.12.01 to 04.26.08, you must first jailbreak your iPhone 3G running firmware 3.1.3 by using any of one these guides: redsn0w 0.9.3, redsn0w 0.9.4, sn0wbreeze or PwnageTool 3.1.5.
Step 2: After you have jailbroken your iPhone, Go to “Cydia” on your iPhone and Search for “Fuzzyband” and then install this application.
Step 3: Start “Fuzzyband” app and touch on “Downgrade” button to downgrade your Baseband from 05.12.01 to 04.26.08.
Step 4: You should now be able to perfectly unlock your iPhone 3G using the latest version of ultrasn0w by following the step-by-step guide posted here.
NOTE: For those of you who don’t know your bootloader, simply run Fuzzyband and it will report the version number for you.
You can follow our complete jailbreaking guide for iPhone 3.1.3 firmware for iPhone 2G, 3G, 3GS and iPod touch 1G/2G using redsn0w 0.9.3, redsn0w 0.9.4, sn0wbreeze, PwnageTool 3.1.5. Unlocking can be done using ultrasn0w or blacksn0w.
For iPhone 3.1.2 firmware, you can use blackra1n, PwnageTool, redsn0w, sn0wbreeze, ultrasn0w and blacksn0w to jailbreak and unlock your iPhone and iPod touch.