[Galaxy S III General] danarama:
Note from the Author -

I am moving on to the N5 now and ditching my S3. I will continue to maintain this thread, however - please do PM me if you think that something needs to be changed or updated in this thread as I doubt I will be answering questions within the thread as much. Please don't PM support questions to me. Only PM updates that need to be made in the thread.

It's been a blast!

Regards

Dan

efs | backup your efs | backup your efs | backup your efs | backup your efs | backup your

Understanding the basics before rooting your S3 (GT-i9300/i9305)

This thread is intended to give you (as someone considering rooting your device) an overview of some of what I deem to be, really important information. Many people blindly follow guides and end up in trouble because they break their phones and don't really know what they were even doing at the time.

This may seem a bit overwhelming at first, there is a lot of text, but please do take the time to read it. It may save you further down the line.

Before we get started...

Here are a couple of threads you should get familiar with before posting on XDA.

Forum Rules - use Search before posting

Post Questions or Support queries in Q&A, NOT General

What is root access?

"root" is (but not exclusively) a Linux term. As you may or may not know, Android is based on a Linux Kernel.

The term "root" refers to the root of the device. All devices with an operating system use a series of directories (or folders) nested within one another. If you think of windows, your documents folder would be C:\users\username\documents.. Well, "documents" is a directory. It is within another directory (username).

Imagine "documents" being the top of a tree (A folder tree). You climb down the tree to username, past there to "users" and down to the root, in this example "c:". You cannot go beyond this level, because nothing exists beyond the root. To save a file directly on C: (not within any folders) would be to save a file to the root of your c: drive.

In Linux (unlike Windows), these root locations are completely locked down. A user of normal priviledges cannot edit any file or create files in these locations. They can only do this in their "home" location, which is the equivelant of username on windows. To gain access to these locations, you would need to be an administrator of the machine. Linux calls this Super User (su), and this user is said to have "root access".

This applies to Android in the same way. To root your Android device, is to have superuser access to the root locations of your phone, that you normally could not have access to.

Is it Risky?

There is always a risk having access to locations on your phone that are supposed to be locked down. You can easily delete things that your phone needs to boot up, which could lead to you losing all your data or even breaking your phone. This is why it is good have an understanding of your device and root access BEFORE you root.

It is worth noting that although many say rooting shouldn't void your warranty (it does in many places) even where that is supposed to be true, in practice, it isn't really. Even in the EU, I've seen many warranty claims rejected due to root so do think of your phone as out of warranty when you root.

The advantages of rooting

Why root?

More control over how the CPU acts. This can increase performance or battery life

More control over power consumption (undervolting)

More control over how apps start up. Prevent apps from starting up when they don't need to

Baseband. Try different basebands with the possibility of reducing drain or imporving signal strength

De-bloat. Remove or freeze system apps that you don't use

Access to community driven bug fixes that Samsung haven't released

Custom ROMs. Add additional functionality and controls over and above the stock experience

Increase redundancy. The ability to backup apps and entire phone

Theme. Don't be stuck with Samsung driving aesthetics.

Innovations. Use community driven features that improve your day to day experience

Better RAM management. Change the values of "Out of memory". Decide yourself when android should kill unused apps. Increase mutlitasking capabilities

Custom kernels. With kernels you can bring support for better audio features, better graphics performance and support for stock unsupported files systems

Google Android. Use android as it was intended before Samsung got their hands on it.

The Disadvantages of rooting

Why not root?

For all intents and purposes, rooting voids warranty.

Dangerous. You can break your phone and need the warranty you probably just voided

You open the doors for more mistakes. These mistakes may cause you to panic and further damage your phone

Lack of understanding. Blindly following guides and not understanding what you're doing.

No more official updates. Updating is a more manual process

Basic layout of /root on the GT-i9300

I'm not going to go into too much detail here. I just need you to know the basics. The GT-i9300 has an embedded Multi Media Card. This is the internal memory that everything on your phone you need to run it, is insalled on. It is the "internal memory" of the device.

Like windows and linux, there is a root to this memory, which has a few basic partitions that you need to know.

/efs - This is REALLY important. This is where your IMEI is stored, which you need to connect to your provider's network. Unfortunately it is the easiest partition to corrupt and impossible to restore without a backup so ensure you have a recovery or application to backup your efs cause if it goes (likely) you'll be sending your S3 to Samsung for repair.

Please read THIS THREAD for more info on EFS and IMEI issues.

/system - This is where the ROM is installed. Within /system are many important folders that you normally cannot get to.

For example, you have /system/app where all the important ROM apps are located. Things like the phone app and the messaging app. /system/bin, where all the important binaries are located that allow android to execute commands that it needs to, so it can function as an OS and /system/framework, where the crucial policies that control how things the user and processes interact with - act.

/data - This is where apps you install are kept. This is also where your data is kept, eg your SMS and e-mails. It also stores settings. If you change the wallpaper, it is stored here. What ringtone you have chosen... etc. The important directories here are /data/app and /data/data. These are what get wiped when you choose to wipe data\factory reset

/data/media is an important directory in /data. This is what is known as your "internal storage" or your "internal sdcard". /sdcard maps to here.

When you have root access to android, you can browse these partitions with a root explorer / file manager with root functionality.

There are also some hidden partitions you cannot browse like this. These are the partitions that contain recovery, bootloader and kernel

What are those things?

Kernel - This is always supplied with a ROM. It is the beating heart of Android. The ROM cannot function without the kernel. Since all ROMs include a kernel, if you're using a custom Kernel then flash a ROM, you will need to reflash the kernel again.

Please note, unlike the Galaxy S2 (and like almost every other modern android device) the kernel and recovery are independent. There is no link between recovery and kernel. Kernels are boot.img files.

Bootloader - this is what handles what you boot into. When you see the black Galaxy s III text, thats the bootloader. Its job is to handle the boot. It is responsible for booting into android, or if you manipulate the buttons in a certain way, it will boot into recovery or download mode. PLEASE NOTE, i9300/5 Bootloader is NOT LOCKED. DO NOT TRY TO UNLOCK IT. Only some US variants have a locked bootloader...

When you see this screen, you're looking at the bootloader:

Download mode is part of the bootloader itself. Again, it is a mini OS. It is designed for flashing stock (official) ROMs onto the phone (Which you can do using Odin). It is also used by Samsung to detect the status of your phone (if you have modified it or not).

If you have (or had before rooting) an official ROM above 4.1.1, Your bootloader flash counter in download mode will change to "1" at every boot, if you have a custom kernel or recovery - even if you reset it with Triangle Away. See the return for warranty link later in this post to get around this.

To access download mode, turn off your phone. Home volume down + home then press power. You will get to the screen below:

Press volume up to continue into Download mode:

Recovery - a secondary, min operating system designed to offer a few "drastic" options to recover when you cannot boot into android. For example, factory reset. Recovery isn't part of android. It is a seperate operting system. You can either boot into android or boot into reocvery.

To access recovery (custom or stock), turn of you phone. Hold volume up + home then press power.

The intial use of Stock recovery was to allow a user whose phone does not boot, to wipe their device to "recover" it to a booting state. It could also flash official updates from the sdcard. Custom recoveries do so much more, such as allowing you to flash custom rom.zip or kernel.zips from sdcard or backing up your device with a nandroid recovery.

Here is an example of a custom recovery (Philx Touch 5):

Please note, unlike the Galaxy S2 (and like almost every other modern android device) the kernel and recovery are independent. There is no link between recovery and kernel.

Some other stuff you may have heard about

Baseband / Modem / Radio - This is the software that manages your connection to wireless networks, be that voice or data. Unlike unrooted users, you can download and flash any number of i9300 (Versions for other models WILL BRICK YOUR PHONE) or i9305 radios pulled from official ROMs. I wouldn't waste too much time on them. Usually what your official ROM comes with in your country / for your carrier, is the most optimised for you. Try a few by all means but don't waste time testing every last one.

Be aware that Samsung official ROMs come with a baseband. Often this means Samsung based custom ROMs may also do so. Some ROMs which install using the Aroma installer (A kind of set-up wizard) may give the option to not flash the baseband. AOSP ROMs almost never come with a baseband. When you flash a ROM withotu a baseband, the previous baseband remains. You can by all means, mix and match ROMs and basebands. You are not tied to the baseband with the same build number as the ROM. For example, if you are on XXEMB1 ROM, you definitely do NOT have to stay on the XXEMB1 baseband.

RIL - RIL is Radio Interface layer. It's what sits between the radio (above) and the android telephony services. Each Radio is supposed to have a specific RIL. Every ROM comes with RIL as it's a requirement to function. Again, although the best pair is a matched RIL and Radio version, if you do change your Radio, it's not the end of the world. You may notice a little difference flashing the right one, but it's not something to get bogged down with. Personally, I very rarely try a new Radio. I almost never change my RIL.

It's worth mentioning that the above is only really valid for Touchwiz ROMs. AOSP ROMs use OpenRIL and are not compatible with Samsung RILs. Do not use apps like GetRIL or flash Modem+RIL packages on AOSP ROMs. You would have to reflash the ROM if you do this because using a Samsung RIL on your AOSP ROM will likely break your signal.

Also note, Nandroid backups generally don't backup the Radio. Some recoveries may give you a separate option to do so however. The RIL (as part of the ROM itself) is backed up in a Nandroid.

ROM - ROM really stands for "Read Only Memory" which refers to memory that cannot be overwritten. When we talk about an Android ROM, we are really talking about the Android OS which is installed ON the Read Only Memory, of course since rooting, the /system partition where the ROM is installed is no longer read only. It is read / write. Flashing a ROM will over write the entire /system partition with whatever is in the ROM.zip or ROM.tar. Any mods, scripts, themes or apps will be replaced. You can only have one ROM at a time, unless you use one of those funky dual boot kernels.

More advanced layout of the GT-i9300

Here we have a lovely MS paint diagram of the eMMC layout of the GT-i9300/5. Some of this you don't need to know, some of it you do.

1 BOTA0 - mmcblk0p1 - 4 MB

2 BOTA1 - mmcblk0p2 - 4 MB

3 EFS - mmcblk0p3 - 19.7M

4 PARAM - mmcblk0p4 - 8 MB

5 BOOT - mmcblk0p5 - 8 MB

6 RECOVERY - mmcblk0p6 - 8 MB

7 RADIO - mmcblk0p7 - 33 MB

8 CACHE - mmcblk0p8 - 1 GB

9 SYSTEM - mmcblk0p9 - 1.48 GB

10 HIDDEN - mmcblk0p10 - 587 MB

11 OTA - mmcblk0p11 - 8 MB

12 USERDATA - mmcblk0p12 - 11.4 GB

The above sizes are approximate and the diagram is not to scale.

Rooting the phone

When you go through the process of rooting the phone, you have to alter the ROM. Although the risks of this are very minimal, we couldn't technically say it was risk free. The process of rooting puts a binary (called "su") in /system/bin (remember we talked about that earlier?). This binary is what allows the user (you) to run things at an elevated privilidge (super user). That in itself would be quite risky, so rooting also gives you one of the superuser apps (there are 2 - SuperSU and SuperUser, both very good). These apps install to /system/app and act as a gateway. Essentially, these apps prompt you when another application wants "root access" so you can allow it or deny it. It's a form of protection against malicious intent.

Root is often enough for most people who simply want to run a few root apps, but many people will need to replace their stock recovery with a custom recovery. This is because you cannot flash custom roms from the stock recovery. Some methods of rooting give you root AND recovery. Some just give you root, but you can flash a recovery yourself using Odin and download mode. Technically you do not need root to flash a recovery and then flash a custom ROM as the rom will include /system/bin/su and /system/app/SuperSU anyway.

Odin is a useful Windows tool. You'll be using this to return your phone back to stock too by flashing a stock "firmware"

Please read Samsung Galaxy S3 General Sticky Roll-Up Thread ***Stickies found here!** to find all the rooting and flashing guides you need for the GT-i9300

If I were asked my opinion on how to root, I would recommend one of the 2 scenarios.

1) You want root only. No custom ROMs, kernels etc. Just root, just to use root apps.

CF Auto Root Via Odin

Why? Tried and tested method, simple to use. No need to choose what exploit you want to use as it's tailored for your device.

What does it do? It gives you a stock recovery (so can't flash things) and roots the Android OS

The Steps:

1) Download the Latest Odin

2) Download CF-Auto-Root for your model

3) Follow These steps to root

2) You want to flash custom ROMs / Kernels

If you want root on your existing Android ROM, you can do 1) first. Then flash a recovery of your choice (CWM, Philz, TWRP) via Odin

However, if you immediately plan on flashing a ROM, there's no need to root your existing ROM. Simply skip straight to installing a recovery. Backup then flash what you like.

The Steps:

1) Download the Latest Odin

2) Download recovery of your choice CWM, Philz, TWRP

3) Follow The steps to Flash Philz recovery (But for the recovery of your choice)

These steps can also be followed to update recovery to newer versions