Click the "Show" button below for a root warning / disclaimer:
Quick note / disclaimer: as always, you are ultimately responsible for any root-related activities on your phone. You should understand not only the benefits of rooting, but also any possible consequences (voided warranty, boot-loops, bricking, etc.) that might occur as a result of your root-related actions. Reading, researching, understanding, and carefully following the published steps and instructions can go a long way towards helping to make your rooting efforts a successful one.
Here's a few threads (and excerpts from each thread) here at AF that already tackle this topic:
Most carriers "lock" their handsets to discourage customers from taking their handset and moving to another carrier. Carriers also depend on "exclusivity" agreements to encourage users to switch to their plans so they can use a particular handset (e.g., Apple's iPhone on the AT&T network). To use the handset on another carrier's network it would be necessary to "unlock" the handset. This is done with a code based on the IMEI of the handset that can be provided by your carrier or firms on the internet that are slightly more reliable than west African ebay bidders. Unlocking is not possible with CyanogenMod or any other Android replacement.
Furthermore, they may impose software limitations to prevent using the handset in a manner that might undercut their voice plans (e.g., Skype, Google Voice), or putting strain on the data network (e.g., tethering, streaming video). The way to get around this is to acquire 'root' (i.e. Administrator) access on the device, so you can install/modify/fix/break anything you want.
Rooting directions vary from phone to phone, but a good place to start would be the Android Development forums at XDA-Developers (.com).
In and of itself, root only gives you access to secured parts of the phone, just like if you're using using Windows and you have to click that little Run As Administrator prompt. Basically it's a system developed a long while back that keeps the regular day to day operations from being able to have too negative an impact on the rest of the system.
The positive thing about root is everything it then allows you to do further on down the line including custom apps, configurations and even OS'.
what is it?
it's all kinda easy...
imagine your fathers pc:
you can log in as a user, your father may have allowed you to install stuff. but hey the c:/windows/ folder is locked and you can't screw up the computer.
android works on linux.
linux has the following system:
as a regular android user you are an "admin user". you can install stuff, update, make the screen shiny and just work on it.
super users can screw up the kernel, over clock the processors (and overheat them by accident), get more sound from the speakers by "over clocking" that to, replace the system with another one, etc.
this has something to do with the security of the phone and the security of specific folders (with the most important folder called "ROOT").
like my android milestone is protected in two ways:
1: the phone's "bios" (protects the phone from weird changes and combines all devices in your phone to a working system)
2: the phones ROOT (contains all info on how the phone should work)
the bios must be cracked to make changes in the system (like ROOTing) some nerds do this and post "backups" of this system to xda-developers.
hackers/programmers make changes to specific files to remove the lock on SU (superuser) and post these in this backups.
SU-acces allows you to do things that are not supposed to work like sharing your 3G-connection to wifi. this is blocked till 2.1 because phone carriers din't like that. now with the 2.2 update it becomes legal). or change the folder where your apps are installed from phone memory to the SD card(once again in the 2.2 update they fixed this).
But, as you can think with your brains. Rooted systems can be broken by the most stupidest terminal commands (since you can just command the phone to blow itself lituraly), or even when you delete a file from the ROOT folder by accident. bricking the phone becomes very easy. that's why phone sellers won't help you as soon as they notice you were using a ROOTED phone.
you can test if your phone is rooted by downloading a small app called "terminal emulator" and filling in the code:
this (SuperUser) command, means that you tell the terminal that you want to start changing important stuff and you need all acces possible.
If the system is rooted you are presented by a # after you click the Enter(return) button on your keyboard.
if the system isn't rooted you are presented by the text "No acces" or something like it.
Rooting is only cool for people who: build their own systems, want to be their 1G phone (very old phone) a bit faster, or just want to prank to their friends on how they ruined their phones (and how much money they have to buy a new one).
Rooting is not cool for people who: know nothing of terminals and linux systems, are no developers for google, have brains, want to keep their phone carriers friendly,experience that in a pocket they can accidently push buttons and people who want to use their phone the best way possible (it costed manufacturers loads of time to adjust the system in such a way that the phone works the best, why would you screw that up?).
hope this solves the big question about Rooting.
but for those people that only read the last line:
rooting is giving yourself acces to the folder called ROOT, where the system get's it's knowledge on how many volts it should send to the different parts of your phone, and how everything in your phone should work. a good thinking (wo)man wouln't concider rooting for even a second!
Generically speaking, rooting often is nothing more than hitting a known exploit where for a very brief instant, root access becomes available. These injection points are given names, like RageAgainstTheCage. During that time of root vulnerability, a system injection is made to hold the root door open until you're established as root.
Because they're timing dependent, doing it by hand may or may not require multiple, boring iterations - hence, the methods get scripted (sometime with the necessary iterative loops) and the result are the one-click methods.
to "root" your phone essentially means to give yourself superuser access on it. This is like being the highest level of administrator for the device. This allows you to change the interface of your phone. Once your phone is "rooted" you can install custom ROMs (they look alot like themes, just google the name and you'll see plenty of examples). You can also download "rooted only" applications for use on the device.
A "Root" in general is the most basic directory in a system. For instance the Root of your computer most likely is the "C:" drive. Their also happens to be a "Root" of your smartphone, which is what is manipulated in order to achieve a "rooted" phone and its benefits.
Android is built upon the Linux operating system, where there is a concept of an administrator user aka "root" that has full permissions to the system. When you "root" a phone, you are enabling access to the root user so you can call on that user to access protected functionality.
As a regular user, you can request "superuser" access, which is another way of saying that you want root privileges. In a traditional Linux OS, if you log in as root, you can actually create multiple superusers, like a team of administrators, with either complete power, or some subset of power. But for the purpose of Android phones, the only superuser is root, and root always has full access to the system.
To request superuser access, you would use a shell command called "su." In Android, the su command works in conjunction with an app called Superuser to grant the Android application(s) root access. The Superuser app is included in the rooted ROM; it's something you automatically get when you root your phone.
Android applications with root access can do a lot more. If you ever see an app on the market that says "for rooted devices only," it means that its functionality requires root access. A normal unrooted phone would not be able to perform that functionality.
Gaining root access is the equivalent of having admin rights on Windows.
If you didn't root it or purchase it from someone who stated it was rooted, then it isn't.
With root you are able to access and change all files on your device where as when you arent you can only access the ones the manufacturer want.
Root is the Unix/Linux term for administrator. It gives you permissions you do not have normally with the regular user permissions
To answer the question is in linux you have the opportunity to gain super user access through terminal this is exactly what root does gives you permanent access to root directory of your phone meaning you can mod the phone all you want including erase the operating system and brick the phone on the bad side.
To clarify from above: A phone that is NOT rooted can still be modified (you can still make it LOOK different) by using applications like Launcher Pro, for example, and installing Themes. You don't need to root to do this. If your phone is NOT rooted, you can also still access files that are on the SD card and/or on the internal memory, you just can't access _all_ the files on the internal memory. This is an important distinction imho because a complete newb might misunderstand and think he/she needs to root to access any of his/her files.
1. If you Root your phone, you will be able to access files that you are not allowed to access without root. These are usually important system files, which you don't want to touch unless you know what you are doing because you could screw up your phone.
2. If you root your phone you can use certain apps that need to access parts of the Android system that can't be accessed without root, but these are mostly obscure (in the past you had to root to tether your phone to your computer to share your data for internet access, for example, but that is no longer necessary).
3. Rooting lets you delete the bloatware/crapware that often now comes pre-installed by the manufacturers and carriers, and which usually can't be deleted/uninstalled without root.
4. Rooting lets you install custom ROMs. A ROM is like installing a different version of the Android OS with some changes/tweeks to it, like changing the layout and design of the user interface (UI), or so that you can get a newer version of Android on your phone before the manufacturer releases an update (if they ever even do!).
These are the main things accomplished by rooting, and it is important to note that if you attempt to root your phone and don't do it properly, you could "Brick" your phone, which means it becomes inoperable.
the others have given you good info...
but to put it more simple...
rooting is getting access to the ROOT directory of your internal storage. This is how you can get control of all your phone functions that the service carrier has denied you from.
To me, rooting is gaining special access to things on your phone that the carriers and manufacturers didn't intend for you to have (and they often have very good reasons for this, by the way).
To actually gain root access usually (but not always) requires uncovering some exploit that allows you to insert the su program in the /system/bin or /system/xbin directory. Additionally, you also need the Superuser.apk (whitelist app) to be installed in the /system/app directory. The Superuser app helps you manage which apps are allowed to have root access (i.e., so that not just any app can gain special control of your device).
Additionally, rooting sometimes leads to the ability to overwrite or replace the special partitions (filesystems) on your phone such as the recovery partition so you can install a new, custom recovery that will allow you to install (flash) custom ROMs (i.e., new versions of Android).
Finally, if you do root, take a peek at this thread to help you avoid some pitfalls later on: