Pwn Your Phone
I've owned two different Android phones since they first were released, and I eventually rooted both of them. My Droid (original) was such a popular phone that rooting it was very simple. I used my rooted Droid until it wore out and rebooted every time I slid open the keyboard. My second Android phone, the Samsung Galaxy S2, is the phone I have right now. It actually was quite a bit more challenging to root, but in the end, I couldn't resist the lure of total control. Sadly, no amount of rooting can supply a hardware keyboard for my S2, but at least I can run whatever ROM I want on it now. Before I go into how to root an Android device, it's important to discuss why you might want to do so, or why you might not.
One of the most common questions I get via e-mail or Twitter is how to root an Android phone. As you can see by the size of the following article, that's not a question easily answered in 140 characters. So, in this article, I talk about rooting an Android device and then describe the process for installing a custom ROM. It's complex, sometimes frustrating, and it can be dangerous if you don't do your homework in advance. If that doesn't scare you off, read on.
What Is Rooting?
Rooting your phone simply means gaining access to the underlying Linux (Android) operating system with root privileges. It's basically the same thing as having sudo access to a Linux desktop. By default, your phone will give you only user-level privileges, which means you can't run programs requiring superuser access to the underlying system.
There is some confusion regarding what rooting actually gives you. If you root your phone, you'll still be running the same firmware. Your phone won't look any different, apart from a new app called "superuser", which will allow you to give certain applications elevated privileges. From a functionality standpoint, rooting your phone gives you the ability to run applications that wouldn't otherwise work, but it won't completely transform your phone like a custom ROM would do (more on that in a bit).
Rooting Your Phone, the Pros:
- Some useful apps, like backup apps, will work only with root access.
- Some apps, like Tasker, work with unrooted phones, but they do much more if your phone is rooted.
- Rooting is the first step toward installing new ROMs.
- Overclocking and underclocking are possible only with root access.
- Having a rooted phone implies some geek street cred.
Rooting Your Phone, the Cons:
- Rooting most likely will void your warranty.
- Some apps (Amazon video streaming, for example) will not work on a rooted phone.
- Rooting is the first step toward potentially bricking your device.
- Using some root-requiring apps (Wi-Fi tethering, for example) may cause fees from your wireless carrier.
I Want Root!!!
Unlike Apple's iPhone, the Android world is full of multiple vendors, multiple devices and multiple procedures for rooting. Heck, even my Samsung Galaxy S2 comes in different models for different carriers, all with slightly different ways to do things. There just isn't a single "way" to root an Android device. To add more frustration to the mix, the methods and even the feasibility of rooting often depend not only on the hardware, but also on the specific version of the Android OS installed on the hardware. For example, I upgraded my Galaxy S2 to the official AT&T version of Ice Cream Sandwich. For quite a while after that official upgrade was released, rooting wasn't possible for folks who upgraded using official channels. This means that before attempting to root your phone, it's important to research your exact model phone and the exact version of Android you're currently running.
Luckily for Android users, there is a large and active community of users for almost every device available. A quick trip to http://androidforums.com usually will turn up a thread dedicated to rooting a particular phone or tablet. Be careful with generic Google searches, because it seems there are unending blog posts and forum entries claiming to have the newest and best rooting methods. Unfortunately, those well-meaning blog posts aren't always updated when a less-dangerous or more-reliable method is developed. Sticking to sites like http://androidforums.com or http://forum.xda-developers.com is a good way to keep up on the latest developments with regard to the world of hacking and rooting.
But My Phone Looks the Same!
The superuser app is all well and good, but apart from opening up the possibility for root-requiring apps, rooting a phone doesn't change the way it looks. For that, you need a new ROM. Unfortunately, installing a custom ROM is a complex endeavor for some devices, and not all devices even support custom ROMs. What is a ROM, you ask? Basically, in the Android world, the terms "ROM" and "firmware" often are interchangeable. The actual Linux operating system with all its applications and sometimes kernel usually are packaged together in a downloadable ROM file for a particular phone or tablet. One of my favorite custom ROMs is the open-source CyanogenMod (Figure 1). Because hardware is so different across devices, it's important to get a ROM file specifically created for your exact model. This is one instance where buying a particularly popular phone is a boon, because those devices usually are supported first.
Figure 1. Even the boot screen of CyanogenMod is cool.
Rooting your phone will void your warranty and possibly cause other unforeseen problems. Once you go down the path of custom ROMs, like I discuss here, the likelihood of a bricked phone increases. A truly ruined phone or tablet is pretty uncommon anymore, but it's easy to get your device into a completely unusable state that takes hours and hours to try to undo. I'm a pretty tech-savvy guy, but getting CyanogenMod on my Galaxy S2 took several hours, and there were several times when I did something wrong and my phone was temporarily "bricked". Before you try to flash a custom ROM, make sure you understand the process!
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Memory Ordering in Modern Microprocessors, Part I
- Source Code Scanners for Better Code
- diff -u: What's New in Kernel Development
- RSS Feeds
- Non-Linux FOSS: AutoHotkey
- Security Hardening with Ansible
- Tech Tip: Really Simple HTTP Server with Python
- Using Django and MongoDB to Build a Blog