Jailbreak + SIM Unlock + Tethering + MMS on iPhone 3G w/ iPhone OS 3.0

!!!WARNING!!! The following post will very likely void your warranty and, quite possibly, completely break your phone. DO NOT DO THIS UNLESS YOU KNOW WHAT YOU’RE DOING!

I recently purchased an iPhone 3G for my upcoming trip to Europe with the express purpose of SIM unlocking it. Moving forward this will be my travel phone. When I get back I plan on purchasing an iPhone 3GS to use here in the US. Specifically, I ended up doing the following:

  1. Jailbreaking the phone with redsn0w.
  2. Doing a SIM unlock with ultrasn0w.
  3. Enabling the tethering option.
  4. Entering the appropriate settings for MMS.

Jailbreaking

The very first thing you need to do is install redsn0w. This was exceptionally easy to do. If you don’t have the IPSW file you need check out this post for download links for both the iPhone and iPhone 3G. Please note that none of this works on the newly released iPhone 3GS.

Gotcha: One thing I will note here is that I had problems updating Cydia. After rooting around a bit I found out that installing both Cydia and Icy can cause problems so don’t check the Icy box when running redsn0w. Interestingly enough, when I did another jailbreak with redsn0w, without checking Icy, it left Icy installed and fixed my Cydia problems.

SIM Unlock

The SIM unlock was super easy. You can find a great overview here. all  The basic instructions are as follows:

  1. Load up Cydia
  2. Add http://repo666.ultrasn0w.com as a source.
  3. Update your sources.
  4. Search for ultrasn0w.
  5. Install ultrasn0w.
  6. Reboot.

Tethering

All you have to do for tethering is go to http://help.benm.at/help.php and follow the instructions. This will enable the tethering menu under Settings > General > Network. After that pair your phone and your computer go to the Bluetooth menu on your computer go down to your iPhone 3G’s name and select “Connect to Network”. After this your iPhone should have a blue notification at the top indicating that tethering is on and working.

After I got tethering working speed tests were showing 1065 kbps downstream and about 200 kbps upstream. To me, it felt a bit snappier than my Verizon EVDO. Since I have a MiFi I don’t plan on using this often, but it’s nice to know it’s there.

MMS

Supposedly everything I need to have MMS working is enabled on my iPhone, but I can’t seem to actually send or receive an MMS. I assume there’s something I need to enable on my iPhone’s plan, but there was something curious about this that I’ll mention for others who have to edit their Cellular Data Network settings.

Gotcha: Mine was missing! I had no option under Settings > General > Network for Cellular Data Network. Getting this enabled was, without a doubt, a major pain in the ass. I’ll try and outline how I got it all working. PLEASE NOTE THIS IS FOR ADVANCED NERDS ONLY!

  1. Go into Cydia and enable OpenSSH.
  2. Find your IP address in your WiFi settings.
  3. $ ssh root@196.168.0.22 (Where 192.168.0.22 is the IP address found in Step #2. Use alpine as the password)
  4. $ scp root@192.168.1.135:"/System/Library/Carrier\ Bundles/ATT_US.bundle/carrier.plist" ~/Documents/
  5. You should now have a carrier.plist file in your Documents folder. Create a backup of this in case you break anything.
  6. Open it with Property List Editor (Which apparently only comes with XCode as it’s in Developer > Applications > Utilities).
  7. Under Root add a new sibling called AllowEDGEEditing with a Class of Boolean and set it to True.
  8. Under Root add a new sibling called IsMMSUserEditable with a Class of Boolean and set it to True. (You can check out a screenshot of what mine looked like here).
  9. Save your changes with File > Save.
  10. $ scp ~/Documents/carrier.plist root@192.168.1.135:"/System/Library/Carrier\ Bundles/ATT_US.bundle/carrier.plist"
  11. Go to Settings > General > Network > Cellular Data Network and edit your MMS settings according to http://help.benm.at/help.php.

Despite all of this I can’t seem to receive any MMS from friends nor do I see any MMS features exposed in the iPhone OS 3.0 UI at all. If anyone has any insights into this please let me know. I included this portion, mainly, to help anyone else with a missing Cellular Data Network panel.

UPDATE: Evidently, there’s an application in Cydia named APN Editing that will enable this for you without having to do crazy hacking.

Conclusion

That’s about it. My phone now works on any carrier, has VIM and a terminal application, supports OpenSSH, allows me to tether my MacBook Pro to it and, theoretically, allows MMS. This should make my Europe trip a lot more palatable. The following is a list of links I used to piece together this post and my iPhone hacks: