Here's a little guide that allows you to enable tethering on the iPhone 3G and iPhone 3GS with firmware 3.1.2. A hack that changes the CommCenter is used. It eliminates the need for a digital signature.
Here is a step-by-step tutorial:
1. First start Cydia and search for "iphone-notes". Install this repository and return to the tab "Search".
2. Now look for "tethering 3G - 3.1.2" or "tethering 3GS - 3.1.2" depending on the model of your device and install the package.
3. Restart the iPhone and then connect to the site www.unlockit.co.nz directly on the iPhone to create a custom APN. Create and install the profile.
After you restart you should see the field "Tethering" in the Settings.
With internet tethering enabled you can use iPhone internet connection on you desktop or notebook. Here is a quick tutorial for experienced users. For everybody else - just wait for the new version of PwnageTool or some other utility.
Here it is:
A bsdiff patch to apply to CommCenter in 3.1.2 to re-enable tethering is available here for the 3GS and here for the 3G. It's just a 2-byte patch as shown below (and an appropriate readjusting of the mach-o's codesign hash):
USE THIS AT YOUR OWN RISK! Your carrier may end up charging you for unauthorized tethering access.
Update #1 It looks like a lot of people have been looking at CommCenter lately because IRC user CleanAir had a similar tethering patch. Meanwhile over in the 2G CommCenter, WhiteRat and geniusan have patched in native MMS support for that platform. Kudos to CleanAir, WhiteRat, and geniusan for digging into CommCenter and coming up with patches!
Update #2 A few tutorials have started to pop up. Eventually this will be made a part of the normal PwnageTool flow but for now this is best left for the adventurous users out there!
DevTeam updated ultrasn0w. They removed the daemon and used ideas of GeoHot's purplesn0w, but implemented these ideas in a better safer way. New ultrasn0w 0.9 uses 152 bytes of baseband RAM, which is 6900 timesless than purplesn0w. They also use mobile substrate to patch CommCenter, instead of patching the file itself.
Here is a list of features from DevTeam.
Works on both 3G and 3GS.
Works on hacktivated devices.
Works regardless of how you jailbroke your device.
Doesn’t patch any mach-o binary whatsoever. (Doesn’t require a separate patch as each new firmware comes out).
Doesn’t install any additional daemon
Has no race conditions, no popups about “Missing SIM”, no network issues
Is almost 7000 times smaller than its nearest competition
Geohot, the creator of purplera1n, has just released his own iPhone 3GS software unlock and named it purplesn0w. Who is purplesn0w for? If you own a jailbroken iPhone 3GS running firmware 3.0 and you want to unlock it to use it with another carrier (T-Mobile only in the USA), then purplesn0w is for you. Are you experiencing wifi/battery/other unlocking problems after using ultrasn0w? Then I highly recommend you try purplesn0w. Geohot says that it’s the best unlock out there.
purplesn0w doesn't run any deamon (resident app) on the iPhone, it just patches three files: CommCenter, lockdownd, and wildcard. You need an activated device in order to use purplesn0w, this is a minus.
Here is how to install purplesn0w:
Make sure you have an activated iPhone 3GS. If you have T-Mobile make sure you disable 3G in the settings.
Open Cydia, and add http://apt.geohot.com to your sources
Install the com.geohot.purplesn0w package
Watch for the success output in Cydia
Reboot your iPhone 3GS
Once you have followed the steps above, your iPhone 3GS should be unlocked.
Update: Geohot has also posted technical details of purplesn0w here along with the source code of purplesn0w. He plans to release an updated version of purplesn0w with hactivation support.