Home » What is the difference between: Rooting, Jailbreaking, ROM, Mod, etc.?

What is the difference between: Rooting, Jailbreaking, ROM, Mod, etc.?


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?

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?

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).

Related Solutions

Recursive to iterative using a systematic method [closed]

So, to restate the question. We have a function f, in our case fac. def fac(n): if n==0: return 1 else: return n*fac(n-1) It is implemented recursively. We want to implement a function facOpt that does the same thing but iteratively. fac is written almost in...

How can I match values in one file to ranges from another?

if the data file sizes are not huge, there is a simpler way $ join input1 input2 | awk '$5<$4 && $3<$5 {print $2, $5-$3+1}' B100002 32 B100043 15 B123465 3 This Perl code seems to solve your problem It is a common idiom: to load the entire...

Javascript difference between “=” and “===” [duplicate]

You need to use == or === for equality checking. = is the assignment operator. You can read about assignment operators here on MDN. As a quick reference as you are learning JS: = assignment operator == equal to === equal value and equal type != not equal !==...

Compiler complains about misplaced else [closed]

Your compiler complains about an misplaced else because, well, there is an else without a preceding if: // ... for (j=1; j<n-i; j++) { if(a[j]<=a[j+1]) { // ... } // END OF IF } // END OF FOR else { continue; } // ... The else in your code does not follow...

Bootstrap – custom alerts with progress bar

/* !important are just used to overide the bootstrap css in the snippet */ .alertContainer { border-radius: 0 !important; border-width: 0 !important; padding: 0 !important; height: auto !important; position: absolute !important; bottom: 15px !important; left:...

How to Garbage Collect an external Javascript load?

Yes, s.onload = null is useful and will garbage collect! As of 2019, it is not possible to explicitly or programmatically trigger garbage collection in JavaScript. That means it collects when it wants. Although there is cases where setting to null may do a GC...

Math programming with python

At first, what you are looking for is the modulo operator and the function math.floor() Modulo from wikipedia: In computing, the modulo operation finds the remainder after division of one number by another (sometimes called modulus). for example: 12%12=0...

Android slide over letters to create a word [closed]

Here some advice you can use: First for each cell you can create an object that represents the state of that cell: class Cell { char mChar; int row,column; boolean isSelected; } then you can create a 2D array of your cells Cell[][] mTable = ... For views you...

Sum two integers in Java

You reused the x and y variable names (hence the variable x is already defined in method main error), and forgot to assign the ints read from the Scanner to the x and y variables. Besides, there's no need to create two Scanner objects. public static void...

Extend three classes that implements an interface in Java

Using this simplified implementation of the library, using method() instead of M(): interface IFC { void method(); } class A implements IFC { public void method() { System.out.println("method in A"); }; } As akuzminykh mentions in their comment You'd write a...

How to set the stream content in PHPExcel? [closed]

Okey, First thing first PHPExcel_Worksheet_MemoryDrawing() can't solve your problem if you insist to use stream content and pass that to your worksheet your PDF will not render your image. But you can use `PHPExcel_Worksheet_Drawing()' if you want to render...

How to remove all files from a directory?

Linux does not use extensions. It is up to the creator of the file to decide whether the name should have an extension. Linux looks at the first few bytes to figure out what kind of file it is dealing with. To remove all non-hidden files* in a directory use: rm...

Hacker used picture upload to get PHP code into my site

Client side validation The validation code you have provided is in JavaScript. That suggests it is code that you use to do the validation on the client. Rule number one of securing webapps is to never trust the client. The client is under the full control of...

First Time HTML5/CSS Site

Semantically, I would suggest using HTML5 elements more. For example, instead of... <div id="header"> <div id="logo"></div> </div> Use instead: (the ID can stay if you want it to) <header> <div id="logo"></div>...

How classes work in a CSS file? [closed]

In your first example: .container.inner_content.text_section Match any element that has all three classes .container.inner_content.text_section { color: red; } <div class="container inner_content">one class</div> <div class="container...