UPDATE! 3.1 firmware breaks this – see end of the article for more info
The iPhone 3GS works well with Telcel’s Amigo 3G plan (see my other post on this topic) in Mexico. I wanted to take things a step further and see if I could tether my iPhone to my laptop, which would let my laptop use the iPhone’s 3G internet connection. This would be great for the times when my DSL link goes down or there are no WiFi connections nearby. I discovered that this modification is pretty simple. You just need to use a custom carrier file (.ipcc) that “turns on” the tethering feature for Telcel. No need for Cydia or any type of snow! ;-)
While this procedure worked perfectly for me, it may not work for you. There are no guarantees here, and if you continue, you are accepting all responsibility for your iPhone. Nothing should break, and if it does, a simple Restore of your iPhone should fix it.
- iPhone 3GS [may work for 3G, but I haven't tested it]
- 3.0 firmware [tested] or 3.01. 3.1 probably doesn’t work.
- iTunes 8.2.1 (6) (for Mac) [tested]
- iTunes 8.2 (for Windows) [not tested]
- Telcel Amigo GSM SIM card, activated, with at least 100 pesos of credit.
- iPhone already working with Telcel 3G (unlocked if not purchased from Telcel)
- Enable Carrier Testing in iTunes 8.2:
- Exit iTunes, if it is currently running.
- On the Macintosh, open the Terminal app and execute this command:
defaults write com.apple.iTunes carrier-testing -bool TRUE
- On a PC, open a command prompt window (cmd) and type this command (with the quotes):
"%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing 1
- Evidently (see Juan’s comment below) with iTunes 9.0 on the PC, the syntax is a bit different:
"%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing -bool TRUE
- Download my custom carrier file:
- Update the carrier into your iPhone:
Plug your iPhone into your computer’s USB port. Open iTunes and select your iPhone on the left panel. In the Summary pane, hold down either the Shift key (on Windows) or the Option key (on a Mac) and press the “Check for Updates” or “Update” button. In the Open dialog box, select the Telcel_mx.ipcc file that you downloaded above. This will transfer the new ipcc file to your iPhone to enable tethering.
- Reboot the iPhone:
After the update is complete (it should only take a few seconds) you now need to power off your iPhone and then turn it back on.
- Enable Tethering in iPhone Settings:
After enabling the setting on your iPhone, follow the instructions shown to connect via USB or Bluetooth. After establishing a tethering connection, you should now see the blue “Internet Tethering” bar at the top of the iPhone’s display:
Once tethered to my laptop, the performance was pretty good, but not as fast as on the iPhone itself. Of course, 3G performance depends on a lot of factors, including how many other people are using 3G in your area, your telco, the website you’re visiting, etc. It is also ‘choppy’ – sometimes fast, sometimes slow. However, overall it seemed slower on the laptop than on the iPhone itself.
Latency over 3G with iPhone tethering (a minimum of about 250ms) was quite a bit greater than a DSL connection (a minimum of about 60ms). This will make tethering unacceptable for some applications (like VOIP).
UPDATE: 17 Sept 2009:
According to the iPhone Dev Team, “As of 3.1, the *.ipcc carrier bundles are signed, and you can no longer force tethering capability simply by crafting your own bundle.” So, evidently, my custom carrier file above probably will not work with 3.1 firmware. Don’t upgrade to 3.1 if you want to use tethering.
UPDATE: 10 Nov 2009:
With the 3.1.2 firmware, followed by blackra1n and sn0w, it appears that the tethering hack still works with Telcel according to the user comments below. I have also seen that the Tethering option is still available, although I have not specifically tested Internet access on Telcel’s network.