How To Tether iPhone 3.0 Without Jailbreaking
Posted on
Update: This no longer works on 3.1.
Update: There are simpler instructions at http://9to5mac.com/iPhone-3G-tethering. I have heard rumors that this no longer works with iTunes 8.2. I personally haven't tried it in awhile.
So with iPhone 3.0 you can tether you computer to your iPhone, but not yet for some carriers. It's pretty dang sweet and works really well so let's do it early. It's actually pretty easy to get setup. I would write an app to automate it, but I'm sure Apple will release an update and break all of this soon, so follow my steps to get going.
I did this with iTunes 8.2 (23) on OS 10.6 (10A380) on AT&T with iPhone 3.0 (7A341), but I'm quite confident it works with iTunes 8.2 on Leopard and most carries (we'll look up a list later). You will need to make sure you are running the 3.0 firmware on your iPhone. I'll try to keep this pretty basic so you don't need technical knowledge. There are a lot of steps because I am very specific for people that are not familar with editing these kind of files. Don't be intimidated. It's pretty straight forward.
Quit iTunes and open up Terminal (/Applications/Utilities/Terminal.app)
-
Run the following command to enable carrier testing. We'll need this later
$ defaults write com.apple.iTunes carrier-testing -bool TRUE
-
Now we need to get the list of carriers. Run this command:
$ curl -s -L http://phobos.apple.com/version | grep -i carrier
That command will return a big list of ipcc files. Look for the one that ends in your carrier. If you have AT&T, it will be called
ATT_US.ipcc
. Copy that URL between the<string>
tags.-
Now type the last portion of the URL before
.ipcc
where it saysYOUR CARRIER
(mine would beATT_US
)declare CARRIER="YOUR CARRIER"
So for AT&T, it would look like
declare CARRIER="ATT_US"
-
Type the following commands in Terminal. (Obviously paste the URL where it says.)
$ cd ~/Desktop $ curl [PASTE URL HERE] > $CARRIER.zip $ unzip $CARRIER.zip $ rm -f $CARRIER.zip $ open Payload
There should now be a folder on your desktop named
Payload
that just opened. (If there is not, start back at step one and carefully follow the instructions this time.)Right click on the .bundle file in that folder and choose
Show Package Contents
. We're going to edit a few files in here. You will need to have the developer tools installed to get Apple's Property List Editor utility. If you do not have these tools, go to http://developer.apple.com/mac, sign up for an account, download Xcode, and install it. Once you do this, it will install Property List Editor in/Developer/Applications/Utilities/Property List Editor.app
.Right click
Info.plist
, chooseOpen With
, then chooseProperty List Editor
.Once the Property List Editor is open, choose
Show Raw Key/Values
from theView
menu in the menubar. The Property List Editor is pretty straight forward so don't be scared :)Change
CFBundleVersion
to5.0
. Now save and closeInfo.plist
.Now open
version.plist
with Property List Editor, changeCFBundleVersion
to5.0
, save and closeversion.plist
.Now for the fun one :) Open
carrier.plist
with Property List Editor, click the triangle next toapns
to show its contents. This will probably be the first item.Click on
apns
and click the button that appears out to the right. It will have three horizontal lines on it.Change the type of the item you just created to
Dictionary
in the type column. Click the triangle next to theItem 0
(the item you created in step 14). The button out the right will have have that same three horizontal lines icon. Click this button to make a new entry in that dictionary.In this entry, make the key
apn
and the valueinternet
. Leave the type asString
.Make another entry by clicking that same three horizontal lines icon. This time make the key
password
and the valuepassword
. Leave the type asString
again.Make another entry by clicking that same three horizontal lines icon. This time make the key
username
and the valueiphone
. Leave the type asString
again.Now click the triangle next to
Item 1
. You should see the keyapn
with the value containingwap.
and your carrier. For me this iswap.cingular
. Click onItem 1
and make another entry by clicking that same three horizontal lines icon. This time make the keytype-mask
and the value-2
. This time change the type toNumber
. If you don't one of the items in theapns
dictionary who'sapn
value haswap.
in it, simply do this for all of the items in thatapns
dictionary.Now click on
Root
at the very top of the file. Click that same three horizontal lines icon. This time make the keyAllowEDGEEditing
. Change the type toBoolean
and check the box in the value column. Save and quit Property List Editor. We're done with all of that. Phew.-
Back in Terminal, run the following command
$ zip $CARRIER.ipcc Payload
Now you can quit Terminal and open iTunes and connect your iPhone.
Go to the iPhone summary by selecting the iPhone from the source list on the left. Hold down option and click on
Check for Update
. This will open up a window to choose a file. Choose the ipcc file on your desktop. If you cannot select ipcc files here, be sure you did step 2 while iTunes was not running. You could try running this command again and restarting iTunes if you still can't select ipcc files in this dialog. If you still can't select ipcc files after this, then Apple has probably closed up this hole. Sorry.If the window just goes away, then you did it! Simply restart your iPhone.
Open up the Settings app on your iPhone. Choose
General
>Network
>Internet Tethering
to configure it. Enjoy!