[Verizon Samsung Galaxy S III] Bleelas:
Introduction to Rooting:

This is meant as a very basic disccussion for people completely new to rooting and Android. As a result, it will omit many details and simplify others. If there is a blatant mistake, please let me know and I'll correct it, but if there's something that's just not QUITE right, chances are it's simplified on purpose. Also, it's not meant to be a rooting guide (as there are excellent ones out there already) so much as an explanation of concepts most of us take for granted, but noobies don't.

DISCLAIMER: I, nor anyone else referenced (or not) in this thread, am not responsible for what you do with your phone. Rooting and otherwise altering your phone has the potential to brick your device, void your warranty, and many other horrible horrible things. Perform these actions at your own risk.

What is root/rooting?

In Unix-style operating systems, "root" is the name of the user who has all permissions and is therefore able to run/modify/change/delete just about anything. If you're familiar with Windows, this account is called Administrator. The default account (that's you!) on an Android phone does NOT have these privileges. Rooting is the process of obtaining them (i.e. obtaining root access). Once you root, you can "flash" new software onto your phone without restriction. This is great because you now have control over what programs are on your phone, what your UI looks like, how your phone handles resources, what kernels you run, and more!

Once your phone is rooted, you don't always wield all of that power. You control your access to all these new abilities with a program called SuperUser (available on the market and baked into ROMS). This program can grant these special rights to any other program that requests them. So let's say a program wants to write data to a place it's not allowed. It will ask SuperUser to up its privileges and then BAM! it can write where it wants to. You yourself can gain SuperUser privileges in a shell by typing su. Then YOU can read, write, and execute to your hearts desire.

Before you root:

Before rooting, there are some basic things you should know. A lot of people rush into it without bothering to learn everything they should. Sometimes it goes well, and sometimes it doesn't.

Phone partitions: Your phone has a number of partitions. The important ones to know at first are:

1. System - this partition is essentially what you think of when you think of the operating system, the Android UI, and preinstalled

apps. When people talk about flashing ROMs (e.g. CyanogenMod, Synergy, etc), they are talking about flashing a new system

partition.

2. Boot - this is the kernel and ramdisk. The kernel is responsible for managing the interactions between the phones software (including the ROM) and the

hardware. Altering the kernel can increase/decrease performance, battery life, and more because it manages applications and system resources. When

you flash a new kernel, it flashes to the boot partition. You may not notice a big difference like you do when changing ROMS, but behind the scenes, your

phone's performance can be drastically altered. A *LOOSE* analogy is that the ROM is like the body and interior of your car (including exterior color, AC,

stereo, heated seats, TV in headrests, etc.) and the kernel is like the engine. You may not see it, but you'll know it's there if it's awesome or it sucks.

3. Aboot - this was largely unimportant for newbies until the bootloader lock/unlock situation. The short story is that aboot contains functions which

authenticate the boot partition (that's the kernel, remember?). It checks to see if your boot partition is Verizon legal and if not, it aborts the boot process

and politely tells you to contact Verizon. This authentication is what is referred to as a "locked" bootloader. It prevents you from completely booting the

phone with a custom kernel. The bootloader is "unlocked" by replacing the stock aboot partition with one that does NOT check up on the boot partition.

This is important because it allows us to run whatever kernel we want.

4. Data - this contains user installed apps, settings, contacts, bookmarks, etc, etc, etc. You can wipe this partition (as opposed to the above partitions) and

still boot into the operating system. You will have just lost all your setting and apps. This is called a factory/data reset.

5. Cache - this is stuff that you frequently use so it's kept available for better performance. You can wipe it without much consequence.

6. Recovery - this partition contains a separate operating system that allows you to recover from a corrupted/absent/otherwise jacked up operating system. It

has other functions as well. The big ones are to backup your device and restore said backups, to wipe certain partitions, and to flash things to your

phone (i.e. install new ROMs, recoveries, or other programs). The stock recovery is limited so you will definitely want a custom recovery, created by the

fine devs in the community, on your device.

What is a ROM and what is a kernel? I touched on this above. A ROM is what goes on the system partition. It contains what you think of as the Android OS including the UI and preinstalled apps. It controls how programs interact with you, the user. A kernel controls how those programs interact with the phones hardware. You need both a ROM and a kernel to have a functional phone.

How do I get started rooting and flashing?

There is an excellent guide stickied in the development thread here http://xdaforums.com/showthread.php?t=1762709. However, many of us

forget what it's like to be a COMPLETE newbie and to someone who has no idea about anything, even fantastic guides like that can be a little intimidating.

You can follow the steps, but may not understand what you're doing. The steps to take to start out with are:

1. Make sure you understand what I've written above. Make sure you are comfortable with the possibility of bricking your phone.

2. Root your device. As I said above, this is simply gaining root/Admin/whatever you want to call it access on your phone. In and of itself, it does NOT alter

the ROM or kernel or much of anything else. However, there are many different ways to obtain root and some of them DO alter these things. The easiest

and safest way to root (IMO) is to use Noxious Ninjas excellent tool. http://xdaforums.com/showthread.php?t=1792342. If you like it, I

encourage you to donate or at least "Thanks" him. It works by taking advantage of debugfs permissions to get su (remember this from above??) onto

your phone with permissions set so you can run it. It therefore doesn't change ROMs or anything else. You won't lose data, apps, or anything else. It just

sneaks su right onto your current setup.

3. Install a custom recovery. This will allow you to do all the fun stuff I talked about above. I recommend installing EZ-recovery from the market and flashing

CWM 6.0.1.0.

1. Install EZ-recovery

2. Under the "Recovery" heading, click the Recovery radio button and select CWM 6.0.1.0 next to it.

3. Click flash

4. Backup everything as if your life depended on it. This means backing up your IMEI as shown here

http://rootzwiki.com/topic/32397-tutorial-imeibackup-nv-with-qpst-us-variants/ and making a nandroid. A nandroid is an image of your phone

including your ROM, your data, and your kernel(depending on what phone you have). You can restore a nandroid backup and you'll be right back where

you were before flashing or changing things around. The steps to making a nandroid are:

1. Turn off your phone.

2. Hold down volume up, home, and power until recovery appears.

3. Use the volume rocker to go to "backup and restore" and hit the power button

4. Select backup and then select the external (default) or internal (labeled "internal") SD card

You can restore a nandroid in a similar fashion (although you should wipe data/cache first - see below).

5. Unlock the bootloader. You must do this seperately from flashing ROMs and kernels. Refer to this thread http://xdaforums.com/showthread.php?t=1839791 and give appropriate thanks! A warning...if you mess up your aboot partition, there's really nothing (that I know of) you can do to revive your phone besides send it to someone with JTAG or back to Verizon.

You're now ready to start flashing ROMs.

As a precursor, there are ROMS that are based on TouchWiz modified Android from Verizon/Samsung and there are ROMS based on AOSP (e.g. CyanogenMod). TW roms need a TW kernel and AOSP roms need an AOSP kernel. Until you get comfortable with everything, I would stick with TW. Also, some roms come with kernels and will flash the kernel to your boot partition as well as the ROM to your system partition. Some ROMs don't come with kernels. ALWAYS ALWAYS ALWAYS read the OP of a rom you want to flash to find out kernel information as well as how to install the rom and anything else you may need to know. The general steps to flashing a ROM are (remember to read the OP for specifics):

1. Backup apps, data, call log, contacts, messages, etc. My program of choice for much of this is Titanium Backup available on the market. Buy it as you'll

use it a billion times.

2. Download the ROM you want and check the MD5

3. Place the ROM on the root of your SD card. Do NOT unzip it.

4. Reboot into recovery and make a nandroid backup

5. Wipe data/factory reset and wipe cache. Wipe it more than once if paranoid.

6. Go to "install zip from sdcard" and select the ROM you want

7. If you want/need to flash a kernel, install that zip from the sdcard too with the same command

8. Reboot and restore all that you backed up

Remember:

- ALWAYS backup before doing anything

- verify MD5

- wipe data and cache (unless told not to by the ROM dev)

- NEVER accept an OTA (having a custom recovery should block OTAs anyway)

PS. The techniques, tools, roms, etc in this post are not mine and arte the products of hours of hard work by multiple devs. Please thank them accordingly.