Android : All about rooting and flashing
Rooting an Android phone gives you an Administrator level control on your phone. Flashing means replacing the current software of your phone with some other custom ROM. But why would anyone want to root their phone. Some don’t even change the wallpaper. Rooting can be a technical task for some and besides damaging your phone for good, it will void your warranty with the manufacturer. Same holds true for flashing. Despite all this, people do root and flash their android phones. In this article we will shall explore how to gain root access to your android phone and flash it with custom ROMs.
What is Android OS
Three popular Operating Systems or OS for a Desktop PC, Windows OS, Apple OS and Linux OS (in a variety of Distros). When Mobile Telephone began, we had two major players in the Operating System arena, Symbian OS by Nokia and Java Based OS used by rest of the handsets. Microsoft made an early start when it introduced the mobile version of its Desktop OS way back in 2000 as the Pocket PC and renamed as Windows Mobile in 2003. Armed with popular and user friendly smartphone features Windows Mobile soon became very popular. But for reasons best explained by Microsoft, they decided to discourage the expansion of Windows Mobile OS, thereby letting the stage wide open for Android OS by Google and iOS by Apple to fill in.
Android OS was released in 2007 and since then it has been the most popular Mobile OS ever. Just like Windows Mobile OS is based on Windows OS, Android OS is based on Linux.
Difference between a Desktop OS and Android
Desktop PC has the x86 architecture which has a Hard Disk Drive or the HDD which contains the OS files and the Data files. The hard disk is formatted and OS or Operating System is installed. Later on data files can also be added.
On the mobile handset on the other hand, there is no Hard Disk. Instead we have a memory chip called ROM which contains the OS and another memory chip which is the SD Card which has to data files. Memory chip is actually a storage chip where data can be stored.
Some usual terms
RAM : Random Access Memory. Used to store data for a short time. Basically required to write and erase data at high speeds and multiple times.
ROM : Read Only Memory. Once written cannot be erased. A permanent write.
What is the difference between a program stored in ROM or the same stored in a say Hard Disk in a computer. Nothing. But for a very very small program, why to write it in a huge capacity Hard Disk. Besides, one can write a program on a chip once and need not worry of anyone amending or changing it.
ROM are used in electronic devices where small pieces of code needs to run, like a microwave or washing machine. ROMs are easy to mass produce. ROMs occupy very less space.
Programmable ROM : Blank ROM chips which can be used once. Just once.
Re Programmable ROM : A piece of beauty. Also known as EEPROM. Can be filled with a program and erased number of times.
RISC and CISC : The greatest point where there is difference between a PC and an Android Handset is that mobile handsets use RISC instruction set which are simple in nature and use efficiency to complete its job. CISC though more powerful lack in places like power consumption.
So where is the problem?
When an OS is installed on a PC, the administrator rights are with the user. Administrator is a privileged user who can carry out any changes in the PC. This holds true for both Windows OS and any of the Linux Distro.
The term Administrator is used for Windows OS. In case of Linux Desktop OS, it is Root user.
Android handsets are shipped with root user locked out.
Implications of denying root access in Android Handsets
- You do not have absolute control over the handset which you own
- You cannot carry out changes at the OS level or deeper
- You cannot change your OS
- You cannot install apps which work with root access
- You cannot remove preinstalled apps
- If you try anything of the above the warranty of your handset will be void
Why is root access not provided
- Manufacturers/carriers will want to sell some features at the premium. For eg some time back Mobile Tethering was a paid feature
- Apps which are granted root access by user may exploit and steal user data
- User trying to root may perform some incorrect action and damage their handsets thereby putting a strain on the company support system
- Manufacturers/carriers installed bundled apps with the handset. App makers usually pay for their apps to be included. A situation where user is able to remove the preinstalled apps easily is not desirable
Most handsets with stock Android or Android without any customisation is easy to root. While there are known manufacturers like Motorola which hate to allow their handsets to be rooted. Other reputed brands like Samsung, Sony or HTC swing both ways.
Begin with the rooting process
The Root user is already present in all Android Phones. Access to the Root user, however is locked. The most common way to enable root access is connecting the phone to a PC via USB cable and using the command FASTBOOT via the Android Debug Bridge. In some cases where the fastboot method does not work, there are more complex steps to be followed.
Unlocking the bootloader is linked with the process of installing a custom ROM. Hence, unlocking the bootloader is not essential for rooting.
Flash a custom ROM
The first step to flash a custom ROM is taking care of the bootloader. Bootloader is akin to a PC BIOS which contains information to start loading the OS. Like the BIOS, the bootloader is manufacturer specific. Which in case of Android phones means many versions of bootloaders. Manufacturers mostly lock the bootloader with their specific Android OS, and encrypt it too for good measure. While others like Samsung provide an official way to unlock the bootloader.
Next step is to replace the stock Android recovery with a custom recovery like ClockWorkMod or TWRP recovery. Custom recovery provides the user with the ability to install custom ROMs. While rooting is not a necessary step for flashing a custom ROM, advanced features of CWM cannot be used without root access.
For more details on what is recovery in Android read the following article
For more details on the bootloader, read the following article
To summarize android rooting flashing
- Android OS is a version of Linux OS.
- Administrator or SuperUser is the user who is having root access.
- Handsets by default come without root access.
- Changing the factory OS with another ROM is called flashing.
- ROM cannot be flashed till the bootloader is unlocked.
Android rooting flashing is device specific. Before attempting , do a thorough search on what step are required to be done.