What is CyanogenMod?
CyanogenMod is one of the best known custom ROMs out there, enabling millions of users around the world to customize their devices to the fullest. With the popularity of CyanogenMod, the developer community enjoyed great success over the years. So much so, that the people behind CyanogenMod started Cyanogen Inc, and developed partnerships with phone manufacturers to have CyanogenMod as the default operating system.
What is a custom ROM?
Google releases the source code for Android via the Android Open Source Project (AOSP), which allows anyone to download the source code for stock Android and modify it to their liking. Many people add features or try to further optimize the operating system to improve performance. When people talk about flashing ROMs, they are referring to overwriting the old version of Android that is installed and replacing it with a third party alternative, like CyanogenMod. This sounds sketchy in a way, but just because the ROM is supported by the community, rather than a commercial entity, it does not mean that they are any less stable. In my experience, custom ROMs have been just as stable if not more so than OEM supplied ROM, depending on the ROM of course.
CyanogenMod started out as a simple alternative to stock Android on the HTC Dream and HTC Magic.
However, the term “ROM” is not necessarily used correctly when talking about the third party custom firmware. A “ROM” in computer science is “Read-Only Memory” which can only be read and not written to more than once in the most basic sense. Smartphones and tablets use flash memory to store the Android OS, so the correct term should be “custom firmware”. This naming convention may lead to some confusion when talking about custom ROMs, just remember, the firmware is being changed, not any ROMs that might be in the device.
The roots of CyanogenMod
CyanogenMod started out as a simple alternative to stock Android on the HTC Dream and HTC Magic with the initial release of CyanogenMod 3.1 in 2009. With Android’s open source nature and the ability to obtain root access, anything is possible, and with the popularity of the custom ROMs, the CyanogenMod community blossomed. CyanogenMod really started to be recognized with CyanogenMod 7, based on 2.3 Gingerbread. This release added new and improved features over stock Android like BusyBox in the shell, as well as improving the stock apps.
CyanogenMod release cycle and style
CyanogenMod version numbers work just like Android version numbers, i.e. CyanogenMod A.B means that “A” is the major release number and “B” is a minor release number. From version 9 to 10.2, there were a few different types of releases. These included:
- Nightly – A build generated every 24 hours, newest features but HIGHLY unstable in most cases, not good enough for a daily driver.
- Experimental – More stable than the nightlies and may be used in other custom ROMs as a base.
- M Snapshot – More stable than the last two, but still may have some minor issues.
- Release Candidate – Basically stable, some very minor issues may be present, good enough for daily use.
- Stable – Pretty much all of the bugs have been squashed. These builds will take a very long time to actually be released.
After 10.2, CyanogenMod has changed the release cycle and the names of everything to simplify the process. This time there are only two options:
- Development Channel – Same as the nightlies from before, every 24 hours and are highly unstable.
- Release Channel – M snapshots are made each month which are suitable for daily use, although they lag behind the nightly builds by two weeks as far as features and improvements.
Impact on the dev community
Being the biggest custom ROM, there is obviously an impact on the rest of the dev community, XDA is full of custom ROMs that are based on CyanogenMod. Even the custom ROM that I helped on was based on CyanogenMod for certain devices. Getting everything set up and working from a CyanogenMod base is easier than using stock Android, since a lot of stuff like the theme chooser is already built in, so there is no need to add it.
Advantages over stock Android
The whole reason behind installing a custom ROM is to add features, improve performance, or change the look of stock Android. This is exactly what you get to do with CyanogenMod. There are features in CyanogenMod that are simply not available in stock Android, like the ability to change the status bar to your liking, or apply different themes.
CyanogenMod brings a lot to the table in terms of options, but one of the biggest advantages is root access. Root gives you administrative rights (in Windows terms) to your file system. This means that you can access all of the system files, which in turn allows allows app to do more. For example, there is no official way to backup app data easily, however you can use Titanium Backup and its “root needed” features. This is one of the best apps I have ever used and it should be standard for all devices, you can backup apps no problem and transfer them to any device without fail. There are many other apps like this that just make your life a lot easier. However, a word of warning, root access is not as secure as non-rooted.
How to flash
The first thing you need to do is download the ROM from the development channel or release channel. The general download page can be found here, it is helpful to know your device’s codename, which can easily be looked up with a quick Google. From this page you can download the latest nightly, the option to download a M snapshot or experimental build on the left panel. The next steps can get complicated, but it gets easier once you get used to it. Quick note, this WILL NOT work on all devices, only supported ones.
- Kiss your warranty goodbye (Android Authority is not responsible for your device, proceed at your own risk.)
- Unlock your device’s bootloader – This can be very difficult in some cases and is pretty much different for all devices. This will wipe the device clean, so make sure to backup any important data.
- Install a custom recovery like TWRP or CWM Recovery. This can be done a few different ways, but the best way is through the terminal. Simply download the .img file from the respective site then save it to your computer in a convenient location. once downloaded, make sure ADB and the Android SDK are installed on your computer and working properly. In the terminal or command prompt type “fastboot flash recovery (location of recovery on computer)“. An example would be: “fastboot flash recovery c:recovery.img”. Once this is finished, reboot your device. The device should boot normally.
- Flash the ROM zip file, it is basically the same for each recovery, just click “install” then navigate to the folder with the file or if you are using CWM Recovery click “Install” then “Choose zip from SDCard” then navigate to the folder with the file. Then accept the prompt to install it, do not reboot yet, stay in recovery.
- Flash GApps zip – GApps stands for Google Apps, since these are owned by Google, CyanogenMod can not come pre-installed with them, so just simply flash the zip like you would for the ROM right after installing CyanogenMod. Android 5.1.x GApps and Android 6.0 GApps can be found here, just select the options you want.
- Reboot! If everything went according to plan, the device should boot into CyanogenMod.
CyanogenMod started as an alternative to stock Android and grew into a company that influences a lot of the dev community, it even has phone manufacturers backing them. While flashing CyanogenMod may be sketchy to install at first, once master it is worth it. With the customizability of CyanogenMod and the things you can do with root, the sky’s the limit.