Skip to main content

What does rooting your phone actually mean?

Root Permissions on an old Nexus phone
Root Permissions on an old Nexus phone (Image credit: Android Central)

We love getting your questions. It's always a good thing when we can help each other, and we learn stuff ourselves when looking for the answers. While we can't find time to answer all of them, sometimes a certain question comes up enough that it deserves a detailed answer.

"What does root mean?" is one of those questions. The concept may be simple for some of us, but for many folks who haven't spent time fiddling around with Android or any other permissions-based operating system, it's something to ask questions about. I'm going to try and answer them all as best I can.

Permissions

file permissions

Before we define root, it's important to understand why it exists and how it works. It's because Android uses permissions (Linux-based permissions, to be exact) in the file structure. Every file, every folder and every partition has a set of permissions. These permissions decide who can read a file (look at or access the contents without changing them), write to a file (be able to change the contents of that file, or create a new file inside a folder or partition) and execute a file (run the file if it's a type that can run, like an app). This is done based on users and permissions — certain users have access, while users who don't have the right permissions are blocked from having access.

When you first set up your phone and turn it on for the first time, you are assigned a user ID. If another user logs in via Google, they are assigned a different user ID. When an app is installed on your phone, it's also assigned a user ID of its own. The system itself is a user and other processes that need to run on your phone may have their own user ID. Everything that can do anything to any files on your Android is a user.

A system of users and permissions is how Android keeps track of who can do what.

Let's say you install a messaging app. It gets assigned a user ID when you install it. It also gets a spot on your data partition of it's own, that only it has access to. You have permissions to execute the app, and when the app runs it has permission to access its own data folder and files. The app may also request permission to access things like your address book or SD card or photo library. If you say yes to these requests (or if you agree to the permissions on older versions of Android) the app's user ID is granted permission to the data files of those things, meaning it can look at the data folder and its contents and possibly change them or add new files. The app can't access any data files it doesn't have permission to "look" at. That means (in our example) it can't do things like look at the settings database, or access the data folder of another application. The term sandbox is often used for this — apps are sandboxed and can only play in the sandboxes they have permission to be in.

For files that are programs and can run (like apps), the same permission model applies. Your user ID has permission to run the apps you installed while you are signed in. The system user has permission to run them and other system-level users may have access to the apps or certain processes the apps use. Other apps can't start up apps they don't have permission to start. If you added a secondary user, they don't have access to your apps or files and vice-versa. There are files, folders and apps on your phone that your user ID doesn't have permission to see, alter or run. Usually those parts of Android require system-level permissions (the system user ID) to do anything with, and you aren't the system user or a user that has system-level permissions.

Switching permissions

SuperSU

While it's technically possibly to change the way your phone boots up and the files it uses to start the running system and assign your user ID elevated permissions, that's neither safe nor practical. But Android (and most Unix or Linux based systems) have what's called a root user, and support the SubstituteUser binary (think of a binary as a small app) to change user IDs. Those are used to administrate the system at the core level.

Because the people who made your phone don't want you to have easy access to the root user ID — and not all the reasons are selfish because it also protects you and your private data — the SubstituteUser binary isn't included in most builds of Android. Without SubstituteUser, we can't switch our user ID. Most system level things in Android have similar easy names, by the way. The core security (files in the bootloader and/or the kernel itself) are also built in a way to prevent you from switching user IDs as part of the SELinux (Security-Enhanced Linux — told you the names are easy) kernel module. Some phones (Samsung's Knox comes to mind) have further protections, and nearly all the companies who make Androids require that, in order to make changes, the bootloader would need to be unlocked so these files can be changed and allow you to switch user IDs. Some phones, like the BlackBerry Priv even go a step further and aren't going to boot if we change anything (even if we could).

To become root, you need a way to change your user ID.

Once we get past all that — either by unlocking the bootloader through authorized means or using some sort of exploit — we can place the SU binary (SubstituteUser) in a spot that it can run when it's called to run — that's called a PATH. If any app is in your user ID's PATH it will run without telling the system exactly where it is. You also need to make sure the SU binary is in a spot that your user ID has permission to execute (run) files. Any other app (Google Play has plenty of apps that need root permissions) will also need the same access. When you use a method to root your phone, all this is sorted out by the folks who built the root method.

Once all that is in place, we can run the SU binary (or another app can run the SU binary).

Getting root access

I am Groot

This is where root comes in. The SU binary uses flags when it's run to tell the system what user ID you want to switch to. For example, if I run the SU binary on my Ubuntu computer like this "su Jim -c nano" I will run the nano command as the user Jim (after supplying Jim's password). If you run the SU binary with no flags or arguments, it switches you to the root user. Normally you would need to supply a password, but since "root" is an unused user on Android it has no password. Running the command "su" will switch you to the user root, and assign you the user ID of 0, and put you in the root group. You are now the Super User.

As the Super User you can do anything to any file, folder or partition on your Android. By anything, we mean literally anything. You can remove bloatware apps and you can also remove essential system files that break your phone. You can also do things to the hardware like change the CPU frequency and ruin your phone forever.

Root is the super user, who can do anything. And we mean anything.

Apps can do the same thing. SU is placed where it's in the application PATH and any app can call it and run it. That app then has Super User permissions, and can do anything it likes to any file any place on your phone. This is why the people who made your phone really don't want you to have this level of access, and the companies who allow you to unlock the bootloader and change things still don't place the SU binary on your phone by default. Having root access with no way to control who or what can use it is dangerous to your phone's software and your personal data.

That's why you need to install an app that forces you to allow root access any time you or another app tries to invoke the Super User permissions. Most times when you use a root method for your phone one will be included, along with some other useful binaries like the BusyBox toolset. If you did things by hand, you'll need to install one yourself. SuperSU by Chainfire (opens in new tab) in Google Play is a good one to start with.

Odds and ends

Many phones and some root methods do things a little differently (Android 4.3 brought a lot of changes) and require scripts or a daemon (you'll see words like daemonsu or su.d mentioned) instead of just dropping the SU binary in place. These are used to call SubstituteUser so you can switch to the root user just like the raw binary method. The people who figured out how to root your phone have sorted all this out and it will work the same on the user-facing side.

It's also possible to "temp-root" some Androids. This means you can have Super User permissions and do a few things you need to do, but a reboot takes root access away. Likewise, you can have a "shell-root" where you can only access the root user through adb from your computer.

Finally, I want to stress that if you had these questions, you need to consider if you're ready to have a rooted Android. We weren't kidding when we said it's easy to ruin your phone with SuperUser access. There's no reason to be ashamed that you need to do a little reading or ask a few more questions before you do things that can break your phone or give some random rouge app access to all your data.

That's what we're here for.

Jerry Hildenbrand
Senior Editor — Google Ecosystem

Jerry is an amateur woodworker and struggling shade tree mechanic. There's nothing he can't take apart, but many things he can't reassemble. You'll find him writing and speaking his loud opinion on Android Central and occasionally on Twitter.

49 Comments
  • Really good read, thanks for the Article Posted via my LG G4
  • +1 Posted via my amazing, bent nexus 6p
  • Very good article and info. Well done! Posted via my Note 5 or iPhone 6s Plus
  • Jerry does it again, nice one! Posted from my cracked Nexus 6/Nexus 7 2013/Surface Pro 3
  • EXCELLENT explanation! I highly, HIGHLY recommend anyone even considering rooting their phone to read this carefully... maybe even a couple of times because what Jerry is describing is very powerful, and as he indicated, potentially very dangerous. Nice job putting it easy to understand language. ...Joe K.
  • I do have a question, when you root is this how people put (forgive if i spell it wrong) cynagen mod on it? And pure android? I use to jailbreak on the iphone but i never have felt the need to do any of this to my G3 or G4 Posted via my LG G4
  • It is part of the process. All phones different though.
  • Technically, no - though in general, people who install custom roms will root their phone to allow modifications to the /system partition (usually a read-only partition). While a full article could be written about this, the idea is that a custom recovery program (like TeamWin Recovery Project - TWRP) is installed. This essentially lets a recovery image be flashed that overwrites the /system partition containing the OS on your phone. You need a custom recovery to do this as the stock recovery "program" on your phone will verify images are signed by the manufacturer - which obviously won't happen if using a custom rom). Posted via the Android Central App
  • This is a good explanation. It's best to assume I'm being sarcastic. if I'm ever serious I'll type "/s" to make it clear.
  • Devhux pretty much nailed it. Main thing I'd add is that putting custom ROM on is how most people root. CyanogenMod is a popular one but there are other nice ones. Posted via the Android Central App
  • This is all confusing lol it is safe to say I prob shouldn't mess with my phone. I tried to unlock my bootloader on my G3 and Sprint wouldn't let me Posted via my LG G4
  • Lol. If you don't know why to root. Or what can you gain from it then you'd better not root it. Then if you mess up you won't have a phone or help. If you have a backup phone, learn on it. Posted via the Android Central App
  • These days, Android phones have come such a long way and the vast majority of them will do everything you want them to do without root. Now in the early days when Android was clunky and unrefined, gaining root access gave you added benefits, that are now common place. If you want to tinker; venture into custom ROMS, run amok with Tasker or hot spot without carrier barriers then by all means root away, but you MUST take the time to educate yourself ! A good rule of thumb is to learn how to return to stock when things go south before you do anything. If you're new to this sort of thing, probably best to start with a yesteryear Nexus phone, messing with many non-Nexus phones is tedious and demands even more preparation and research.
  • I'm sure that rooting is a wonderful way to customize your phone.
    Warning, if you don't know what you are doing, don't root your phone.
    It can be impossible to undo rooting if you are not an expert.
    What happens if your carrier comes out with a critical update and you can't apply it because you are rooted?
    Happened to me, just saying. Posted via the Android Central App
  • What kind of critical update are you referring to? It's always possible to factory reset your phone if unrooting it is a problem.
  • Factory resetting your rooted phone wouldn't help you take an OTA. Posted via HTC 10
  • Factory reset doesn't actually modify the /system partition - it just clears the /data partition. That's why you'd still have root after a factory reset. You would have to flash your phone's unmodified (no root or other customizations) rom and probably recovery image in order to accept OTAs, or be able to flash an image of the new rom via fastboot commands or a utility such as Odin (Samsung) or LG Flash Tool for example. Posted via the Android Central App
  • My bad... I misspoke and meant to say flash the factory image.
  • Yes, but acquiring and flashing a factory image is not a trivial exercise.
    I know, I know, you just have to..... Bottom line, if you don't know what you are doing don't root.
    (I rooted to the Google imposed block on SD card folder/file manipulation. Worked great but...) Posted via the Android Central App
  • Anyone who can root their phone should be able to handle flashing a factory image. I agree root is not ideal which is why Google should have a real sudo like function (the kernel in Android is Linux after all) that can be enabled in the developer options. Users should be able to have control over their own devices period.
  • I would like to know more about your issue as well. I have never come across a root process that also doesn't include a way to undo root as well. Usually always possible go back stock.
  • It will unroot but from lollipop onwards I think, even if you unroot it, it won't flash the ota. Posted via the Android Central App
  • Thank you Jerry good read!
  • Isn't it just an android form of jailbreaking? Posted via the Android Central App
  • Much easier to root android than jailbreak IPhone, but yeah same concept. Posted from Nexus 6
  • R u sure about that? it's very much a toolkit method. Posted from my cracked Nexus 6/Nexus 7 2013/Surface Pro 3
  • Yeah I'm wrong in the fact you are basically I believe, only changing the kernel on iPhone so you can access third party applications. You are not really changing the behavior of the phone system wide. I stand corrected. Posted from Nexus 6
  • A jailbreak is just that, getting out of a jail. Rooting is installing SU to switch users. Posted via the Android Central App
  • Rooting provides much more features than what Jailbreaking can provide. You get full control of your phone.
  • It's been awhile since I have rooted my phone (HTC EVO 4G) . Next phone was a galaxy Nexus. I'm currently have a S6 and waiting on the next Nexus device (no root needed). The article was well written and straightforward!
  • The Evo 4G was the first phone I rooted as well! I put Cyanogenmod on it and it was like I got a whole new phone! Eventually I learned to flash kernels so I could push that original snapdragon processor a but harder. Those were the days!
  • Root for your phone is (almost) just like having Administrator rights on Windows (and root on Linux/Mac). And, and unlocked bootloader is sortof like being able to update your PC BIOS and/or install different operating systems. I avoid devices where I can't get those standard privileges normally or by hacks.
  • It is literally getting root in Linux. Rooting installs SU on Android. Posted via the Android Central App
  • That's a great way to put it, in layman's terms
  • Thank you very much! Well said. Posted via the Android Central App
  • I know how it works. I used the Windows admin analogy because most people use Windows. (I myself have run Linux and *BSD in its various incarnations since the 90s, and have developed a few android apps, which might explain my greater interest in wanting FULL root privs on all my devides :))
  • I wish Android were like Windows where I can log in as administrator on the occasion I want to make system changes (such as simply installing a blocking hosts file to block known malicious Internet stuff as well as ad networks). Otherwise I'm logged in as a general user (non-admin) for regular daily use. I understand the need to protect the average Joe from themselves, but they could design this where it's hidden yet available for those who want it (like me an IT Pro) and know what it entails. It would certainly be a lot safer than messing around with some root method and possibly messing up your phone in the process! Honestly they make this way more difficult than it needs to be. Just build the damn functionality into the system!!!!
  • This article should be easily accessed from somewhere. Sticky maybe, helpful Posted via the Android Central App
  • I have 3 rooted phones in the house. My current daily is one of those, complete with a custom ROM, Xposed and GravityBox. If you're ready to take the plunge, you're going to be in a wonderful world of almost limitless customization potential. Just don't forget to read the article above so you understand what rooting really is. ;)
  • Like others have said....study, study, and then, study some more. Look at as many different ways to root your device, learn how to unroot, and look up common issues during the process. It's much easier to be somewhat prepared for what may go wrong than to have it go wrong and go into a panic. Panicking will cloud judgement, and a poor decision may be the result. Nexus 5X, Android Central Ambassador Team Leader
  • This is not the article I thought it was going to be; this was much deeper and I learned a lot! Thanks as always Jerry!
  • I like this article. I learnt a lot. Thanks! Although I have rooted phones before and played around with custom roms, I just followed instructions and never really understood what I was doing or why I was doing them.
  • What about "locked" phones. Moto G LTE version for example.
  • Just make sure after you root and have a custom recovery installed, do a backup!! Once you have a backup then you can pretty much do whatever you want. If you screw your phone up and will not boot you can just run your backup, no big deal.
  • It's worth remembering that, even when you know the basics of rooting, bad things can happen unexpectedly. Recovery backups are a must if you're new to rooting but they aren't fool proof. When your stock rooted OPO takes an update and unexpectedly changes partitions around, that backup as well as everything else you had stored is useless until you figure out where it got moved to.... and it won't boot up until you figure it out and change it. Or lets say your Nexus 6 has a ROM that's crashing, boot looping and useless. You go into TWRP (recovery) and thanks to not understanding the "read only" or "modify" question it hits you with right off the bat, you let TWRP unencrypt your phone. Well, it just wiped your storage completely. Your backup is gone. The original ROM zip is gone and you're left with a shiny new brick that still won't boot up for you. The XDA forums are full of posters who found unexpected problems like these. If you want to get into rooting, expect the unexpected and be ready to research your way out of problems.
  • good article, atleast have information collated at one place.
    It will be better if you add legality also here, for eg; that you void warranty if you root your phone
  • I don't have an Android device (Lumia 950XL), and found this interesting That's gold, Jerry, gold!
  • Wow very cool for me. I am an old Tech Geek but need to still read articles like this to remind me of the importance of knowing what you are doing before you know what you are doing.
  • I have an andriod phone and cant move any apps installed to my 32 gb sc card i wish to learn more about rooting unrooting ect. Can you send me more information ?