What is Android?
Android is an Operating system, like Windows or Ubuntu are Operating systems. It has multiple version release like 1.x, 2.x, 3.x, 4.x, 5.x, and so on, just like Win XP, Vista, 7, 8, 10, or Ubuntu 10.04, 12.04, 14.04, and more.
What is a ROM?
A ROM is a pack of files that are meant to run a device. These files are taken from Android Open Source Project (AOSP), modified to suit a particular Hardware, and then packed into something which is referred to as a ROM. When you flash a ROM, you're flashing an Android release specific to your device.
How does CyanogenMod fit in?
CM is a ROM which is a direct fork of Android Open Source Project (AOSP). In essence, it took what was offered by the AOSP, added its own tweaks, packaged it and named it CM. It's still inherently Android, just a derivative version. The different versions of CM correspond to the Android versions it's forked from. CM11 is based on Kitkat (4.4). CM12 is based on Lollipop (5.0).
What about Firmware?
Talking about firmware, the link you mentioned already says that it is an age old term being misused and is very ambiguous nowadays. Mostly, people use the term firmware to refer to areas in your device which a normal user isn't supposed to reach/touch/edit. They are those areas which your Android OS requires to boot and function normally and satisfactorily. (E.g. If you mess up Modem/EFS partition, you won't have Basesband/IMEI and you won't be able call or use internet).
They are meant to be read-only (not literally though). Modem, EFS (IMEI), aboot, and so on, are just few names that people consider to be firmware because they aren't usually touched when you flash a typical ROM.
It is to be noted that many OEMs consider the warranty void if you flash firmware. Do check your OEM's policy before considering flashing.
Is that to say you can't upgrade your firmware with simultaneously upgrading the ROM and operating system?
See the list here as an example. You can upgrade or downgrade those firmware partitions as long as the device allows it (I've heard that devices like Yureka doesn't allow flashing some parts, as it will result in hardbrick). You can flash the firmware with or without the ROM .zip
, in the same manner you would flash a typical ROM. At least this is how it works in my OPO.
This file (fastboot .zip
) is a ROM which can be used to flash your device's current ROM as well as the firmware. On the other hand, this file (flashable .zip
) is a typical ROM which can only be used to replace your current ROM. (This is only an analogy. You should only flash the ROMs meant for your device.)
Also the firmware is out of date, so should I be searching for the update to the firmware or CM?
Firmware is usually provided by the OEMs because they interact directly with the Hardware and OEMs know it better than any other party. Unless a ROM demands a firmware upgrade (like Exodus ROM) you shouldn't worry about upgrading it. It could be real problematic if something goes wrong during flashing them. Be ready for wild adventure (aka hardbrick) if you intend to flash firmware. :)