Basic Concepts

“rooting”

First, see the discussion on wikipedia for the basics.

To make things confusing, the term “root” can mean several different things in the computing world, depending on the context:

  • Rooting is the process of acquiring root (or administrator) privileges on the device. (“I rooted my phone.”) This is the context described in the Wikipedia link above.
  • root” is also the actual name for the administrator user in many UNIX-based systems such as Linux. (“I logged into the root account so I could delete some system-level files that an ordinary user can’t delete.”)
  • Similarly, to have root access also means having administrator-level privilages. (“I realized to delete those files, I’d need root access.”)
  • The root directory is ALSO the “top” (or first) branch in a directory tree. In other words, it is / in Linux or C:/ in Windows. (“Those files I deleted were in the root directory.”)

“jailbreaking”

Jailbreaking is a term that originated in the walled-garden world of Apple that does not have a single clear analog in the Android world. Because Apple has created so many tight restrictions over what software can be run on an iDevice such as iPhone and iPod, special steps must be taken to do a variety of operations ranging from:

  • enabling the iDevice’s bootloader to allow unofficial software to be loaded
  • giving apps and the user escalated privileges to do operations that an app can normally not do in the standard environment (aka “rooting”)
  • installing apps without the App Store’s involvement (aka “side-loading”)
  • allowing extensions, theming, and other modifications to iOS’ look, feel, and behavior
  • permit booting into multiple operating systems such as Linux or even Android in addition to iOS
  • etc.

The activities, each of which is technically distinct, appear to have fallen under the general category of “jailbreaking”, which combine a number of different facets and goals to cover the general notion of overcoming Apple’s inherent iOS restrictions.

Although the term is sometimes used by those who do not appreciate the technical distinctions as a general “catch all”, Android and CyanogenMod users typically do not use the term “jailbreaking” due to this vagueness, preferring terms that are more descriptive, distinct, and appropriately specific such as “rooting”, “side-loading”, etc.

Android, being open source, does not inherently restrict end users’ access to their device (though vendors may choose to do so until the devices are rooted). Additionally, many “benefits” of a Jailbroken iDevice such as the ability to side-load are already commonplace and even expected of standard Android phones and tablets.

For more on “jailbreaking” in the iOS world, see this comprehensive history on Techcrunch.

“side-loading”

In the world of Apple’s iOS operating system, iPads and iPhones are generally unable to normally load apps from any source except the official App Store. Android works differently. Google’s Play Store is a source for many hundreds of thousands of apps that can be downloaded and installed automatically. However, the process of “side-loading” allows you to directly install an app from your computer or via any non-Play Store source, such as directly from a web site or even another device.

This process of loading an app that didn’t originate from a store is very common in the Android world and is simply a matter of checking a box in the Settings to enable it.

With Apple’s tighter control of the user experience, steps such as “jailbreaking” must be taken to enable side-loading. Not so for Android. Generally speaking, you can load anything you want.

(Exceptions to this include severely-restricted incarnations of Android that appear on some phones and tablets. CyanogenMod may be an option to remove this restriction.)

“flashing”

Flashing is a general-purpose term used to describe the process of loading software onto your mobile device. On a computer, the equivalent might be something like “reinstalling”, although not all flashing processes require a reformatting to occur.

There are typically two types of ways to “flash” a device:

The first uses a program called fastboot that is run on your computer when it is attached (typically via USB cable) to your device. You boot the device into “fastboot” mode, then use the program to “push” the new software over the cable to the device, where it is installed.

The second common flashing method uses the recovery mode of the device itself, without using a computer. The way it works usually is that a file containing the update to be flashed (usually ending in .zip) is downloaded directly to the device. Then the device is rebooted into recovery mode, at which point the recovery flashes the new software to the device.

That’s it!

“unlocking a phone”

AKA “Subsidy Unlock” — AKA “Sim Unlock” AKA “Network Unlock” AKA “Use a foreign SIM Card”

SIM-unlocking your phone will offer the benefit of allowing you to use your phone with other carriers.

In many markets, when you buy a phone (or mobile-enabled tablet), it can be “locked” so that it will only work with a particular carrier in a particular market. The process of “unlocking” a phone typically means that the device can be used with any compatible carrier in any market. The phone effectively becomes a “universal” or “international” device that can be used with a new regional carrier when travelling, for example.

Note that unlocking the phone may violate the terms of your agreement with your carrier, although some US carriers such as T-Mobile are known to send you “unlock codes” if you contact them before travelling. On the other hand, in some countries it is not permitted to lock the phone at all.

It is also important to understand that an unlocked phone still must meet the mobile network requirements for the new carrier– it must use a compatible system (such as GSM or CDMA) and support the frequencies of the new carrier as well.

“superCID”

CID is short for “Carrier IDentification”. It is a special number in the phone that restricts which firmware can be installed on a carrier’s variant of a device. The CID determines for example, that only an officially signed T-Mobile radio image can be installed on a T-Mobile phone. And it’s why you can’t flash a Vodafone ROM onto a Bell Desire Z, two devices which are otherwise very similar.

It may be helpful to think of the CID as a kind of “region coding” like you find on DVDs, where a North American DVD can’t be played in a European player. But if you hack your DVD player, you could switch it from a European player to a North American one. Or you might even hack it to play both DVDS.

You can do the same with phones. SuperCID is, as the name implies, a universal CID where the phone will accept any kind of firmware image.

“unlocking a bootloader”

Note:

Unlocking a bootloader and unlocking a phone are two entirely different things.

The “bootloader” is the name of the program that first loads when you press the “on” button (or power button) on your device. Its responsibilities include initializing hardware and then starting the next few steps of the boot process by first loading and then running subsequent stages of the boot. These next stages load even further stages, until the operating system as a whole is loaded and you can start to use the device.

A “locked bootloader” typically has some kind of restriction on what it will load, based on a digital signature provided by an authority (such as the manufacturer of the device). Devices, which have locked bootloaders, are therefore limited in the operating system that they can load.

Many developers of free and open general-purpose computers look at locked bootloaders as a kind of “system bug” or design flaw, because they restrict the freedom of the owner of the device to replace the operating system with one which may be newer, better, faster, more secure, etc. For that reason, many otherwise “locked” bootloaders have been given a “bugfix” to removes this flaw and allow the user to replace the operating system with one that she or he prefers.

Some devices, such as Google Nexus devices, are sold with a bootloader that is locked by default and therefore only load vendor-provided updates. This is done for security purposes, as it is very easy to power off a phone, even with lock-screen security, and load custom recovery and operating system images that may allow an attacker to gain access to user data. Unlocking the bootloader is possible through the use of the fastboot tool, available for free via the android sdk, and causes an immediate wipe of user data, to prevent an attacker from using this same tool to gain access to user data.

S-OFF (Security OFF) Mode

Some bootloaders include a “Security ON” (AKA “S-ON”) mode, whereby certain operational restrictions are imposed on the boot. On some devices (such as the T-Mobile G2), the S-ON bootloader may put the operating system partition in a “read-only” mode. For others, S-ON may cause the device to adopt behavior similar to a fully-locked bootloader.
Switching the bootloader to S-OFF mode is therefore a prerequisite on some devices to allow the operating system to be modified or replaced.
Note that S-OFF does not imply that a device is rooted.

More Terminology & Concepts

See the Concepts and Vocabulary section of this wiki for discussions of additional terms such as “rooting”, “sideloading”, “jailbreaking”, “flashing”, “unlocking”, “unlocking a bootloader”, kinds of memory– “RAM”, “Internal storage”, etc. and common Android “partitions”/directories. There’s even a glossary.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.