175

What is the difference between:

  • Unlocking the bootloader (prerequisite for doing many, though not all, other things below)
  • Rooting
  • Jailbreaking
  • ROM
  • NAND and Nandroid
  • Operating System
  • Mod (e.g. CyanogenMod)
  • Recovery (ClockworkMod, Amon Ra)
  • Custom Kernel (e.g. LeshaK's kernel)
  • Firmware
  • Driver
  • Over The Air (OTA) update
  • Fastboot
  • SIM unlocking
  • Flashing
  • SPL (Second Program Loader)

(any other often-confused terms that I've missed?)

1

9 Answers 9

149

Rooting and Jailbreaking are essentially the same things, Jailbreaking is the iPhone users' word for what Android users call Rooting. Rooting is when you gain "Root" access to the phone giving you the power to do anything you want to it (it comes from the Unix Root User, essentially the Unix equivalent to the Windows Administrator account). Normally you're prevented from being Root for your own good, as it's very easy to break your phone once you have root access, and quite hard to break it without.
More info: What does “to root a phone” mean? and I've rooted my phone. Now what? What do I gain from rooting?

A Nandroid backup is a backup of your phone that is an exact image of the state of your phone. So you could make an exact copy of your current phone, then do major changes to it, and then restore to your previous backup by flashing the backup back to the phone. Flashing means to copy or to install.... you are essentially wiping the device and restoring a previous state (a backup) or you are flashing a new ROM (see below). NAND is your device's flash storage, which is why copying files there is called "flashing".

The Android operating system is the software that manages the hardware in an Android phone such as the screen, data communications, storage, camera and GPS. It provides a common layer that allows applications the use of and access to these resources on a range of different devices without the app having to know anything special about the actual hardware that it is running on. The Android Operating System also includes a number of standard apps and services such as the Contacts, Camera, Photo Gallery and web browser apps and allows the user to do such things as control the screen brightness or connect to wifi networks.

Although the real definitions are different, in the Android world, ROM, Mod, and Firmware are all used as if they mean essentially the same thing. They all refer to a customised version of the Android operating system that has been modified to work on a particular brand of phone with a specific set of customisations or changes. This can be done so that an old phone like the G1 can be given a brand new version of Android, such as 2.2 even if the manufacturer has decided not to provide it. Or could be to provide extra functionality not available in the manufacturer's supplied version of Android, or to fix problems in the manufacturer supplied version. More info: What's the difference between an AOSP ROM and a stock ROM?, What are the advantages of a custom ROM?, Why are there so many different Android kernels and Where can I find stock or custom ROMs for my Android device?

A Driver is what tells the Android software operating system how to talk to all the different hardware that is in an Android phone. When someone is putting together a ROM for a particular phone model they will need to include of all that phone's drivers inside the ROM (for things like the cellular modem, WiFi access, the particular camera type, the specific processor, etc) otherwise the ROM either won't work on that phone, or will only be able to work certain parts of the phone and, for instance, may not be able to use the front-facing camera, or may not be able to connect to a WiFi network. This is exactly the same as when you plug something new into Windows and it runs the New Hardware Added wizard and goes looking for a new driver before you can use it. Drivers are loaded by the kernel, the core of the operating system.

An Over The Air (OTA) update is when your phone receives an update to its Android operating system "over the air", ie it is sent the files automatically over the cellular network from either Google or from your phone network without ever needing to be plugged into a PC. This contrasts with the way that, for example, the iPhone was originally updated where it needed to be physically plugged into a computer running iTunes to get its updates.

The bootloader controls how the device boots. Google's PC-side tool for getting into the bootloader and other related tasks is called Fastboot, and running the bootloader interactively may be called "Fastboot mode". A locked bootloader will verify the Android system partition and restore it to stock if it doesn't match, whereas an unlocked bootloader doesn't do the same checking, which is why unlocking the bootloader is required to permanently root a device.

The term recovery is often used to mean several different things. It could mean a mode of operation for the phone. For example, to boot into recovery mode on Atrix 4G MB860 olympus, one must:

  1. power-off the phone
  2. hold PWR and VOL DOWN buttons simultaneously until phone display shows "Fastboot"
  3. touch and release VOL DOWN repeatedly (seven times) until "Fastboot" changes to read, "Android Recovery"
  4. touch and release VOL UP button to choose this option
  5. Finally, when the phone displays a triangle surrounding an exclamation point adjacent to a green android robot, then either:
    • if using Android 2.2 (Froyo), then touch lower-right corner of phone display
    • if using Android 2.3 (Gingerbread), then hold both VOL UP and VOL DOWN buttons simultaneously

to enter Android Recovery mode.

This is a mode of operation that allows the user to make major changes to the phone. Or recovery could also mean the recovery partition on the phone. Or recovery could also mean the image file (filename.img) that can be flashed to the recovery partition. For example, the Atrix 4G MB860 olympus ships with a stock recovery image flashed to the recovery partition, and booting into recovery mode on such a stock phone allows the user to make some major changes to the phone:

  • reboot system now
  • apply sdcard:update.zip
  • wipe data/factory reset
  • wipe cache partition

It is possible (though this usually requires an unlocked bootloader) to replace the code that executes in Android Recovery mode by replacing the stock recovery image that the manufacturer installed on the recovery partition with a custom recovery image like ClockworkMod. Installing and executing the code in a custom recovery image often allows the user to make many more comprehensive changes to the phone and also often allows the user to make Nandroid backups and restore these backups to the phone.

The bootloader may also play some part in flashing firmware, though this is usually part of recovery. While you normally don't want to mess with the bootloader, advanced users will often flash a custom recovery like ClockworkMod (though a locked bootloader may prevent this). This allows one to flash firmware that hasn't been signed by the manufacturer (such as custom ROMs), since stock recovery usually checks for the signature, and do advanced tasks like complete Nandroid backups. Recovery is a bit like the BIOS boot screen on PCs in that you get to it by pressing a special combination of buttons as the phone starts up. Recovery can also do things like run an update file from the phone's SD card, or let you connect from a PC via ADB (Android Debug Bridge) to manage the device from the command line.
More info: What is the relation between ROM Manager, ClockworkMod and Nandroid? Which one(s) do I need?

Many mobile phone networks that sell GSM phones on a contract restrict the phone so that it can only be used on their phone network, this is known as a SIM lock, network lock or subsidy lock. This allows a provider to ensure that a phone that they've subsidised can only be used on a network that will help them them recoup that money. The phone reads the IMSI code of the inserted SIM card and checks that it corresponds with the allowed country or network codes that the phone has been programmed with. SIM unlocking removes this restriction from a phone so that any network's SIM card can be inserted and used. This generally involves typing a code into the phone's dialler that removes the lock. There are different ways to get this code depending on your device and network, some networks will give you the unlock code once you reach the end of your contract's term, some manufacturers publish these codes on their websites, some manufacturers embed these codes into their devices in a way that can be extracted by an app and some require use of special PC software to reprogram the phone. The SIM lock is usually implemented in hardware/read-only firmware, so it's generally not possible to unlock your device without a code.
More info: Can I use my device on a different carrier?


Related: Another question that explains some parts of the Android platform in terms familiar to users of traditional computer systems is:
In normal computer terms, what are the different parts of an Android system?

2
  • 1
    Jailbreak and rooting are similar but not identical from the perspective of the abstract process. Jailbreaking implies getting around a bootloader (or ignoring Apple's security) and then getting admin privileges, whereas rooting is purely getting the privileges--nothing else is implied. Also the gain in privileges (freedom!) is arguably greater with jailbreaking, as sideloading is already allowed with android.
    – jiggunjer
    Commented Nov 3, 2015 at 23:20
  • @GAThrawn Is it correct to say that driver is part of OS? Or at least some set of basic drivers will be part of OS, and if you want something specific then you need to install its driver before you can start using it? Commented Feb 14, 2017 at 15:49
30

Rooting and Jailbreaking refers to the same thing. The term Jailbreaking comes from Apple's iPhone community, the preferred term in Android is rooting.

Rooting/Jailbreaking refers to enabling the administrator/superuser/root/user-id-0 user on the phone. In unrooted device, the superuser account is disabled for security purpose. The superuser possess full privilege over the system, including deleting or modifying critical system files.

More about rooting: What does "to root a phone" mean?

1
  • 4
    Rooting = Gain root access (root user, user 0). Jailbreaking = same as rooting except in android you are never bound by a proprietary bootloader/software so its not jailbreaking per say, same concept though. Commented Nov 16, 2010 at 20:35
6

Firmware refers to the whole Android Software Stack: Kernel (incl. drivers), Dalvik VM, and the Operating System. However, it does not include applications installed from Market.

Firmware can be official (released by the manufacturer and/or service provider) or it can be unofficial (released by modding community).

6

CyanogenMod has a good definition of ROM (and a lot of the other terms on that list)

Read Only Memory. In the context of an Android device, ROM is the internal flash memory where the core operating system resides. It can also refer to a specific version firmware that can be applied to a device through a process usually referred to as flashing. An improperly flashed ROM can often brick the device, rendering it unusable.

0
4

This question is already well answered, but one thing I find most non-tech people getting confused about is the difference between rooting/jailbreaking and SIM Unlocking.

This is the simple explanation I use for non-tech people.

A smartphone is essentially 2 things

  1. A phone

    Unlocking is relevant to the phone part of the smartphone.

    In some countries (USA typically), the phone part of the smartphone is locked by the carrier so that it cannot be used with other carriers.

  2. A computer

    Rooting/Jailbreaking is relevant to the computer part of the smartphone.

    The OS of the phone (Android/IOS/Windows) is locked by the OS writer (Google/Apple/Microsoft) so that you can only access the functionality with the OS and Manufacturer provided interface. You do not have administrator permission on your device (unlike a Windows PC where you can login as an administrator).

    This is done for many reasons
    1. You have to buy through their appstore etc
    2. A lot of users aren't technical enough, hence this is done to protect them from doing something stupid.

    Bypassing these measures to get administrator access to your own device is called rooting or jailbreaking.

3
  • But isn't there a difference between SIM unlocking and bootloader unlocking? If so, then I guess there are essentially only 3 major steps involved in bypassing the phone's limitations: 1) SIM unlocking/subsidy unlocking; 2) bootloader unlocking (which, I suppose, allows installation of custom firmware); and 3) rooting the device. Or are (2) and (3) here essentially the same? So confusing... Commented Feb 17, 2014 at 21:01
  • 2 (unlocking bootloader) allows 3 (rooting).
    – user43185
    Commented May 31, 2015 at 20:30
  • Just to add: but 2 is not always needed for 3 (see root exploits). But most hardcore tweakers want 2 even if it is possible to get 3 without 2. Because 2 lets you do more than 3-- most notably custom ROMs/recoveries. 3 Is just cool for removing bloatware and installing a few niche apps.
    – jiggunjer
    Commented Nov 3, 2015 at 23:11
4

TL;DR version:

Unlocking the bootloader

  • The initial program when you boot is the bootloader. If "locked" it may: 1) block attempts at flashing 2) refuse to boot the phone if something unauthorized was flashed. Unlocking it means changing a setting that affects this behaviour.

Rooting

Jailbreaking

  • iphone word for rooting. Jailbreak and rooting are similar but not identical from the perspective of the abstract process. Jailbreaking implies getting around a bootloader (or ignoring Apple's security) and then getting admin privileges, whereas rooting is purely getting the privileges--nothing else is implied. Also the gain in privileges (freedom!) is arguably greater with jailbreaking, as sideloading is already allowed with android

ROM

  • ROM is an umbrella term for any data you can flash to NAND. In most android contexts flashing ROM = installing mobile operating system. In other contexts it may just mean replacing some files to customize your skin. Etc.
    While ROM may be a bit of a misnomer (actually refers to non-volatile memory--not data), most people don't know the difference between a kernel, OS, bootloader and etc. So many modifications just get called ROMs, this avoids confusion and flamewars (like when people call linux an OS instead of saying GNU/linux is an OS or even GNU/linux/X).
    See also Why can't they make a generic phone OS?

NAND

  • A type of solid state storage, another example is NOR memory.

MMC/SD

  • MMC is/was the the competitor of SD. Both are memory card standards that use NAND memory. Apart from physical form these standards decribe the interface/protocol used to access NAND. This means these memory formats come with a different or additional memory controller.
    While the MMC format is older, many devices use eMMC instead of eSD. The "e" stands for embedded and just means the storage is non-removable in the typical sense.
    Compared to MMC, SD has more pins, is thicker and supports DRM. It is also slightly more expensive. They both use the SPI protocol to access the NAND.

Nandroid

  • A system image used for backups. Often does not include the bootloader.

Operating System

  • Android, Windows, other linux distros, Mac OS X, iOS are all operating systems. In a more technincal sense the kernel can be called the operating system. It is a program that provides an environment for other programs to run safely and use its HAL.

Mod (e.g. CyanogenMod)

  • 3rd party files that may be flashed to the phone to provide extra/other features. Could be a complete operating system like CM.

Recovery (ClockworkMod, Amon Ra)

  • Phones can boot into the main OS or Recovery. This is like a mini OS that allows users to perform maintenance actions such as deleting, backing up or installing files.Often resides in the /recovery partition.

Custom Kernel (e.g. LeshaK's kernel)

  • Part of the operating system that controls the hardware and all the other programs that run. It is the first non-bootloader code loaded. Often resides in the the /boot partition.

Firmware

  • Software on embedded devices.

Driver

  • program used by the kernel to communicate with hardware. Typically written by the manufacturers of the hardware. The android source tree comes without kernel and drivers for most devices. THis is why non-google devices have a harder time keeping up-to-date.

Over The Air (OTA) update

  • Update you can download and install with your phone only (i.e. no cables/USB needed).

Fastboot

  • PC Program from the ADK produced by google. Allows bootloaders to flash data to the NAND.

SIM unlocking

  • Certain mobile providers may offer devices as part of a contract. These devices have software restrictions on what SIM cards you can use--to prevent changing provider.

Flashing

  • Copying/writing to NAND memory. So even moving a file to your sdcard can be called flashing.

SPL (Second Program Loader)

3

Android Kernel refers to the Linux Kernel and the set of drivers that comes with the Linux kernel. The kernel does not include Applications that comes with Android nor the Java/Dalvik Virtual Machine.

Costum Kernel refers to community-made modifications to the Linux Kernel. The Kernel provides low-level services, resource management, and security.

The Driver is a part of the kernel which talks directly with the hardware, it provides a standard interface which hides the intricacies of a particular hardware.

Modifications in the Kernel and Driver typically includes hardware-specific bug fix, optimizing resource management, and unlocking hardware features that was disabled in the driver-level.

2

Over The Air update refers to an official update from your device manufacturer and carrier, the update being pushed automatically to your device.

OTA update is basically an official firmware update, as it covers the whole Android stack (drivers, firmware, kernel, VM, applications).

2

my understanding is that different mod/rom is similar to likes of ubuntu and fedora (different variant of linux) in PC world. Kernel is lower level than this, like both ubuntu 10.10 and fedora 14 are using the same linux kernel 2.6.35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .