[Galaxy S I9000 Android Development] paul-ac:
I TOOK IT HERE

Android ROM and rooting dictionary: all the terms explained​

Android is a Linux-based operating system, and in Linux, there is something called root access. When you root your Android phone, you will get superuser access. It’s sort of like a special user account for system administration.

With root access, you have complete control over your phone’s operating system. It will let you install lots of great system apps, such as backup tools, that only are available to root users, and you’ll have the option to flash themes and custom Android ROMs. You can look at custom ROMs as different editions of the Android platform, and when you flash a new ROM, you install someone’s vision of Android.

For example, when I bought the HTC Desire in April 2010, I initially used the stock HTC firmware for a couple of months, which basically is HTC’s customized version of Android. Then I got bored with it, and I started using a ROM called MIUI by a group of Chinese developers. It added a lot of functionality and had a unique UI design. Then I got curious of HTC’s new device Desire HD, and I flashed a custom ROM that was based on the firmware of that phone. And when Android 2.3 Gingerbread arrived, I started using a virtually unmodified version of Android – Google’s vision of it.

In other words, when you have root access, you can use your phone as a hardware shell that you simply can put new versions of the Android operating system into. This post won’t discuss how to get root access, but it will try to explain all the funny words that you will encounter when reading about custom ROMs in forums such as xda-developers. There is an entire terminology surrounding Android ROMs and rooting, and these words sound like complete gibberish when you’re not used to them.

So I’ve tried to write a rooting dictionary that explains the most common superuser and Android ROM terms. I’m no expert, so please correct me in the comments if I’m wrong, and feel free to suggest additional words to include in this root access and ROM dictionary.

Android ROM and rooting dictionary

A2SD+​

A2SD+ is an extension of Android 2.2 Froyo’s native support for installing apps on the SD card, but it virtually installs every app to the external storage. You can more or less expand your internal storage with the size of the partition you create on your memory card — because you need to partition your SD card to use A2SD+. It’s great if your Android phone has a limited amount of internal storage space. Most Android ROMs have built-in support for A2SD+.

AOSP​

AOSP is short for Android Open Source Project, and when the term is used in ROM descriptions, it usually indicates that the ROM in question is based on the Android source code provided by Google itself, and not on some other ROM project or a company’s firmware.

Bootloader​

The bootloader executes code before any operating system is launched. On Android devices, the bootloader is usually locked because manufacturers want you to use the version of Android they’ve provided. With a locked bootloader on Android phones, custom ROMs cannot be flashed.

BusyBox​

BusyBox is an app on your phone that will give you access to additional Linux/Unix based commands. You may need BusyBox installed to perform some root level tasks, and some other apps that require root access may need BusyBox installed as well. BusyBox is self-dubbed “The Swiss Army Knife of Embedded Linux.”

ClockworkMod Recovery​

I won’t get very technical here, because I can’t, but you can think of the Recovery Mode as Android’s equivalent of the BIOS on your computer. Not quite, since Hboot may be more similar to your PC’s BIOS, but you get the picture. It’s a boot menu that is shown without Android being loaded, and it gives you access to certain features such as doing complete backups of your phone (Nandroid backups) and installing custom ROMs. ClockworkMod is the most popular Recovery Mode, and it’s installed with the app ROM Manager.

CyanogenMod or CM​

CyanogenMod, often abbreviated CM, is a custom version of vanilla (more or less unmodified) Android. It’s the most popular custom ROM for Android – a community effort, and many other ROMs are based on CyanogenMod. Among other things, it adds a bunch of extra customization features and options.

Dalvik & Dalvik cache​

Dalvik is the cryptic name of the virtual machine (VM) in Android, and it’s the basis for running apps (with the .apk filename extension) on the platform. Before Android apps are launched, they’re converted into the compact Dalvik Executable (.dex) format, which is designed to be suitable for systems that are constrained in terms of memory and processor speed. Dalvik was originally written by Dan Bornstein, who named it after the fishing village of Dalvík in Eyjafjörður, Iceland, where some of his ancestors lived.

The Dalvik cache is a simply the cache used by Dalvik, and it’s the result of Dalvik doing optimizations of running apps. Some Android ROMs allow you to move the Dalvik cache to your SD card, in order to free up internal storage.

Data2SD / D2EXT / D2SD​

If a ROM supports data2SD, D2EXT, or simply D2SD, it means that the /data folder on your Android phone’s internal storage can be moved to your memory card instead. That’s a good thing, because it will free up precious internal megabytes and leave more room for apps and games. Some say that having the data stored on your SD card is slightly slower, though.

D2ext is a short way of saying “data to the extended file system”. It requires that you have created a partition on your SD card.

Deodexed​

The term “deodexed” has been mocking me ever since I rooted my first Android phone. What the frak does it mean, exactly? Well, it’s probably the hardest term to explain in this rooting dictionary, but I’ll do my best.

Apparently, when a ROM has been deodexed, it means that its apps have been prepared so they can be modified. Deodexed ROMs feature apps that have been repackaged in a certain way. Android applications, .APKs, contain .odex files that devs supposedly use to save space. These .odex files are extracted from the application packages and put in the /system/ folder on your phone, to speed up boot processes and to allow parts of applications to be preloaded.

However, this makes hacking and modifying those apps difficult because parts of the apps have been extracted to another location. Deodexing means that all pieces of an application package are put back together into one file, and it makes sure that a modified .APK won’t conflict with some separate odexed parts located somewhere else. Developers of custom ROMs choose to deodex their ROM packages, since it lets them modify various .APKs, and it also makes theming possible after the ROMs have been installed.

DSPManager​

This is an equalizer app that Android devs like to include in their ROMs.

EXT2/3/4​

This refers to ext2, ext3, and ext4 partitions on your SD card. They’re extended file systems for Linux that can be used by Android, usually in order to preserve internal storage space. Many custom Android ROMs require that you have an ext2, ext3 or ext4 partition on your memory card. Ext2 is the oldest type of extended file system, and ext4 is the newest. Some say that ext4 will put an unnecessary strain on your memory card, because it writes to it so much, and I think the ext3 file system currently is most common. To use one of these file systems, you need to create a special partition on your SD card with ROM Manager or GParted.

So what exactly is a partition? It’s a part of a hard disk, or a SD card in this case, that’s separated from the other parts. Think of partitioning as dividing your SD card into two sections that have different purposes.

Fastboot​

Please correct me if I’m wrong, but fastboot is essentially a boot menu that you can do stuff from before Android is launched. On the HTC Desire, you can access it by turning off the device and simultaneously pressing the Power button and the Volume down button. From this menu, you can choose to boot into Recovery Mode, and more. I’ve also seen this technical (and likely more accurate) explanation: “Fastboot is a protocol used to directly update the flash file system in Android devices from a host over USB.”

Firmware​

A phone’s firmware is basically its operating system. A “firmware update” means that the operating system, the software that controls the phone, is updated. “Stock firmware” means that the firmware is unmodified: it’s the version of the operating system the phone’s manufacturer delivers.

Flash and flashing​

To flash a custom ROM, or a firmware, simply means that you install it. So, flashing is the process of installing a new version of the Android operating system, or just parts of it, like the radio. Flashing new ROMs is done via the Recovery Mode, usually with ClockworkMod Recovery.

HBoot​

HBoot is loaded immediately when your phone is switched on, and it’s mainly responsible for checking and initializing the hardware and starting the phone’s software. It can also be used for flashing official software releases, as well as a few other things. HBoot can be compared to the BIOS on a computer.

IME​

Input Method Editor (soft keyboard)

[Thanks to Hayden4018]

IMEI​

International Mobile Equipment Identity. which you can get by by typing *#06# (works for Galaxy S)

[Thanks to turnado]

Kernel​

The kernel is the central component of most operating systems: it’s a bridge between applications and the actual data processing done at the hardware level. The Linux kernel was initially created by legendary Finnish computer science student Linus Torvalds in 1991. Android kernels are often customized, optimized and modified for different purposes, such as over-clocking the processor or extending the battery life. Custom ROMs usually include a new kernel.

Linux​

Linux refers to the family of Unix-like computer operating systems that use the Linux kernel. The name “Linux” comes from the Linux kernel, originally written in 1991 by Linus Torvalds. Android is a Linux-based mobile operating system.

MIUI ROM​

MIUI is a heavily customized version of Android 2.2 from a team of Chinese developers, and it made a splash in the Android blogosphere back in September 2010. MIUI takes the best parts of Froyo, Samsung’s TouchWiz interface and iOS, and transforms the various elements into something quite unique that has managed to make many people excited. A lot of developers have released their own versions of MIUI, and the ROM is available for many different devices. Besides the official website (in Chinese), there’s a forum dedicated to MIUI at miui-dev.com.

NANDroid & NANDroid backups​

NANDroid will let anyone with root access make a complete system backup. It lets you create a backup of every piece of information on your phone, and it can be restored later whenever you want. NANDroid backups are usually performed before flashing a new ROM, in case anything goes wrong, or if you want to return to your previous setup later. NANDroid backups are created from the Recovery Mode, often with ClockworkMod Recovery.

Odexed​

See deodexed.

Radio​

OK, so this is not the radio you’re listening to your favorite stations with. It’s the radio on your phone that handles communication, the radio that sends and receives voice and data. Flashing (installing) a new radio can improve your reception, and bring other benefits. A radio is flashed via Recovery Mode, just as a full Android ROM.

Radio interface layer (RIL)​

Android provides a Radio Interface Layer (RIL) between Android’s telephony services and the radio hardware. Developers and enthusiasts enjoy messing around with every part of Android, and some of them modify the RIL, just like Android itself, the kernel and the radio, to make it better.

RC1, RC2 et cetera​

When it comes to Android ROMs, RC means Release Candidate. It’s a candidate for the final release of a ROM, and they can be considered ROM betas.

Recovery Mode​

As explained under ClockworkMod, the Recovery Mode is a menu that you can boot into that lets you perform complete backups of your phone (Nandroid backups), install custom ROMs and more. ClockworkMod is a very popular Recovery Mode, and you can get it via the app ROM Manager below.

ROM Manager​

ROM Manager is an immensely popular app for root users, and it lets you flash ClockworkMod Recovery, install ROMs from your SD card, perform backups and even download new ROMs over-the-air.

Root​

When someone mentions root, it usually just refers to having root access on an Android phone – also called being a root user, or a superuser. Root access is explained under superuser, and in the introduction to this dictionary.

S-OFF (security off)​

On the HTC Desire and several other HTC Android phones, the company has implemented a form of “security.” It’s called @secuflag, and it controls whether your phone has its NAND or flash unlocked. S-ON (security on) will read-lock your /system and /recovery partitions, blocking you from performing certain root level actions directly from Android.

You can disable this security measure with S-OFF (security off), although you risk bricking your phone in the process (worst case scenario).

SetCPU​

This is a popular application for overclocking or underclocking your phone’s processor, making it faster or slower. It may require a special kernel in order to work.

SuperUser​

Android is a Linux-based operating system, and in Linux, there is something called root access. When you root your Android phone, you will get superuser access. The superuser, or root user, is sort of a special user account for system administration. SuperUser is also the name of an app, which lets you grant or deny superuser privileges to other apps.

Terminal and Terminal Emulator​

Terminal Emulator, sometimes just referred to as Terminal, is an app that lets users access Android’s built-in Linux command line shell. The application emulates a Digital Equipment Corporation VT-100 terminal, and it’s mostly useful for programmers and for those with root access. For example, typing this in Terminal Emulator when a2sd is installed will move the Dalvik cache to the SD card:

su (gives the app SuperUser access)

a2sd cachesd (moves the Dalvik cache to the SD card)

Titanium Backup​

Titanium Backup is the best backup tool for root users, since it allows you to backup all your applications as well as their data.

Zipaligned​

Zipalign is a tool that optimizes the way an Android app (.APK) is packaged. It enables Android to interact with the application more efficiently, and in doing so, it has the potential to make the app and the entire Android system much faster. Zipaligned applications are launched more quickly, and they use less amounts of RAM. So, thumbs up for zipaligned Android ROMs.

WWE​

WWE means “World Wide English”, and usually tells that an Android ROM is based on WWE, or World Wide English, firmware.