Techwell’s StarEast is just 2 weeks away. Among other things, I’ll be talking about testing on a rooted device, specifically, what are the benefits, and what are some tools that can help you out. One of the things I WON’T be covering is how to root the physical device. Disappointing, I know, but due to time and liability implications, it’s just something I won’t be getting into. Additionally, because this is course on ROOTing the device, this will be specific to Android devices. After teaching the Mobile Applications Testing For Professionals many times, something that I have noticed is not everyone understands the difference between unlocking, jailbreaking and rooting. This post will cover the differences, and hopefully help to enlighten some.
Initially, unlocking was the big thing for mobile devices. This meant removing the restrictions from your phone that limited the network carrier. Unlocking your device has actually been deemed ILLEGAL if the phone was purchased in the past 2 years (since Jan 26, 2013). Carriers are allowed to unlock the device however. For that reason, we won’t cover unlocking the device any further.
Jailbreaking is the term used to describe removing hardware restrictions on iOS devices. The goal is to get access to apps that were otherwise unavailable. Jailbreaking gives root access to the iOS file system and manager, which allows the downloads of additional applications, themes, and extensions. These downloads are not available in the official Apple App Store, and the only way to access them is via a jailbroken device.
Jailbreaking is a way of obtaining an elevated permission on the device, but does not give complete root access. The name refers to breaking the device out of its “jail”, which is a technical term used in Unix-style systems, for example in the term “FreeBSD jail”. A jailbroken iPhone, iPod touch, or iPad running iOS can still use the App Store, iTunes, and other normal functions, such as making telephone calls. There are large population of users who have jailbroken/rooted devices.
Unlike unlocking, Jailbreaking has been deemed legal in the US, at least through the end of 2015. That point made, it doesn’t mean that it won’t void the warranty. There are other risks as well, losing rights to support, and could potentially end up “bricking” your phone. Restoring any device via iTunes will remove the jailbreak.
Root is term used to describe allow users to remove all hardware and software restrictions on an Android device. This gives them a privileged control (known as “root access”) to the Android device’s sub-system. The goal is to overcome the limitations that the network carrier and hardware manufacturer put on the device. This gives users access to not just install additional applications, themse, and extensions, but to actually remove, modify, or replace the devices operating system. As Android derives from the Linux kernel, rooting an Android device gives similar access to administrative permissions as on Linux or any other Unix-like operating system such as FreeBSD or OS X.
Rooting has also been deemed legal in the US. Similarly to jailbreaking, rooting comes with the same warning of voiding warranties, losing network support, and potentially locking up the device.
Rooting vs Jailbreaking
The main take-away from this post, is that rooting and jailbreaking are very different. Everything that and iOS user is trying to accomplish by jailbreaking their device is included in the basic functionality of rooting an Android device. Rooting an Android device just provides that many more capabilities. The best analogy I’ve heard comparing jailbreaking to rooting is this:
Think of it like the Matrix: Jailbreaking is comparable to what Morpheus could do. He could bend the rules of the system to overcome certain restrictions, but was still bound to its rules. Rooting is what Neo could do.
Jailbreaking provides methods to bypass several types of prohibitions that Apple places on the device for the user; modifying the bootloader, installing unofficial apps via sideloading, and granting elevated privileges for admin-level settings. In comparison, most Android devices don’t even lock their bootloaders, and several provide the ability to unlock them, including the ability to change out the operating system. Sideloading apps is also usually allowable on an Android device without needing root permissions. Often times, getting the iOS device jailbroken, only provides the same level of access that is by default available to an Android user.