Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices. Thus, rooting gives the ability (or permission) to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system, usually with a more recent release of its current operating system.
Root access is sometimes compared to jailbreaking devices running the Apple iOS operating system. However, these are different concepts. Jailbreaking describes the bypass of several types of Apple prohibitions for the end user: modifying the operating system (enforced by a "locked bootloader"), installing non-officially approved apps via sideloading, and granting the user elevated administration-level privileges. Only a minority of Android devices lock their bootloaders—and many vendors such as HTC, Sony, Asus and Google explicitly provide the ability to unlock devices, and even replace the operating system entirely. Similarly, the ability to sideload apps is typically permissible on Android devices without root permissions. Thus, it is primarily the third aspect of iOS jailbreaking relating to giving users superuser administrative privileges that most directly correlates to Android rooting.
Rooting lets all user-installed applications run privileged commands typically unavailable to the devices in the stock configuration. Rooting is required for more advanced and potentially dangerous operations including modifying or deleting system files, removing carrier- or manufacturer-installed applications, and low-level access to the hardware itself (rebooting, controlling status lights, or recalibrating touch inputs.) A typical rooting installation also installs the Superuser application, which supervises applications that are granted root or superuser rights by requesting approval from the user before granting said permissions. A secondary operation, unlocking the device's bootloader verification, is required to remove or replace the installed operating system.
In contrast to iOS jailbreaking, rooting is not needed to run applications distributed outside of the Google Play Store, sometimes called sideloading. The Android OS supports this feature natively in two ways: through the "Unknown sources" option in the Settings menu and through the Android Debug Bridge. However, some US carriers, including AT&T, prevented the installation of applications not on the Play Store in firmware, although several devices are not subject to this rule, including the Samsung Infuse 4G; AT&T lifted the restriction on most devices by the middle of 2011.
As of 2011, the Amazon Kindle Fire defaults to the Amazon Appstore instead of Google Play, though like most other Android devices, Kindle Fire allows sideloading of applications from unknown sources, and the "easy installer" application on the Amazon Appstore makes this easy. Other vendors of Android devices may look to other sources in the future. Access to alternate apps may require rooting but rooting is not always necessary.
Rooting an Android phone lets the owner modify or delete the system files, which in turn lets them perform various tweaks and use apps that require root access.
Advantages of rooting include the possibility for complete control over the look and feel of the device. As a superuser has access to the device's system files, all aspects of the operating system can be customized with the only real limitation being the level of coding expertise. Immediately expectable advantages of rooted devices include the following:
- Full theming capabilities, meaning that everything can be changed and themed from the color of the battery indicator, to the look of the dialer or contact list, to the video that plays while the device boots up.
- Full control of the CPU and kernel, which should only be adjusted by knowledgeable users.
- Full application control including the ability to backup, restore, or batch edit applications, or to remove bloatware that comes pre-loaded on many phones. These features become available with the use of root applications such as Rom Toolbox or Titanium Backup which are among the most popular root applications.
- Full USB OTG in devices, including writting in mass storage, when it is not possible with the device stock ROM .
Processes can be automated on the device through the use of applications such as Tasker. Tasker allows the user to set triggers based on time, date, manual switches like widgets or buttons, GPS coordinates, voice commands, cell tower connectivity, plugins, applications, and many more. These triggers can be used to automate everything from volume and connectivity, to power settings on a device and can even be used to automatically interact with other smart devices, including a TV set, console, or smart home lighting.
Custom versions of Android, known as custom ROMs, allow additional levels of control on a rooted device. As Android is open source, anyone with the proper skills can create their own customized version. These versions are often more feature-rich, more efficient, and better looking that standard OEM versions, which can be restrictive.
The process of rooting varies widely by device, but usually includes exploiting one or more security bugs in the firmware of (i.e., in the version of the Android OS installed on) the device. Once an exploit is discovered, a custom recovery image can be flashed (written on the device) which will skip the digital signature check of firmware updates. Then a modified firmware update can be installed which typically includes the utilities needed to run apps as root. For example, the
su binary can be copied to a location in the current process' PATH (e.g.,
/system/xbin/) and granted executable permissions with the
chmod command. A supervisor application, like SuperUser or SuperSU, can then regulate and log elevated permission requests from other applications. Many guides, tutorials, and automatic processes exist for popular Android devices facilitating a fast and easy rooting process.
The process of rooting a device may be simple or complex, and it even may depend upon serendipity. For example, shortly after the release of the HTC Dream (HTC G1), it was discovered that anything typed using the keyboard was being interpreted as a command in a privileged (root) shell. Although Google quickly released a patch to fix this, a signed image of the old firmware leaked, which gave users the ability to downgrade and use the original exploit to gain root access. By contrast, the Google-branded Android phones, the Nexus One, Nexus S, Galaxy Nexus, Nexus 4 and Nexus 5, as well as their tablet counterparts, the Nexus 7 and Nexus 10, can be boot-loader unlocked by simply connecting the device to a computer while in boot-loader mode and running the Fastboot program (from the Android software development kit)
with the command
fastboot oem unlock. After accepting a warning, the boot-loader is unlocked, so a new system image can be written directly to flash without the need for an exploit.
Mainly roothing methods are: King root, Root master, Master root, poot method, towelroot method, framaroot, universal root, kingoroot, vroot, srs root and easyroot.
In the past, many manufacturers have tried to make "unrootable" phones with harsher protections (like the Droid X), but they are usually still rootable in some way. There may be no root exploit available for new or recently updated phones, but one is usually available within a few months.
Some rooting methods involve use of the command prompt and development interface called Android Debug Bridge (ADB), while other methods may use specialized applications and be as simple as clicking one button. Devices, or sometimes even different variants of the same device, can have different hardware configurations. Thus, if the guide, ROM, or root method used is for a device variant with a different hardware setup, there is a risk of bricking the device.
- Android Dev Phone
- Google Nexus
- Nexus Root Toolkit
- Replicant (operating system)
- Ubuntu for Android
- CyanogenModWiki: Basic concepts
- Why Android’s OTA Updates Remove Root and How to Keep It
- Rooting Your Android Phone: Everything You Need To Know