I still remember the day when I first rooted and flashed a custom ROM on my Samsung Galaxy S. I was in college and was getting started with Android at that time. While flashing the device, I came across many new words and acronyms related to the Android ecosystem, of which I had no clue about back then. Over the years I made myself familiar with common Android jargons while writing about it, participating in the forums and reading about stuff.
This article is for all the new Android users out there who want something extra from their phones – to root it, flash it, and explore their limits. Knowing what these terms is useful, since most Android content is likely to use it in that form. It will help you understand things better next time you are following an article that talks about flashing ROMs.
So, here are some of the Android jargons you should know about.
For a normal end user, ADB is mostly used while flashing or rooting the device. It can also be used to push (transfer) any file from your computer to the Android as a root user.
The Android Open Source Project, also known as AOSP, is basically Google’s Android Operating System in its purest form. These are the ROMS that are built from the Android open source code. The manufacturers like Samsung and HTC take up this source code and then modify it to create ROMS like Sense and TouchWiz that we use on their phones.
The AOSP ROMs are just about 200 to 300 MB in size, compared to Samsung and HTC ROMs, which can shoot up to a few GBs. Now while it might speed up your device by cutting down on all the bloatware, you could lose many cool things that the manufacturers designed the device for.
For simple understanding, the bootloader can be compared to the BIOS that we have on our computer. When you power on your Android phone, it’s the first thing that loads up. Thereafter, it can load either the recovery or the Kernel depending on your boot option. It then finally loads the ROM (Operating System) for a normal boot.
A factory sealed device comes with a locked bootloader, which runs the official firmware on the device and is digitally signed by the manufacturer. So if you wish to run custom ROMs, you must first unlock the bootloader. However, unlocking the bootloader voids the warranty for most devices.
While flashing ROMs, you must have come across a step that asks you to clear the Dalvik Cache. Now to understand what exactly you do at this point, we must first understand what Dalvik is.
Dalvik is a Java based virtual machine that is the basis for running your programs. Just as APK applications run apps on your Android, Dalvik runs the code written in Java. To make things simple, Dalvik is a mobile friendly Java Virtual Machine that runs the Java code so it can function on your Android device.
Dalvik cache is just the cache that is maintained while executing the Java code. It’s always advisable to get rid of this cache to avoid any ambiguity while compiling the code after flashing a new ROM.
Deodexed ROMs have all the APK and OS files compiled and arranged under one umbrella called the classes.dex. This makes sure that all the code comes in one package. As all the code is available in one place, modification of these ROMs is very easy. Thus, Deodex is favored by almost all the custom ROM Developers out there.
However, all this code takes extra time to compile every time it has to be executed for the Dalvik VM.
Most of the times when you flash a custom ROM, the developers ask you to flash the GAPPS file after flashing the ROM file. The GAPPS file contains all the Google apps, including the market that would be installed as a system app for the device to function.
The phone will be able to boot without the Google Apps but there will be no Market, GPS tracking service, or even account and data sync.
Each version of Android has a different GAPPS file, so what you flash is provided by the developers. If you want to download them manually, the best way would be using the app Gapps Manager.
The Kernel is not something that only Android devices have. Basically, it’s an underlying layer between the machine and the operating system. Be it Windows, Mac, or iOS, every one of them have a Kernel.
Android smartphones use a Linux Kernel. Each time the software has to communicate with the hardware, things have to go through the Kernel. From changing the volume on the phone, to making phone calls and getting cell reception, everything is communicated using a Kernel.
Different ROMs work on different Kernels depending upon their architecture. These Kernels control the hardware for the software. The best example to give here might be an OTG support. While you can plug in an OTG to any Android device, it will only get detected if the Kernel supports the feature. Therefore, there are few phones that support OTG while others have to flash a custom kernel to get the feature.
There are many technical ways to explain this, but as this article is meant for beginners, the easiest way to describe Odex files is that they are pre-compiled .dex files. These files are optimized and can be run directly by the Dalvik Virtual Machine.
Odex ROMs are optimized and thus take up less booting time. It’s very tough to modify these files as they are already compiled.
So these were some of the important terms you might come across while exploring forums regarding flashing and rooting your device. Hopefully, this will help you get a hang of the dev language when it comes to Android. If you come across any other terms not mentioned in the article, feel free to ask for an explanation in the comments below.