In the past couple of days I've been discussing the idea of rooting an Android phone with a couple of friends in the industry. At some point, more than one of them said "it's like jailbreaking the…". That's interesting because even many knowledgable people in the industry do not see the difference between rooting an Android phone and a jailbreak.
So here's my opinion in this: With most network operators (exceptions prove the rule…) Android phones are open. You can install the apps you want, via Google's Android market, Amazon's market, GetJar, etc. Also, people can directly install apps they have downloaded to the memory card. Also, there are no restrictions as to which apps can run on the device and which not (again, exceptions prove the rule). In other words, these phones are free (as in free speech) so there is no need to "jailbreak" them.
So what's "rooting" then? Android has a security framework in place to prevent apps from doing malicious things. The first line of defense is during installation when the app has to present the list of required permissions to the user (e.g. for network access, for reading location information, etc.) so he can decide if he wants to install the app or not. Once the user gives the app the required permissions it is installed and can then be started. Android then insures the app does does not go beyond the defined security context.
But no matter how many permissions the user gives to an app there are some things that are never allowed such as for example, writing to a protected part of the filesystem that belongs to the operating system only. This is potentially dangerous as changing certain files in the system breaks the phone. This is the same concept that is also in desktop operating systems such as Windows, Linux and MacOS. Still, for power users there are good reasons to have access to restricted parts of the operating system and this is where "rooting" comes in.
Android is based on Linux and if on a Linux user wants to do something that only the root user can do he requests "root rights" and typing in a password. On Android, an app by default can't acquire root rights for security reasons. "Rooting" an Android phone makes this possible, i.e. the app can ask the operating system to get root rights and thus be able to do things that ordinary apps are restricted from doing.
Jailbreaking on the other hand is a concept required on devices where the user is severly restricted by the concept of the device, e.g. a jailbreak is already necessary to install apps from places other than the official market. In other words, jailbreaking is a method to circumvent a closed garden system while rooting is a concept in open garden systems (such as Android) for apps to get root level access to the system.
This is a great post! They are similar inasmuch as both involve getting access to restricted data. However, the distinction is important, not just technically but legally. We should not use these words as synonyms. If we do, there will be companies and lawyers and senators/government officials trying to ban rooting because they equate it with jailbreaking.
The way we use words does shape reality…just think about “4G”.