The official ultrasn0w unlock is now available for iOS 4 which works on all basebands including 05.13.04 and 05.12.01 on iPhone 3GS and iPhone 3G. Since there is no jailbreak available yet for iPhone 3GS with new bootrom, you cant unlock it as even though the baseband is unlockable. This is because unlock relies on jailbreak. So if you have an iPhone 3GS with new bootrom and you rely on an unlock, it is best to avoid iOS 4 (formerly iPhone OS 4) for now.
Else, simply follow the guide posted below to unlock your iPhone 3GS (old bootrom, and already pwned on 3.1.2 with anything other than Spirit) and iPhone 3G on any baseband from 04.28.08, 05.11.07, 05.12.01 to 05.13.04.
How to: Jailbreak iPhone 3GS and 3G on iOS 4: Step 1: Follow the complete guide posted here to jailbreak your iPhone 3GS using PwnageTool4.0/4.01 on iOS 4.0. For iPhone 3G, follow the guide posted here to jailbreak on iOS 4 using Redsn0w.
How to: Unlock iPhone 3GS and 3G (Any Baseband) on iOS 4: Step 2: Once you are done with the jailbreak, you can now unlock your iPhone 3GS and 3G on any baseband using ultrasn0w 0.93 from Cydia. To do this:
Start “Cydia” on your iPhone.
Touch on “Manage” tab on the bottom.
Now touch on “Sources” as seen in the screenshot below:
Touch on “Edit” and then on “Add”. You will be prompted to enter a url source as seen in the screenshot below. Type “http://repo666.ultrasn0w.com” and touch on“Add Source”.
Cydia will now automatically update your sources by following a series of automated steps.
After installation is completed. Search for “ultrasn0w 0.93” in Cydia and install this application. This app will automatically unlock your iPhone 3G and 3G so that you can use it with any carrier.
Step 3: Now simply restart your iPhone and voila! you should now have a fully unlocked iPhone 3GS and 3G, on iOS 4.