Rooting (Android OS)
Rooting is the process of allowing users of smartphones, tablets and other devices running the Android mobile operating system to attain privileged control (known as root access) over various Android subsystems. As Android uses the Linux kernel, rooting an Android device gives similar access to administrative (superuser) permissions as on Linux or any other Unix-like operating system such as FreeBSD or OS X.
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 applications ("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 is the bypass of several types of Apple prohibitions for the end user, including modifying the operating system (enforced by a "locked bootloader"), installing non-officially approved applications via sideloading, and granting the user elevated administration-level privileges (rooting). 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.[1][2][3] Similarly, the ability to sideload applications is typically permissible on Android devices without root permissions. Thus, it is primarily the third aspect of iOS jailbreaking (giving users administrative privileges) that most directly correlates to Android rooting.
Contents
Overview
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 pre-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,[4] although several devices are not subject to this rule, including the Samsung Infuse 4G;[5] AT&T lifted the restriction on most devices by the middle of 2011.[6]
As of 2011[update], 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,[7] 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 add, edit or delete system files, which in turn lets them perform various tweaks and use apps that require root access.[8]
Advantages
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.[9] Immediately expectable advantages of rooted devices include the following:[10][11]
- Support for themes, allowing everything to be visually changed from the color of the battery icon, to the boot animation that appears while the device is booting, and more.
- Full control of the kernel, which, for example, allows overclocking and underclocking the CPU and GPU.
- Full application control, including the ability to backup, restore, or batch edit applications, or to remove bloatware that comes pre-installed on many phones.
- Custom automated system-level processes through the use of third-party applications.[12]
- Ability to install a custom firmware (also known as a custom ROM) that allows additional levels of control on a rooted device.
Methods
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.[13]
Varieties
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 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 third-party 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, Nexus 5, Nexus 6, Nexus 5X and Nexus 6P, as well as their tablet counterparts, the Nexus 7, second-generation Nexus 7, Nexus 9 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 protocol with the command fastboot oem unlock
.[14] 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.
Difficulties
In the past, many manufacturers have tried to make non-rootable phones with more elaborate 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.[15]
Industry reaction
Until 2010, tablet and smartphone manufacturers, as well as mobile carriers, were mainly unsupportive of third-party firmware development. Manufacturers had expressed concern about improper functioning of devices running unofficial software[16] and related support costs. Moreover, firmwares such as OmniROM and CyanogenMod sometimes offer features for which carriers would otherwise charge a premium, such as tethering. Due to that, technical obstacles such as locked bootloaders and restricted access to root permissions have commonly been introduced in many devices. For example, in late December 2011, Barnes & Noble and Amazon.com, Inc. began pushing automatic, over-the-air firmware updates, 1.4.1 to Nook Tablets and 6.2.1 to Kindle Fires, that removed one method to gain root access to the devices. The Nook Tablet 1.4.1 update also removed users' ability to sideload apps from sources other than the official Barnes & Noble app store (without modding).[17][18]
However, as community-developed software began to grow popular in the late 2009 to early 2010,[19][20] and following a statement by the Copyright Office and Librarian of Congress (US) allowing the use of "jailbroken" mobile devices,[21] manufacturers and carriers have softened their position regarding CyanogenMod and other unofficial firmware distributions. Some manufacturers, including HTC,[22] Samsung,[23] Motorola[24] and Sony Mobile Communications[25] actively provide support and encourage development.
In 2011, the need to circumvent hardware restrictions to install unofficial firmware lessened as an increasing number of devices shipped with unlocked or unlockable bootloaders, similar to the Nexus series of phones. Device manufacturer HTC has announced that it would support aftermarket software developers by making the bootloaders of all new devices unlockable.[16] However, carriers, such as Verizon Wireless and more recently AT&T, have continuously blocked OEMs, such as HTC and Motorola, from releasing retail devices with unlocked bootloaders, opting instead for "developer edition" devices that are only sold unsubsidized and off-contract. These are similar in practice to Nexus devices, but for a premium and with no contract discounts.
In 2014, Samsung released a security service called Knox, which is a tool that prevents all modifying of system and boot files, and any attempts set an eFuse to 0x1, permanently voiding the warranty.[26]
Legality
International treaties have influenced the development of laws affecting rooting. The 1996 World Intellectual Property Organization (WIPO) Copyright Treaty requires nations party to the treaties to enact laws against DRM circumvention. The American implementation is the Digital Millennium Copyright Act (DMCA), which includes a process for establishing exemptions for non-copyright-infringing purposes such as rooting. The 2001 European Copyright Directive implemented the treaty in Europe, requiring member states of the European Union to implement legal protections for technological protection measures. The Copyright Directive includes exceptions to allow breaking those measures for non-copyright-infringing purposes, such as to run alternative software,[27] but member states vary on the implementation of the directive.
Australia
In 2010, Electronic Frontiers Australia said that it is unclear whether rooting is legal in Australia, and that anti-circumvention laws may apply.[28] These laws were strengthened by the Copyright Amendment Act 2006.
Canada
In November 2012, Canada amended its Copyright Act with new provisions prohibiting tampering with digital locks, with exceptions including software interoperability.[29] Rooting a device to run alternative software is a form of circumventing digital locks for the purpose of software interoperability.
There had been several efforts from 2008-2011 to amend the Copyright Act (Bill C-60, Bill C-61, and Bill C-32) to prohibit tampering with digital locks, along with initial proposals for C-11 that were more restrictive,[30] but those bills were set aside. In 2011, Michael Geist, a Canadian copyright scholar, cited iPhone jailbreaking as a non-copyright-related activity that overly-broad Copyright Act amendments could prohibit.[31]
European Union
The Free Software Foundation Europe argues that it is legal to root or flash any device. According to the European Directive 1999/44/CE, replacing the original operating system with another does not void the statutory warranty that covers the hardware of the device for two years unless the seller can prove that the modification caused the defect.[32]
United Kingdom
The law Copyright and Related Rights Regulations 2003 makes circumventing DRM protection measures legal for the purpose of interoperability but not copyright infringement. Rooting may be a form of circumvention covered by that law, but this has not been tested in court.[27][33] Competition laws may also be relevant.[34] See also "Europe" section above.
India
India's copyright law permits circumventing DRM for non-copyright-infringing purposes.[35][36] Indian Parliament introduced a bill including this DRM provision in 2010 and passed it in 2012 as Copyright (Amendment) Bill 2012.[37] India is not a signatory to the WIPO Copyright Treaty that requires laws against DRM circumvention, but being listed on the US Special 301 Report "Priority Watch List" applied pressure to develop stricter copyright laws in line with the WIPO treaty.[35][36]
New Zealand
New Zealand's copyright law allows the use of technological protection measure (TPM) circumvention methods as long as the use is for legal, non-copyright-infringing purposes.[38][39] This law was added to the Copyright Act 1994 as part of the Copyright (New Technologies) Amendment Act 2008.
Singapore
Rooting might be legal in Singapore if done to provide interoperability and not circumvent copyright, but that has not been tested in court.[40]
United States
Under the Digital Millennium Copyright Act (DMCA) rooting is illegal in the United States except by exemption. The U.S. Copyright Office currently grants phones an exemption to this law "at least through 2015".[41]
In 2010, in response to a request by the Electronic Frontier Foundation, the U.S. Copyright Office explicitly recognized an exemption to the DMCA to permit rooting.[42][43] In their ruling, the Library of Congress affirmed on July 26, 2010 that rooting is exempt from DMCA rules with respect to circumventing digital locks. DMCA exemptions must be reviewed and renewed every three years or else they expire.
On October 28, 2012, the US Copyright Office updated their exemption policies. The rooting of smartphones continues to be legal "where circumvention is accomplished for the sole purpose of enabling interoperability of [lawfully obtained software] applications with computer programs on the telephone handset." However, the U.S. Copyright office refused to extend this exemption to tablets, arguing that the term "tablets" is broad and ill-defined, and an exemption to this class of devices could have unintended side effects.[44][45][46] The Copyright Office also renewed the 2010 exemption for unofficially unlocking phones to use them on unapproved carriers, but restricted this exemption to phones purchased before January 26, 2013.[45]
Tim Wu, a professor at Columbia Law School, argued in 2007 that jailbreaking is "legal, ethical, and just plain fun."[47] Wu cited an explicit exemption issued by the Library of Congress in 2006 for personal unlocking, which notes that locks "are used by wireless carriers to limit the ability of subscribers to switch to other carriers, a business decision that has nothing whatsoever to do with the interests protected by copyright" and thus do not implicate the DMCA.[48] Wu did not claim that this exemption applies to those who help others unlock a device or "traffic" in software to do so.[47] In 2010 and 2012, the U.S. Copyright Office approved exemptions to the DMCA that allow users to root their devices legally.[49] It is still possible to employ technical countermeasures to prevent rooting or prevent rooted phones from functioning.[50] It is also unclear whether it is legal to traffic in the tools used to make rooting easy.[50]
See also
- Android Dev Phone
- Hacking of consumer electronics
- List of custom Android firmware
- SIM lock
- Ubuntu for Android
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 16.0 16.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 27.0 27.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 35.0 35.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 36.0 36.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 45.0 45.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 47.0 47.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 50.0 50.1 Lua error in package.lua at line 80: module 'strict' not found.