Well, I followed my own instructions posted here to hack my friend's iPhone 3gS and it worked perfectly.
I would like to use tethering, but wanted to make sure this would not cause extra charges. If anyone knows the answer that would be great
There are so many threads on how to do this but ALL of them are missing one or two important steps. Either you get tethering to work but no visual voicemail or the other way around. I want to post this "clean" one page DIY to save others time reading multiple forums to get both features to work.
So here you go. Please let me know in reply if this worked for you, or not.
From http://www.9to5mac.com
run a little command in terminal (Make sure you are on OS 3.0 on a 3G iPhone and iTunes 8.2):
defaults write com.apple.iTunes carrier-testing -bool TRUE
After that, the steps become a lot more simple.
1. Download this file (for AT&T) and mount the disk image (thanks Gizmodo) for other carriers, try here.
2. Option-click on "restore" in your iTunes with your iPhone attached. Browse to the opened disk image file and hit OK. It will update phone settings for a few seconds.
3. You have tethering. Now go into your iPhone/settings/general/network/Internet Tethering and turn it on.
4. With the USB still connected. Go to System Perferences>Network
If Ethernet Adaptor (en3) is NOT on the list to your left, add it and hit Apply
5. You should now see the pretty blue "tethering" screen on your iPhone.
Setup Bluetooth:
1. Go to System perferences>Bluetooth>+ and set up bluetooth as instructed on your Mac.
2. Now connect as show in screen shot.
Setup Visual VoiceMail:
1. Keep the phone connected to iTunes and option + click Check for Update
2. Navigate to your "username"->Library->iTunes->iPhone Carrier Support
3. Select the file contained within "iPhone Carrier Support" and proceed
Carrier file can be found here (scroll down to post#11) and follow the steps.
4. Your VM should be set and you should NOT see Cellular Data anymore. I wrote this while tethering. Hope this helps.