The Root of Android

rootutilitiesLately a lot of phone and tablet manufacturers have become more determined at preventing users from accessing some of the lower level functions of their devices. Things like Samsung KNOX or the overly protective Amazon Kindle Fire OS really irritate me. First of all, the device belongs to the user, not the manufacturer or carrier (once the subsidy is satisfied anyway). Second, its Linux! The manufacturers defend their protection of commands requiring elevated access (root) stating that they are protecting users from destroying their devices (and voiding their warranty). Most of us who root or otherwise mod our devices know the risks we take and we accept those risks. Generally it isn’t possible to modify a device without being aware of the risks, as the device’s recovery software and download mode issue warnings to the same effect.

I personally find that Android devices are nearly unusable without having root access to the device. This is mostly due to the large amounts of garbage software installed by the manufacturers and carriers, in the case of phones. Having root access to a device allows the end user to freeze or remove applications that may slow down device performance or otherwise be unneeded or unwanted. There is of course the risk of things like accidentally uninstalling your launcher or other critical component, but if you are rooting your device, don’t you know how to use ADB to push it back, or perhaps use ODIN to restore an image? As an end user I find it offensive that anyone would try to tell me what I can and cannot do with a device that I own. Yes I know that it voids my warranty, but I don’t care, its my device.

To my next point: “Its Linux”. The Android OS is built on the work of many power users and others that have not been compensated for their work (and some that have) who were exactly the type of people who now wish to modify their Android software and have administrative control of their devices. The operating system evolved from an open platform, but now is being forced closed and unjustly made inaccessible to that same group of people. Beyond the open aspects, I have a problem with any variation of Linux/Unix being restricted in such a manner because it means that the usefulness of the software is severely restricted. Of course there is always “an app for that” or it is possible to develop applications based on that hidden functionality, but sometimes it is nice to access that sort of functionality without having to go through the app mess. Android devices are designed to be lightweight and as such they cannot handle an infinite number of apps. Of course we can just pop in a larger SD card… or can we? A lot of apps do not install to the SD card of a phone because the OS restricts what those applications can do because it is perceived as transient storage that cannot be relied on for critical operations. For those of us who have phones with the SD slot located below the battery, I can say that there is no great risk of the SD card being removed while the device is active.

There is one aspect of most stock Android implementations that completely annoys me. The recovery. In the name itself it implies that it is a mechanism for restoring the device to service in the event that something bad happens, right? Not in stock apparently! Stock recovery in most cases can be used to install updates or to install new versions of the operating system, but does not provide the ability to directly backup and restore the device. Most “custom” recoveries such as Clockwork or TWRP allow for backing up the entire device and then restoring it if it is needed. That is a cool feature whether you are modifying your device or not, but of course with Samsung KNOX, attempting to change recovery software results in a bricked (non-functional) device. Way to go Samsung!

 

So, what do I use root for?

Screenshot_2013-12-23-03-23-14First thing I use it for it disabling and removing applications that I don’t use or that are redundant for my preferred applications. I use an application called Link2SD (which requires root level access) to disable applications. As the name implies I also use this application for moving applications to my SD card (via symbolic links) on devices where space matters. There are many root-level apps that do the same thing, Link2SD is just the one I prefer.

The next thing I like having root access for is installing a more beefy set of system level commands. BusyBox installs some components of the Linux that have been stripped out of most implementations of Android. One that is especially useful for me is WHOIS. I would be lost without the ability to just pop in to Terminal and perform a WHOIS query.

Finally, system file access. This one is just so simple. There are areas of the file system on Android devices that we are just “not supposed to see” because we are “end users”. Applications like Root Browser will let us see (and modify) those sections with appropriate root access. One of my favorite things to do here is delete the phone camera shutter sounds, they are just so annoying and fake (and can be distracting depending on your subject). I have also used this feature to drop in large numbers of new ringtones.

Some might say that I really don’t NEED root access and that I don’t use all of the nuances of having root access. Those people would be absolutely correct, but root does let me take control of my devices in the way that I want without interference from the OS itself. I am the only user of most of my devices, so I feel as though I should have administrative access to the device.

 

How do you root a device?

The answer to that depends on your device. A good starting place is to pop into Google and type in root %device name% (replace %device name% with the EXACT model number of your device).

As a general method though, rooting involves installing a custom recovery on your device (Clockwork if available for your device, otherwise TWRP). This is usually accomplished through a tool like ADB or ODIN using the device’s download mode (Google that too, you will need to know it). Once in the recovery you will flash the SuperSU.zip (or SuperSU-signed.zip, or whatever root you use) to establish root access to your device. Once that’s done you will typically restart your device and open SuperSU to make sure everything is in place.

 

Is rooting safe?

No. Absolutely not. It carries great risks, but mostly because of things like Samsung KNOX. There is now greater risk to the actual rooting because of efforts to restrict root access than from having root access itself. 

There are some areas where it has become safer though. In earlier versions of SuperSU it was possible for applications to quietly request root access, without user knowledge. This is no longer the case, root access must now be requested on a per-use basis by the application and then confirmed by the user.

There are also some types of devices that are VERY easy and safe to root. Any device carrying the “Nexus” brand falls into this category. These devices start with an easy to unlock bootloader and generally have no mechanisms to deter the user from “interacting” with their device at whatever level of access or intimacy the user prefers. As of this writing there was a small Windows executable application that could “one-click” unlock and root any released Nexus device.

The first level of safety I take to ensure that there is no unnecessary risk to rooting is grabbing a copy of the firmware image for the device, either directly or by downloading it. For Nexus devices you can get a clean image from the Google Developers website. For most Samsung devices you can get it from samsung-updates.com. I prefer getting the factory images to making a backup because as mentioned before a custom recovery is required to make a full backup. The backup images should not be stored on the device’s internal storage or the SD card.  In a lot of brick situations it is still possible to “unbrick” using a factory image or backup (we call this soft-brick).

 

My Rooting Philosophy

It is my belief that it is the right of every Android user to root and modify their device in any way that they wish. I also believe that the carriers/manufacturers have the right to void the warranty of users who root. The void warranty represents the level of risk that we accept as root users (this does not however include accidental damage warranties, users don’t drop a phone because it happens to be running BusyBox!) Android is designed to be open and users should have the ability to experiment and learn with their devices and not be locked into a carrier or manufacturer’s vision for how the operating system should work.

Apple users have NO RIGHT to modify or “jailbreak” their devices. You bought into an ecosystem that is intentionally closed and hindered. This is not necessarily a bad thing. This prevents carriers from adding garbage software (mostly), and it means that you are on a platform with a clear vision and direction.