Android’s openness is one of its greatest strengths and makes it possible for most devices to be modified in a number of ways. Customizing your device can add new features and make it feel like it is, well, yours.
There’s just one problem. The Android modding community is naturally lead by tech-heads and programmers, two groups of people not known for their ability to communicate with the layman. If you ask them what your first steps should be they’ll tell you to unlock your bootloader, root your device and load a ROM. But what does that mean?
All electronic devices need fundamental firmware that allows the device to boot. This is often known as the bootloader. It is low-level software that starts the device when you press the power button. Most include fail-safes that restore a device to factory defaults in the event of catastrophic software failure.
Most Android devices come with a bootloader that will only start certain software, such as the ROM (see below) that shipped with the device. Replacing or modifying the original loader is usually required to install custom ROMs.
Some devices have encrypted bootloaders which are much more difficult to circumvent. If you read that a device is “locked” it usually means it is encrypted, which in turn means custom ROMs can’t be flashed until the encryption is circumvented.
As you might have guessed from the above section, unlocking a device is the process of cracking its bootloader so it can be replaced with another, open, bootloader. There are a lot of different ways to do this and the methods vary from device to device and sometimes even between different versions of the same hardware.
Not all devices can be unlocked. Obviously, a device that’s just been released usually cannot be unlocked for at least a few weeks because Android community members need time to find an exploit or crack that will work. Most phones are eventually unlocked, but that’s not always the case. A device must be unlocked before it can be rooted (see below).
You should note that the term “unlocking” is not very precise. It can be confused with the lock feature used to protect a device from unauthorized access. It also can be confused with phones that are “carrier unlocked,” which means a phone is sold without a contract and can be used with the carrier of your choice.
Android is based on Linux. The deepest level of access available in any Linux operating system is root access. A user with root access can change anything in the system at any time and has access to all features.
Android devices generally do not ship with root access. It’s not necessary for typical functionality and denying root access both improves security and makes modding more difficult. Manufacturers see both as positive results, but many custom ROM features and custom apps won’t work without root enabled.
Obtaining root access is known as rooting. It’s usually achieved by running custom software that exploits vulnerability in the target device. Though potentially complex, some devices enjoy excellent developer support via apps like SuperOneClick. Again, I advise checking the XDA Developers forums for your specific device. That’s where you will find the latest and greatest rooting techniques for your Android.
Most Android customizations, including custom ROMs, require a device that has been rooted.
ROM is an example of an acronym that’s taken on a life of its own. It is shorthand for read-only memory, a type of computer memory that can store data for long periods of time but can’t be written to (either due to limitations of the hardware or the software running on it). ROM is where a device stores system files critical to its operation.
In the Android community, however, a ROM is a piece of software loaded into your device which replaces the original Android system files. A custom ROM is a customized version of the Android operating system. There are many different versions available from different teams and independent coders. A ROM is not read-only but it does serve as the basis for all of Android’s functions and features.
A comparison to Linux distributions is apt. Linux is an operating system that has many different versions, most of which are crafted by independent programmers or teams. Android, which is based off Linux, is similar. The main difference is Google, which acts as a central driving force and develops the main fork of the operating system. No organization of similar clout exists in the Linux ecosystem.
The term flash is confusing since it might be mistaken for Adobe Flash, which is unrelated. Flashing is instead the term used to describe the installation of a custom ROM.
When you flash a device you install a new ROM on it. This usually consists of loading the ROM file onto a memory card, wiping out the existing ROM installation via the device’s recovery menu and then loading the new ROM.
Exact instructions are more complex, of course, so you should check out the XDA Developers Flashing Guide. You also should check out the XDA Developers device forums. You can usually find device-specific instructions there.
A device that’s been bricked has been made useless because of a problem that prevents it from starting. It’s literally as useful as a small plastic-and-glass brick.
Not all bricks are the same, however. A “soft” brick occurs when a device starts but does not completely load Android. It may be a reboot loop (where the device keeps shutting off and restarting, over and over again), display error message or have some other issue. Most soft bricks can be recovered by resetting the phone to factory defaults or using its built-in recovery mode.
A device that does not even begin to boot is called a hard brick. A device with a hard brick has experienced a fundamental failure which may even include damage to the phone’s memory. It’s rare, but it does happen, and replacing hardware in the device is the only way to fix it.
AOSP & AOKP
AOSP stands for Android Open Source Project. It’s the project maintained by Google that allows anyone, including both manufacturers and individuals, to build their own version of Android and distribute it.
Downloading the source is easy. Understanding it and using it is hard. You won’t be able to do much with it unless you’re a decent programmer, but it’s nice to know that it’s available. Most importantly for our purposes, a ROM that is “AOSP” or “based on AOSP” tries to closely adhere to the original version of Android, and offer a “pure” Android experience, as close as possible to the one you get with a Google device like the Nexus S phone.
AOKP is shorthand for Android Open Kang Project, the name of a popular open-source custom ROM. The AOKP ROM is a heavily modified version of the original Android ROM, with lots of tweaks added in. It is often used as a basis for other ROMs, so you will sometimes see lists of ROMs with “AOKP” used as a headline. It is unrelated to AOSP but commonly confused because of the similarities in the acronyms.
Hopefully, this article has cleared up some of the terms commonly used to describe Android customization. If you have any additional questions feel free to post a comment.