Ed. Note: The story originally was published on Feb. 14, 2010. We've updated it with new information and present it again for those of you new to Android.
Each day more and more Android handsets are being sold, and that means users are faced with a major decision: To root, or not to root. Some of us will do it simply because we can, others will decide not to do it as they enjoy the phone as-is, but the majority of us will be on the fence about the whole idea of rooting.
Hopefully some of those questions can get answered and you’ll have a clearer picture of the process and some understanding to make the decision a bit easier. I’m sure this won’t answer every question you’ll have when considering whether or not to root your device, but hopefully this is a good start and a basis for further discussion.
What, exactly, is rooting?
Rooting your Android device involves adding in a small Linux application called “su”. It stands for SuperUser, and allows applications and commands to run with elevated permissions. Everything that runs code, whether it’s an application or the user, has a permission level set by the operating system.
Why Linux? Well the heart of the Android operating system is the Linux kernel. You'll hear a lot of nerdy geek-speak about the Linux kernel, but all you really need to know is that it's what is interfacing Android to your hardware, and ultimately has complete control. When you stray outside the "normal" way of using Android and start entering commands directly, the kernel is who you're talking to.
The root user is the boss and can do anything (good or bad) on the device. From simple things like clearing the cache from core applications, to more advanced things like wirelessly tethering a laptop or iPod touch through your phone, root can do it. The su program is a sort of gateway that lets applications or users act as root while doing tasks. If you’re the curious type (I know some of you are ;) ) here’s a more in-depth review of root as used in a Linux system by the Linux Information Project .
OK, so why would I want to root my phone?
Good question! Maybe you don’t. Everything in a Linux system is a file, or is treated as a file. Since Android runs on top of Linux, it acts the same way. Most of the files you will need to access or change are available to you without having elevated permissions. "Most" being the key term here. When you want to do things that affect or change the core software of your device -- like updating the version of Android on your phone, or adding a nice piece of software from another device -- you'll have to do it as root. Dream and Magic users have been running Eclair on their phones for a good while now, and it’s because they have rooted their device. Rooting also gives you access to some handy software that you couldn’t use otherwise. Things like a complete system backup or ad blocking software require you to root your device. Don’t root your phone just for the sake of rooting your phone, but if you come across something you feel you could use or would like to have, then consider it. You'll find that the open source community is usually pretty helpful and encouraging new people to do new things is common. And when you get to the point where you can lend a hand to the new folks, pay it forward.
So it's like jailbreaking?
Pretty darn close. Jailbreaking an iPhone or iPod touch opens up things like using applications that aren’t manufacturer-approved or changing the look and feel of the device. Android already allows this to a large extent. The changes behind the scenes are the same way. A lot of what you can do with a jail broken iPhone you can already do with your Android phone, but to really unlock everything you’ll need to root it. The concept itself is identical. You’re allowing things that usually wouldn’t have root permission to have them.
Is it dangerous? Will it break my phone? Will it void my warranty?
It can be, It might, and Yes. By not allowing access to the superuser account, the manufacturer and your carrier have basically protected you from doing things that change the system and make it unusable. All it takes is one wrong keystroke to turn your shiny new Android phone into a plastic and metal brick with no connection. Most times this is recoverable, but not always. You have to decide how capable you feel you are, and how well written the instructions you’ve found seem to be. Nobody will blame you if you decide against the risk, especially your cell carrier. All major carriers and manufacturers plainly state that altering or using unapproved software voids your warranty, and rooting falls into that category. While that seems a bit harsh, they need to be able to support the products they sell. For that to happen, they need to know exactly what’s running and what it’s doing.
Apps that run as root need a little further consideration. You need to have a level of trust in the person who wrote the app first and foremost. Does the developer have other software available? Do the user comments (for Market apps) have anything that raises a red flag? Do the requested permissions seem a little odd? These are all questions you need to think about before you allow something to run as root. For a further level of security, think about installing an application that warns you anytime something tries to run as root. SuperUser Whitelist (Android Market link) is a great little app that does exactly that. If you decide to go on and root, ask users with the same device as you for a link to a version of SuperUser Whitelist that works with your firmware. Once installed, anytime something wants to run as root, the app intercepts and asks if you would like to allow it. You’re given the choice to accept, decline, or grant the app in question full privileges each time it runs.
One last thing to touch on here. Many custom ROMs include some sort of SSH server. This can be a wonderful tool, or it can get you in hot water. This is what caused the whole “Rick-Roll” episode with the latest iPhone jailbreak. The server sits and waits for an outside connection, and if that connection provides the right password full control of the device is turned over. In the case of the iPhone, users never bothered to change the default SSH password for root. A clever (or devious) group of users simply scanned for servers listening on the correct port, then attempted to sign in as root with the default password. Lesson learned, but this is easy to prevent. Ask other users of the ROM or firmware you’re thinking of flashing if there is a server listening, and if so how to disable it or change the default password.
If I root, will I still receive operating system updates from my carrier?
Maybe. More than likely if you’ve just rooted your phone so you could have access to the full file system and haven’t drastically changed things, the phone will still pass your carrier's checks and upgrade. If you’ve delved deeper and really customized your device, count on not being able to upgrade. Carrier updates were designed to work with the original software, so they need to be sure that’s what the phone is running. Again, this is for your own good. T-Mobile or Verizon can’t offer technical support for things they haven’t trained their technicians on, and if you flash a carrier approved update over custom software it’s probably not going to work.
The good news is that failing the checks the carrier does during an update won’t cause any damage to your phone. The update will just quit and you’ll be back where you started. Then you can decide if you would like to un-root and upgrade or take another path. The worst case scenario is that the phone passes the carriers checks, updates, and then things get broken. That’s pretty unlikely, but possible. If that would happen, you won’t be alone. Everyone in your situation will scramble to their favorite Android user forum and hopefully a work around can be found.
Note - a carrier update may also break the ability to root the device and a new method will need to be found. Any discussion of upgrading and root needs this mentioned as well. Most folks who root and decide to install a custom ROM wait for the ROM developer to provide an update that includes any bug fixes or new capabilities of the carrier update.
Will I still get application updates?
Yes. While it’s not being used, the program that allows permissions to be upgraded just sits and does nothing. Normal applications won’t even be aware it’s there, and applications that use it expect it to be there. Application updates, whether they are from the Market or other third parties will still install as normal.
If I decided to 'un-root' my phone, how do I do that?
It depends on the model of your phone. Some are ridiculously easy to revert, some not so much. This is the most important question you can ask before you dive in and root your phone. Usually the website you found the method to root your phone will also have a discussion about un-rooting and going back to stock firmware. Take the time to find and read this information so you’re aware of just how difficult it’s going to be to go back. Pay close attention and create backups when recommended while you’re rooting your phone, as these may be needed to go back. I’ve not heard of any device that can’t be restored to factory firmware provided the original was backed up properly as recommended during the rooting process. The most important thing to always remember is to ask for help. If you do find yourself stuck without a backup or a working phone and need to roll back, ask for advice. Our forums are full of fine folks from all walks of life, and the majority are more than happy to help. There’s a good chance you’re not the first person in that situation and a solution has already been worked up!
As you can see it is something that needs a little thought before you dive right in. But if you decide you need root access, consider some of the information we’ve laid out here. The security and other risks are real, but are pretty easy to work with. There’s no reason you can’t safely root and use your phone, just do your homework first!