Glossary


Glossary of terms used when modifying Android handsets. 

A2SD
A2SD or Apps2SD is a method of installing Apps onto the SD card rather than the internal memory of the phone.  A full explanation is provided here

Bootloader
The bootloader is a small piece of code that is used to load an operating system.  The bootloader in HTC Android seems to be composed of two portions named Fastboot and Hboot.  Hboot has a few manually accessible features, the one we are most interested in is the ability to load a recovery image.


NAND
There are two main types of Flash memory NAND and NOR.  This is the memory used to permanently store the ROM images inside the phone.  Most consumer devices use NAND memory and you can read more about it here.


Recovery image
In HTC Android phones, the recovery image is a piece of software that can load a ROM image from the SD Card and Flash it into the internal ROM.  The recovery image is accessed from Hboot.


Radio ROM
In HTC Android phones the software that accesses the telephone electronics is called the Radio ROM.  It is separate from the Android operating system and the operating system access the telephone hardware via the Radio ROM.  The Radio ROM may be updated independently of the Android operating system.


Android ROM (or the ROM)
The Android ROM is the Android operating system.  This is the User interface (Sense UI in HTC phones) and the file system for maintaining contacts etc.  It is composed of a Linux kernel and various add-ons to achieve specific functionality.

Apps
Apps are software programs written to provide various features that are not part of Android.  The distinction of what is Android and what is an app is blurred because the stock Android ROMs and most of the modifed Android ROMs contain various apps in addition to the Linux kernel.

Rooting
To protect the Android operating system from corruption, it is read-only.  In addition the NAND is locked so that new images cannot easily be flashed.  To update Android  you must get ‘root’ access to the operating system. root is the user name or account that by default has access to all commands and files on every Linux or other Unix-like operating system such as Android.  It is also referred to as the root account, root user and the superuser.  Rooting on an Android phone has come to mean the process of installing an alternative recovery image that also provides root user privileges under some circumstances and the ability to unlock the NAND and allow flashing.  Rooting only replaces the recovery image, it does not affect the bootloader, the Radio ROM, the Android ROM or any apps.  If you root a stock HTC Android phone it will still behave just the same.  For the purposes of this discussion rooting is the replacement of the stock recovery image with ClockWorkMod recovery image.  ClockWorkMod not only allows flashing of new ROMs but it also has a number of tools like NANDROID backup and the ability to clear data and caches (Factory Reset).


NANDROID backup
Cute name for taking a backup of everything in NAND flash.  This is a great tool because it allows you to take a backup of your stock ROM’s before doing any changes to your phone and if it all goes bad, you can use ClockWorkMod to do a NANDROID restore and get your phone back to stock.   (well almost, because ClockWorkMod will still be there).

How to Root?
Getting root access involves finding some means of installing an alternative recovery image, like ClockWorkMod.  On HTC phones this meant finding an exploit (a software work-around) that could be used to enable loading of a new recovery image.  Initially this was a difficult process which involved using a “Gold SD Card” to boot the phone from, but then the unrevoked team came up with a one step rooting method.  Instructions for rooting are provided here

The following definitions were mostly gleaned from Android Forums

Busybox
An application providing a standard set of unix tools. The default toolbox provided by android is limited, so this is required to allow rooted roms/apps to use more advanced unix features.  Busybox is included in most custom ROM’s including T-mod.


Dalvik-cache
When your phone starts up, the Dalvik Virtual Machine looks at all your apps and frameworks, and creates a tree of dependencies which is stored in the dalvik-cache. This allows applications to run in an optimised state (and explains why your phone takes longer to boot up after applying a new rom, it’s rebuilding the cache.)

MCR
Modaco Custom ROM’s was started by Paul O’Brien.  Modaco is a big name in the rooting community, and he typically releases a stable rooted and customisable version of the stock android roms for phones. Many people use Modaco ROM’s because they are extremely similar to the stock roms (for instance they include Sense), but modified to run faster and be more stable, as well as giving the benefit of root and super user access.

LeeDroid
Lee Bailey is another big name in the rooting community.  Lee’s ROM’s are also admired for their stability and inclusion of must-have apps.  LeeDroid and Modaco ROM’s offer similar performance but different add-on features.

Zipalign
Zipalign is an archive alignment tool in the Android SDK that provides important optimization to Android application (.apk) files. The purpose is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file. The benefit is a reduction in the amount of RAM consumed when running the application.

ODEX – DEODEX
.DEX files are compiled-code versions of APKs that are created on-the-fly by Android, namely by Dalvik VM, hence the name: *D*alvik *EX*exutable. ODEX are Optimized DEX files that are created ahead of time for System apps with the DexOpt SDK tool.  The benefit is that these apps start up faster because of the optimization. The drawback is that the APK that’s been ODEX’ed will not work without the corresponding .odex file present, which almost doubles the size of the app.  Deodexing means you convert it back to a .dex file and put it back inside the apk. This allows the programmer to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that programmers can change all text to different colors (such as the clock color to white) and to deodex services.jar, you need to deodex everything.