You'd be hard pressed to find Android fans familiar with concepts like rooting and flashing roms that don't know what CyanogenMod is. As a third-party replacement for the version of Android that came with your device that has been available since the HTC G1 — as nuts as it was to try and flash something on that phone — CyanogenMod has earned its place in the history of this platform. As Android grew, so did the people responsible for CyanogenMod, and now those people are a proper company working towards bringing their vision for Android to everyone by partnering with companies and being included as the release software. The software on these retail devices is a little different from the zip you can download and flash to replace your current version of Android, and to help differentiate between these two software versions you'll heard a different name associated with this retail variant — Cyanogen OS.

Branding aside, what exactly are the differences between the commercially available Cyanogen OS and the community maintained CyanogenMod? Let's take a look.

The open window and the closed door

Android is open source. We love saying those words, but the truth is Android is a lot more complicated than Andy Rubin's infamous tweet. CyanogenMod is proof that anyone can download the code from Google, make a ton of changes, and build something unique based on Android. Much like the Android Open Source Project, you can look at the work being done to CyanogenMod whenever you want through their code review, and you can download and compile CyanogenMod on your own. This is great if all you want to do is play with Android in a virtual environment on your desktop, but once you try to put that version of Android on a piece of hardware you run into a few hurdles.

The Cyanogen folks have to work with the companies that make these proprietary bits

Smartphones and tablets are full of all sorts of fun pieces of hardware made by companies that aren't Google, and the code necessary to make those things work well is almost always proprietary and closed source. Those proprietary bits can often be bolted on to a build and loaded onto the device alongside all that open source code, but you'll quickly find using your phone without those bits isn't going to happen. On top of this, retail versions of Android with Google Play Services need to pass Google's certification every time a software update is created in order to continue offering Google's apps and services.

In order to offer Android on retail products, the Cyanogen folks have to work with the companies that make these proprietary bits and they have to keep Google in the loop. This isn't the case with CyanogenMod, where new code can be added into new builds and offered to users on a nightly basis. Working with these companies for retail releases means maintaining a separate software channel to work with those companies, and releasing a version of their Android fork that includes those proprietary bits. Essentially, that separate retail version is Cyanogen OS, and it's only available to people who buy a phone with this software included. It's built on all of the open source software that makes CyanogenMod, but includes some proprietary software that makes working with other industry partners — from Alcatel and OnePlus to Qualcomm and Intel — possible.

Software partnerships