For those that are well-versed in the constant chatter about these matters, I apologize; this will certainly not provide any new and exciting information for you. This posting is targeted at those that own (or are considering the purchase of) an iPhone and want more information about the limitations of running various types of software on the device as well as how you might get around that.
When I first got started searching through the various posts and forums, it was confusing. Some people were posting about how to unlock your phone while others were discussing the jailbreak. I even looked on eBay to see if I could buy an iPhone already in the "condition" I wanted it in (yes, I got desperate). With that in mind, let's define exactly what is meant by each of these terms.
Most phones that are purchased via carriers in the United States are "locked", meaning that the phone is set up with hardware and/or software protection that makes it unusable on another carrier's network even if you have changed service. For example, let's say I want to take my iPhone and switch service (after my contract is up) to T-Mobile. The iPhone has a "lock" on it that makes it so that I cannot take it to T-Mobile and ask them to put it on their network. There is software available (for the time being) that can be used to replace system information on the iPhone and "unlock" it - make it available for transfer to another network.
Some important notes on unlocking:
- You still need to pay for service from the new network. This does not give you free calling or anything mystical like that.
- Unlocking changes your phone in such a way that make it difficult (or at least nail-biting) when software updates are released for your iPhone. For instance, there will likely come a time when installing the latest software (called firmware) for your iPhone will render the unlock permanently "broken". Short version: you may be "locking" yourself out of future features.
- On the positive side, you can actually gain features. An example of this is the reports of some unlocks allowing tethering (see below for that) where the stock system does not (yet).
When you "jailbreak" your phone, you are really unprotecting the hard drive built into the device to allow non-iTunes applications to access the hard drive and read it just like a USB thumb-drive or another removable media source. You may wonder why you would want to do that (as I did when I first heard about this), so let's take a look.
Let's say you want to copy your photos you have taken on your iPhone to your PC - no problem. Anything else, however, and you can forget about it. The stock iPhone software doesn't allow you to copy music or any other files on your iPhone to/from it without the use of iTunes. Further, since iTunes only allows you to synchronize with one PC, this can be a significant challenge. In my case, I activated my phone and sync with the music (that I legally purchase, by the way) and movies that I have at my house. I spend most of my waking life at work, however, and would love to be able to swap out music and content with my work PC. Since I have yet to discover another method or application that might allow me to sync with my home PC from a remote location (which would be great!), the only way to swap items out is to jailbreak the phone.
But there's more. As a developer of web and desktop applications, there is a certain sense of peace with the world of technology when I know that if I cannot find exactly what I am looking for, I could just build it. Non-developers often feel the same way - think of carpenters, artists, mechanics, etc. One of the things I get a little irritated about with the stock iPhone is the feeling I must get everything through the App Store and, should I not find what I want or be happy about the cost, have no other recourse than to sign up for the developer program (which costs ~ $100), develop on a Mac (which I don't own), and then try it out on my phone.
In this case, the jailbreak allows me to develop in other ways and drop the application right onto my iPhone for testing and evaluation. It also opens the door to other applications that were built this way, but might not otherwise gain official approval from the Apple App Store to be purchased or downloaded from there. Now I have access to a wide array of applications that do all sorts of wonderful things (yes, some of which Apple would not be too pleased about and would certainly never approve).
Did you know that a marketed feature of the iPhone 3G vs the new iPhone 3GS is that you can record video on the iPhone 3GS instead of just taking photographs? You might think that it is due to a hardware change, but you would be wrong. I know this because on jailbroken phones, you can download a free application called Cycorder that allows you to record video beautifully using your iPhone 3G. Interesting, huh?
For the geekier crowd (and I am certainly in that bucket), you can download game console emulators that allow you to play retro games from your old NES, Super Nintendo, and Sega days right on your iPhone. Ever play that classic first-person shooter Wolfenstein 3D? If you have a jailbroken phone, you can download and play this while you wait for your oil to be changed. There's also a shell to give you command-line access to packages you have/can download.
Some important notes on jailbreaking:
- Many of the same pitfalls with unlocking exist with jailbreaking as well. For instance, it is a constant back-and-forth between the hacking community and Apple for supremacy and control over the device.
- If you have an iPhone 3GS, you may have to do some funky things if your battery dies (such as run the jailbreak application again with your phone plugged into a PC)
- Some applications or modifications you can install after jailbreaking your phone can actually slow down the phone or make it less responsive while also seeming to provide some neat customization of icons and screens.
Several years ago I had a Nokia phone with an infrared port on the top of it that would allow my laptop to use the phone as a sort of wireless modem for accessing the Internet in the event that I was somewhere that I couldn't get Wi-Fi or plug-in service. This would have really come in handy a few nights ago when my friend was on-call for work to perform some diagnostics and file exchanges with a client, but we were playing in our pool league at (shocker here) a bar with no wireless. If tethering were turned on for him, he could have easily connected via bluetooth to his laptop and hit the Internet via his iPhone. Instead, he had to run down to the nearest coffee shop he could find and use their wireless signal between games.
The iPhone has the hardware and software support for it, but in the United States we are restricted by AT&T in that they "hide" the setting on the phone that allows tethering to be turned on. I can understand why they would want to do this - if everyone is downloading large files (not just emails and such that you would normally work with on a mobile device) via their 3G network, this could put a substantial strain on the network. How would AT&T respond to such a demand on their network? Well, by increasing rates, I am sure, to pay for additional overhead for providing such services. While AT&T appears to be putting things in place to support such a strategy, a tethering "hack" is available to allow you to turn on and off the setting to use your iPhone as described.
To be very clear on this, I want to state that I do not condone the use of tethering without restriction. I do, however, see from my IT support position how valuable it is to be able to turn this on in the event of an urgent need arising much like I enjoy knowing that E911 service is available without me intending to use them as an operator to connect all of my calls. So, in that regard, I like knowing that the feature is there and available (via the hack) if I need it.
Some important notes on tethering:
- It is entirely possible for AT&T (specifically) to track how much data bandwidth you are using and react to abuse of tethering by sending you a bill that makes you gag, sending you a "cease and desist" letter, or by cancelling your contract altogether.
- Don't be a jerk. Everyone has experienced that one person who abuses something until it is banned or taken away for everyone. In the world of mobile phone hacks and such, that person usually becomes the case study in why such workarounds as described here are "bad", and it is tough to argue when someone is significantly abusing such a thing. Don't be "that guy".
- Tethering will most likely come out "officially" from AT&T when they know they can support it. So, if it isn't that big of a deal for you, don't mess with it and just wait to see how things trickle through official channels.
Jailbreaking itself is fairly safe and there is quite the wide community of people that do it to access their device that they have paid money to have control over. Unlocking is, in my opinion, much the same way - you paid for it, so you should be able to use it in whatever scenario is legal and technically possible. Tethering represents a contract issue, on the other hand, and is a violation of the agreement with AT&T. Use it at your own risk.
For information on the existing jailbreaking and unlocking option for Windows, check out http://blackra1n.com/.
If you are on a Mac, check out the dev-team blog at http://iphone-dev.org/