In past we have written a few posts about cyanogenmod and custom roms but didn’t give a full overview on what they exactly are. So here I am trying to answer a few questions that were raised.
Let me start with the basics.
What is Android?
In a layman’s term, Android is operating system that runs on primarily on mobile platform (Cellphone/tablets). It certainly is not the hardware that you get when you purchase a phone.
Architecture of Android
Before I go in depth about ROM and Super User, let me tell you a little about the architecture of android. For any computational device to work there needs to be certain element which interacts with the hardware. Hardware alone can’t do a thing unless it is directed to. This direction/interaction with the hardware is done through the innermost layer of the operating system known as kernel. The Kernel inside android is a fork of present day Linux Kernel. The layer above kernel is what gives the kernel instruction to perform specific tasks. For instance if your click on the browser icon on the launcher, the input is interpreted by kernel (as it interacts with hardware) but what to do with this input is understood by the next layer, which is application. In this case the launcher. So the question is how does launcher work? It doesn’t directly work with kernel, instead there is an intermediate called Dalvik Virtual Machine which runs these applications. If you are familiar with Java you will understand this quite easily, but if you don’t get it don’t bother. In short, hardware interacts with kernel which interacts with Dalvik virtual machine which interacts with applications, and all these together combined is called ROM (why, I will explain it next).
ROM, RAM and Firmware
ROM stands for Read Only Memory, there are many kinds of ROM, some which can be erased, some that can be programmed. ROMs are used to store the entire stack that I mentioned above. Whole Kernel, DVM and Applications are stored in these ROM, hence the name. There is quite a difference between ROM and RAM so don’t get confused. On one hand ROM is like a permanent storage, RAM is the temporary storage. It stores the run time data that is generated during processing. And, if you hear someone say something about ‘firmware’ don’t get confused because ROM and Firmware are almost the same.
What is Rooting? Who is a Super User?
If you are an avid ‘Linux/Unix’ user then I don’t need to answer these, but for others let me put it this way. If you have read till now you would realize that Linux Kernel is in the heart of this device. So all the inherent features of operating system would be same as Linux. Therefore which is the one user which can do anything/everything on a Linux system? The answer is Root aka super user, and hence the term rooting. Rooting gives you the rights/permission to do certain tasks on android which has inherently been blocked by the handset makers for both simplicity and security of the device. You might have noticed that when you install any application from android market, it asks for certain permissions. Similarly there are some applications which require system level permissions for them rooting is required. There are different ways to root android (depending on the version), but we will not deal with them here.
Flashing the ROM
As you might know, Android is an open source initiative and anyone can go ahead and build his/her own custom operating system for their handset. There are numerous developers working on building their own versions of Android. One of them that we mentioned previously is known as Cyanogenmod. There are many such ROMs built for many different devices, and process of installing these on the handset is commonly knows as flashing. The process of flashing varies from handset to handset and ROM to ROM. It isn’t a difficult task, but certainly requires lots of research. I think this should be enough for the basics, though you should know about some common terms used in relation to android. Ok enough of complex stuffs, let me tell you about the applications you might need if you think of flashing. This is more than enough information for one read. If you wish to know more about your handset post your queries here and I will guide you to right place. Also for most of HTC/Samsung/Motorola phones the best place to venture is XDA Forum. The objective of this post was to let you know more about Android. I have not discussed the advantages and disadvantages of custom roms or rooting, but then again I said it requires a lot of research. Just a little help to your research, read this article.