After reading the How-To on CrunchGear to enable tethering on iPhone with 3.0 beta firmware, I immediately tried this with my iPhone 3G. Unfortunately, T-Mobile Germany doesn’t appear in the list of ipcc carrier description files that can be grabbed with:
curl -s -L http://phobos.apple.com/version | grep -i carrier
So I had to create my own ipcc file based on the bundle found on a 2.2.1 jailbroken phone under /System/Library/Carrier Bundles/TMobile_Germany.bundle.
Walkthrough
Here is a walkthrough on how to enable tethering with T-Mobile Germany:
Step 1: Copy the T-Mobile bundle from an iPhone running 2.2.1 with SSH enabled:
scp -r root@iPhone.local.:"/System/Library/Carrier\ Bundles/TMobile_Germany.bundle" /tmp
Step 2: Right click on it and select Show Package Contents. You will find two plist files and two images.
Step 3: In Info.plist, change the BundleVersion from 2.9 to 5.0 and change DTSDKName to (SDK_NAME). Delete MinimumOSVersion. I recommend using Property List Editor for these changes. Save.
Step 4: In carrier.plist do the following and then save:
(a) Add a new Dictionary to the apns Array:
apn = internet
password = password
username = iphone
(b) In the Dictionary with apn internet.t-mobile add the key type-mask with type Number and value -2.
(c) Add a new pair at the top level Dictionary of the carrier.plist file with key AllowEDGEEditing, type BOOLEAN and value YES.
Step 5: grab http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/CarrierBundles/061-4732.20090203.gj3ef/ATT_US.ipcc using Safari and copy version.plist from the bundle into the TMobile_Germany.bundle. Change the CFBundleVersion from 3.1 to 5.0 and save.
Step 6: Create a folder named Payload and copy the TMobile_Germany.bundle into it. Compress Payload using the context menu. Then in the “Get Info” window of Payload.zip change the name to TMobile_Germany.ipcc.
Step 7: Connect your phone and upload the ipcc file via iTunes: Option-click on the Update Button and select the TMobile_Germany.ipcc file. Then eject the phone and reboot it.
Step 8: Now, a new entry appears under Preferences > General > Network. On my first attempt, I received an error to consult T-Mobile on how to setup tethering. On the second attempt though, I was able to successfully enable Internet Tethering.
Step 9: When connected via USB, Mac OS X automatically detects a new Ethernet adapter and the connection comes up using DHCP just flawlessly. One drawback: I have not been able to connect via Bluetooth so far. I attribute this mainly to pairing problems. The Mac thinks it is successfully paired but the iPhone thinks not. I’ll continue investigating this and update the post when I find a solution.
If you think this is useful, please digg it. Many thanks to Steven Troughton Smith and Erica Sadun who discovered it!
Update: iPhonenotes.de has readymade ipcc Carrier Bundles for T-Mobile and other German carriers that
enable MMS, too.
Update 2: Beta 5 users, beware: iTunes 8.2b10 no longer accepts IPCC files. Phones running 3.0b5 can still have carrier settings updated from iTunes 8.2b7 (part of 3.0b4).
Update 3: easier than installing an IPCC via iTunes is the download of a profile right from the iPhone. http://www.iphone-notes.de/mobileconfig/ provides config files for various carriers around the world. They work with the released version of iPhone OS 3.0.
Update 4: iPhone OS 3.1 disabled the use of unsigned IPCC profiles. There is a solution to re-enable Tethering by jailbreaking with Blacksn0w.