What is the difference between: Rooting, Jailbreak, ROM, Mod, etc.? 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?)
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&#39;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:


power-off the phone
hold PWR and VOL DOWN buttons simultaneously until phone display shows "Fastboot"
touch and release VOL DOWN repeatedly (seven times) until "Fastboot" changes to read, "Android Recovery"
touch and release VOL UP button to choose this option
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?