My lesson of the week to you is to explain the Android Root process; this post is not targeted for a special device, instead, it addresses the different rooting processes independently of the device. I feel that before we root Android devices, we must understand why we do it and what we gain and lose.
First WHAT IS “#” ROOT? In UNIX, root is the most powerful user, Android is a UNIX derivative, more precisely, a Linux derivative and it inherited root. With access to root, all the main settings normally locked, become accessible. Normally Smartphone manufacturers, don’t allow root access to prevent phone modification and customisation. By rooting the phone simply means that you can change settings normally not allowed by default, allowing a greater customisation and user experience. Also by rooting the phone, you open the door and access additional possibilities like running Custom ROMS, which are addressed later in this post.
There are downsides in rooting the phone: loss of warranty and support by the vendor, vendor updates normally cannot be simply applied, the most important loss in my opinion is the blame factor, you simply cannot blame the vendor any more if things don’t work.
When an experienced Android user talks about root, he/she normally means: “su” injection, S-OFF, or Custom ROM. Now let’s discuss each one of those. Other things are also mentioned, like Recovery Rom, encrypted or signed bootloader, etc. I am going to cover all this different terminology and educate you on the subject. All I ask in return is for you to click the ads to support this site.
The most basic way to root the phone is to add the su (switch user) command, in UNIX, this command let the user switch to a different user, including root. In Android, the su command is used to access root level access. Each device or phone is different, but normally this is achieved by a form of exploitation. Once the su command has been injected it can be verified by opening a terminal session on the phone and typing su press Enter, the the user should receive a “#” as a symbol. “#” in UNIX represent root level account.
A nice addition to the basic root process is the SuperUser application, found on the Android Market, which integrates the Android GUI with the su command. Now that you are familiar with su, let’s move on to the next subject S-OFF.
Now, let’s step it up a notch. The S-OFF process is simply describing a OFF/ON switch in the software firmware that allows certain modification to take place. For example with S-ON, some phone internals cannot be modified or certain process cannot be maid permanent. For example: you may hear about temporary root, which means every time the phone is rebooted, root is lost.
The “su” injection does not work on certain devices, so the S-OFF is required to achieve permanent root. Many HTC phones fall in this category. The S-OFF process varies by device, developers are amazing in finding the exploitations necessary to achieve it. The process can be as simple as typing the ‘fastboot oem unlock’ command or as complicated as generating hardware compatible keys and custom made applications.
Custom ROMs are a complete replacement of the Operating System delivered with your smartphone. There is a lot to say about Custom ROMs, the most prominent Custom ROM is CyanogenMOD, it supports many devices and it is normally cutting edge for the version of Android supported. A good reference for Custom ROMs for many devices can be found here, remember, every device has a different process to install a Custom ROM; often, the process involves many of the items described in this post.
So why would anyone put a Custom ROM on a smartphone? Well, the obvious answer is to enable the device to take advantage of things not present or possible in the stock ROM, for example: over-under clocking CPU, tuning dalvik jvm, and to enable specific look and feel. The most important factor in running a Custom ROM in my opinion, is the freedom to choose whatever Operating System desired without being locked by the vendor.
Android, much like any Computer, has a bootloader. Traditionally a PC uses the bootloader to select the device to boot (CD-ROM, Hard Disk, USB, etc), on Android, you can choose to boot the regular ROM or the Recovery ROM; for now, consider the Recovery ROM much like a CD-ROM.
The Recovery ROM is used to:
- Recover the system
- Install Custom ROM
- Backup system, data, and cache to SD card
- Reset system to factory
- Additional functionality, like USB mass storage, etc…
Traditionally accessing the Recovery ROM or Bootloader is done by pressing the power button together with a combination of other buttons; this process greatly varies by device. The most prominent Recovery ROM used is ClockworkMod, it is used on a lot of devices.
Installing a Recovery ROM is normally done by flashing the device with a Recovery ROM image specifically made for that particular device. Again, the process greatly varies by device.
Signed and/or encrypted bootloader means that the components required for the phone to boot, like the boot images and the kernels are digitally signed to prevent alterations, which means, if you upload any type or unsigned ROM like Cyanogen, the phone will not boot due to the signature verification failure. The bottom line for a developer is: if you can’t unlock the bootloader, you cannot install alternate Recovery ROMs, and blocking the development/installations of Custom ROMs for that particular device. Even though, for example, the community did great work on the Droid X phone, creating a Custom ROM, plus incorporating the stock kernel and stock boot image, which allows the device to boot. The bottom line is, if you want to root your phone and install Custom ROMs, do your research a head of time to make sure it can be done fully before buying the phone.
For many devices, the signed/encrypted bootloader did not stop developers to unlock them. Just by searching, you will be amazed on what has been done for almost every Android device.
I hope that this post helped you understand why and how you start in rooting your phone. By understanding each of this methods you will be able to deeply understand the different rooting processes and avoid things like bricking the phone. Please ask me any questions you would like…
Now, if you liked this post, may I ask you to click my sponsors to help support this site.