Trisha Shetty (Editor)

CyanogenMod

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
OS family
  
Unix-like

Source model
  
Open source

Working state
  
Discontinued

CyanogenMod

Developer
  
CyanogenMod open-source community

Written in
  
C (core), C++ (some third party libraries), Java (UI)

Initial release
  
3.1 (Dream & Magic) 1 July 2009; 7 years ago (2009-07-01)

CyanogenMod (/s.ˈæn..ˌɛn.mɒd/; sigh-AH-no-GEN-mod) (CM) is a discontinued popular open-source operating system for smartphones and tablet computers, based on the Android mobile platform. Although the CyanogenMod name has been discontinued, rebranded development continues under the LineageOS name. It was developed as free and open source software based on the official releases of Android by Google, with added original and third-party code, and based on a rolling release development model. Although only a subset of total CyanogenMod users elect to report their use of the firmware, as of 23 March 2015, some reports indicate that over 50 million people run CyanogenMod on their phones. It was also frequently used as a starting point by developers of other ROMs.

Contents

In 2013, the founder, Steve Kondik, obtained venture funding under the name Cyanogen Inc. to allow commercialization of the project, however the company did not, in his view, capitalize on the project's success and in 2016 he left or was forced out as part of a corporate restructure which involved a change of CEO, closure of offices and projects, cessation of services, and therefore left uncertainty over the future of the company. The code itself, being open source, has been forked under the name LineageOS and community efforts are in progress to resume development as a community project.

CyanogenMod offers features and options not found in the official firmware distributed by mobile device vendors. Features supported by CyanogenMod include native theme support, FLAC audio codec support, a large Access Point Name list, Privacy Guard (per-application permission management application), support for tethering over common interfaces, CPU overclocking and other performance enhancements, unlockable bootloader and root access, soft buttons, status bar customisation and other "tablet tweaks", toggles in the notification pull-down (such as Wi-Fi, Bluetooth and GPS), and other interface enhancements. CyanogenMod does not contain spyware or bloatware, according to its developers. CyanogenMod is also said to increase performance and reliability compared with official firmware releases.

The name CyanogenMod derives from cyanogen (the name of a chemical compound adopted as a nickname by Kondik) + Mod (a term for user-developed modifications, known as modding).

History and development

Soon after the introduction of HTC Dream (named the "T-Mobile G1" in the United States) mobile phone in September 2008, a method was discovered to attain privileged control (termed "root access") within Android's Linux-based subsystem. Having root access, combined with the open source nature of the Android operating system, allowed the phone's stock firmware to be modified and re-installed onto the phone.

In the following year, modified firmwares for the Dream were developed and distributed by Android enthusiasts. One, maintained by a developer named JesusFreke, became popular among Dream owners. In August 2009, JesusFreke stopped work on his firmware, and suggested users switch to a version of his ROM that had been further enhanced by developer Cyanogen (the online name used by Steve Kondik, a Samsung software engineer) called "CyanogenMod" (user adaptations being often known as modding).

CyanogenMod grew in popularity, and a community of developers, called the CyanogenMod Team (and informally "Team Douche") made contributions. Within a few months, the number of devices and features supported by CyanogenMod blossomed, and CyanogenMod became one of the popular Android firmware distributions.

Similar to many open source projects, CyanogenMod was developed using a distributed revision control system with the official repositories being hosted on GitHub. Contributors submit new features or bugfix changes using Gerrit. Contributions may be tested by anyone, voted up or down by registered users, and ultimately accepted into the code by one of a handful of CyanogenMod developers.

A version of ADW.Launcher, an alternative launcher (home screen) for the Android operating system, became the default launcher on CyanogenMod 5.0.8. The launcher provides additional features not provided by the default Android launcher, including more customization abilities (including icon themes, effects, and behavior), the ability to backup and restore configuration settings, and other features. As of version 9, CyanogenMod's own launcher, Trebuchet, is included with the firmware.

Initially, CyanogenMod releases were provided on a nightly, milestone, and "stable version" schedule; as of CyanogenMod 11 M6, the "stable" label will no longer be used, having been supplanted by "milestone" M-builds that are part of the CyanogenMod's rolling release development model.

Some unofficial builds for supported devices were listed in the CyanogenMod Wiki.

Current CyanogenMod version list:

  • CyanogenMod 3 (based on Android Cupcake 1.5.x, initial release)
  • CyanogenMod 4 (based on Android Cupcake 1.5.x and Android Donut 1.6.x)
  • CyanogenMod 5 (based on Android Eclair 2.0/2.1)
  • CyanogenMod 6 (based on Android Froyo 2.2.x)
  • CyanogenMod 7 (based on Android Gingerbread 2.3.x)
  • CyanogenMod 9 (based on Android Ice Cream Sandwich 4.0.x, major UI revamp)
  • CyanogenMod 10 (based on Android Jelly Bean 4.1.x - 4.3.x)
  • CyanogenMod 11 (based on Android KitKat 4.4.x)
  • CyanogenMod 12 (based on Android Lollipop 5.0.x – 5.1.x, major UI revamp)
  • CyanogenMod 13 (based on Android Marshmallow 6.0.x)
  • CyanogenMod 14.1 (based on Android Nougat 7.1.x)
  • CyanogenMod 7

    CyanogenMod 7 firmware is based on Android 2.3 Gingerbread with additional custom code contributed by the CyanogenMod Team. The custom portions of CyanogenMod are primarily written by Cyanogen (Steve Kondik) but include contributions from the xda-developers community (such as an improved launcher tray, dialer, and browser) and code from established open source projects (such as BusyBox in the shell).

    CyanogenMod 7 development began when Google released Android 2.3's source code. On 15 February 2011, the first release candidates of CyanogenMod 7 were rolled out on several of the supported devices. The fourth release candidate was released on 30 March 2011 and brought increased support for the Nook Color and similar devices as well as many bug fixes. On 11 April 2011, the public version of CyanogenMod 7.0 was released, based on Android 2.3.3. CyanogenMod 7.1 was released on 10 October 2011, based on Android 2.3.4. The latest stable version, CyanogenMod 7.2 was released on 16 June 2012, based on Android 2.3.7, bringing a predictive phone dialer, lock-screen updates, ICS animation backports and many bug fixes.

    CyanogenMod 8

    CyanogenMod version 8 was planned to be based on Android 3.x Honeycomb. However, as the source code for Honeycomb wasn't provided by Google until it appeared in the source tree history of its successor, Android 4.0 Ice Cream Sandwich, the release schedule advanced from CyanogenMod 7 (Gingerbread) directly to CyanogenMod 9 (Ice Cream Sandwich).

    CyanogenMod 9

    CyanogenMod 9 is based on Google's Android 4.0 Ice Cream Sandwich and the first version of CyanogenMod to use the Trebuchet launcher. Steve Kondik and his team have announced that they had begun work on the new release after Google released the source code of Android 4.0.1. Development on this release took longer than with previous releases due to the significance of the changes between Android 2.3 "Gingerbread" and 4.0 "Ice Cream Sandwich", and the team took this opportunity to clarify their vision for the ROM and rethink any modifications which were no longer necessary due to improvements within Android.

    By the last days of November 2011, some alpha versions had been distributed, in particular for the Samsung mobile phones Nexus S and Galaxy S. On 9 August 2012, after various betas and release candidates, CyanogenMod released the finished version of CyanogenMod 9. Given that the next version of Android, 4.1 "Jelly Bean", had already been released by that point, development moved swiftly on to CyanogenMod 10. On 29 August 2012, CyanogenMod released a minor update, version 9.1.0, bringing bugfixes and an app called SimplyTapp for NFC payments.

    On 4 April 2012, during development, CyanogenMod unveiled "Cid" (pronounced /sɪd/), the new CyanogenMod mascot, which replaced the previous mascot, Andy the skateboarding "bugdroid". Designed by user Ciao, Cid (C.I.D.) is an abbreviation of "Cyanogenmod ID".

    CyanogenMod 10

    CyanogenMod 10.0
    In early July 2012, the CyanogenMod team announced, via its Google+ account, that CyanogenMod 10 would be based on Android 4.1 Jelly Bean. Nightly builds of CyanogenMod 10 were made available for many devices supported by CyanogenMod 9. Starting with the September 2012 M1 build, the CyanogenMod team began monthly "M-series" releases. At the beginning of each month, a soft freeze of the CyanogenMod codebase is put into effect; once the team deems a build stable enough for daily use, it is released under the milestone or "M" series. On 13 November 2012, final stable builds were released for several devices.
    CyanogenMod 10.1
    CyanogenMod 10.1 is based on Android 4.2 Jelly Bean. Nightly versions are currently being released for an array of devices, along with M Snapshots (Monthly Snapshots) which are being released for select devices. On 24 June 2013, the CyanogenMod 10.1.0 codebase (based on Android version 4.2.2) was moved to "stable" status, with a majority of currently-supported devices receiving stable builds on the same day. CyanogenMod's developers have indicated that they will continue the Monthly Snapshot schedule to incorporate new features until the next Cyanogenmod release. Unfortunately, many devices utilizing Samsung Exynos and Nvidia Tegra 2 SoC's were not part of the initial release.
    CyanogenMod 10.2
    The first nightly release of CyanogenMod 10.2, which is based on Android 4.3 Jelly Bean, began rolling out for a selected number of devices on 14 August 2013. It brings in some new enhancements to the system, such as Bluetooth Low Energy and OpenGL ES 3.0 support, a renewed Phone app, 4K resolution support as well as many security and stability improvements.

    CyanogenMod 11

    On 6 November 2013 the CyanogenMod team started pushing the code of CyanogenMod 11, based on Android 4.4 KitKat, to GitHub. The first nightly release of CyanogenMod 11.0 began rolling out for a selected number of devices on 5 December 2013. Since then, M-builds have been released every month for supported devices, offering a more stable experience than nightlies. With build M6 it was clarified that CyanogenMod would no longer be releasing final builds specially tagged "stable", but instead would utilize the rolling release model with M-builds representing a stable channel.

    The global OnePlus One is shipped with a variant of CyanogenMod 11 M9 known as "CyanogenMod 11S". The latest version of CyanogenMod 11S for the One is 11.0-XNPH05Q, based on CyanogenMod 11 M11 and Android 4.4.4 "KitKat", and was released as an over-the-air (OTA) update in February 2015.

    CyanogenMod 12

    The first nightly release of CyanogenMod 12, based on Android 5.0 Lollipop, began rolling out for a selected number of devices on 6 January 2015. A stable snapshot was released on 25 June 2015 and a security patch snapshot was released on 1 September 2015.

    Cyanogen OS 12, a variant of CyanogenMod 12 for the OnePlus One and Yu Yureka was released in April 2015. Yu Yuphoria got Cyanogen OS 12 out-of-the-box when it was launched in May 2015.

    CyanogenMod 12.1

    The first nightly release of CyanogenMod 12.1, based on Android 5.1, was announced on 000000002015-04-16-000016 April 2015. A stable snapshot build was released on 1 September 2015 but nightly builds continue to roll out every day.

    Lenovo ZUK Z1, Wileyfox Swift and Storm got Cyanogen OS 12.1 out-of-the-box when it was launched in September 2015. YU's Yureka, Yureka Plus, and Yuphoria got a Cyanogen OS 12.1 OTA update.

    CyanogenMod 13

    The first nightly release of CyanogenMod 13.0, based on Android 6.0, was released on 000000002015-11-23-000023 November 2015 for a small number of devices, but was gradually developed for other devices. A few weeks after the first nightly release of CyanogenMod 13.0 for Android 6.0, CyanogenMod was given a minor update, and was based on Android 6.0.1. First stable builds were released on 2016-03-15.

    CyanogenMod 14.0

    Due to the early release of Android 7.1, CyanogenMod have skipped producing nightly builds for CyanogenMod 14.0. Code initially written for CyanogenMod 14 is now being cherry-picked into the cm-14.1 branch.

    CyanogenMod 14.1

    The first experimental build of Cyanogenmod 14.1 based on Android 7.1 was released for Oneplus 3 devices on 4 November 2016. On 8 November 2016, official nightlies began for angler (Huawei Nexus 6P), bullhead (LG Nexus 5X), cancro (Xiaomi Mi3w/Mi4), d855 (LG G3), falcon/peregrine/thea/titan/osprey (Moto G variants), h811/h815 (LG G4), klte/kltedv/kltespr/klteusc/kltevzw (Samsung Galaxy S5), oneplus3 (OnePlus 3), Z00L/Z00T (Zenphone 2). It is missing some of the signature features of CyanogenMod however, and was considered a "work in progress". This version will add multi-window support.

    This was the final release to use the name "CyanogenMod".

    Fork to LineageOS

    In December 2016 Cyanogen Inc. and CyanogenMod developer group came to an agreement about forking and re-branding the CyanogenMod code into a new project named LineageOS, which is built on top of CyanogenMod versions 13 and 14.1 and uses the name LineageOS for subsequent releases. This project is supported by the community-operated LineageOS Project.

    Cyanogen Inc.

    Cyanogen Inc. was a venture funded company with offices in Seattle and Palo Alto, California, announced officially in September 2013, which aimed to commercialize CyanogenMod. The funding was led by Mitch Lasky of Benchmark and raised $7 million. It began when Kirt McMaster approached Steve Kondik on LinkedIn in 2013, to discuss possible commercialization of the project.

    Commercialization controversy

    Rumors of plans to commercialize CyanogenMod as well as the subsequent announcement of Cyanogen Inc. led to a certain level of discord within the CyanogenMod community. Several CyanogenMod developers raised concerns that developers who had provided their work in the past were not being appropriately acknowledged or compensated for their free work on what was now a commercial project, further that the original ethos of the community project was being undermined and that these concerns were not being adequately addressed by Cyanogen Inc. Examples include the "Focal" camera app developer Guillaume Lesniak ("'xplodwild') whose app was withdrawn from CyanogenMod allegedly following demands by the new company to adopt closed-source modifications and licensing.

    In response, Steve Kondik affirmed commitment to the community, stating that the majority of CyanogenMod historically did not use GPL but the Apache licence (the same license used by Google for Android), and dual licensing was being proposed in order to offer "a stronger degree of protection for contributors... while still offering CM some of the freedoms that the Apache license offers":

    Developer Entropy512 also observed that CyanogenMod was legally bound by its position to make some of the firmware changes, because of the Android license and marketing conditions ("CTS terms") which specify what apps may and may not do, and these were raised in part by Android developers at Google informally speculatively as a result of perceptions of CyanogenMod's high profile in the market.

    In his 2013 blog post on Cyanogen's funding, venture funder Mitch Lasky stated:

    In January 2015, it was reported that Microsoft had invested in Cyanogen, and that this might be part of a strategy to create an Android version that worked well with Microsoft platforms. In April 2015, Cyanogen announced a strategic partnership with Microsoft, to integrate Microsoft apps and services into Cyanogen OS. In January 2016, Cyanogen rolled out an update that started advertising Microsoft applications when a user attempts to open certain file types on Cyanogen OS phones.

    Restructure and cessation of services

    Despite the popularity of CyanogenMod as a custom rom, Cyanogen Inc. failed to persuade phone companies to use its version of Android. In July 2016 it fired around 30 of its 136 staff and management, including its product head, and closed their Seattle office (other offices were described as "gutted"), as part of a strategic change by the newly employed Chief Operating Officer Lior Tal. CEO Kirt McMaster also stepped down from his role in October 2016 with Tal becoming CEO at that point, and CyanogenMod founder Steve Kondik was believed to have been removed from the board and left a month later in November 2016.

    Media analysis focused on dubious management decisions at Cyanogen Inc. as part of the reason for the failure. In 2014 the company abruptly notified its existing partner OnePlus - who used CyanogenMod for its phones and had just launched models in India - that it had reached an exclusive agreement covering India with another supplier, leading to an acrimonious breakup of their relationship which was described in the media as "practically screwing over" and "betraying" OnePlus and a "surprisingly childish" move; OnePlus was banned from selling in India as a result. Subsequently, Cyanogen's CEO boasted of their intention to displace Google in controlling the Android operating system. Unable to gain sufficient uptake of its operating system, it then shifted focus and fired its core team and replaced its CEO, before shutting down its core operating system development operations.

    A day after leaving, Steve Kondik wrote a blog post in which he stated that in hindsight, he had trusted and hired "the wrong people", who had not shared a common vision and that he had ended up unable to prevent the failure of the company and the forming of a "new team" in its place. He drew attention to his own part in the failure, the loss of rights to the "CyanogenMod" name by the community, and to the rift in perception among Android developers ("The rest of the ROM community seems to be highly dependent on us, but simultaneously wants us dead. How on earth do you fix this?"). He asked the community to consider forking and rebranding the source code, possibly with some form of crowdfunding based on the project's underlying popularity.

    On 23 December 2016, Cyanogen Inc. announced that they were shutting down the infrastructure behind CyanogenMod. This was shortly followed by news that the main CyanogenMod project would migrate, renaming itself as "LineageOS". On December 24 2016, Head of Developer Relations and community forum administrator Abhisek Devkota, a Cyanogen "core team" member, wrote that the community had lost its "last remaining advocate" within the company and its voice in Cyanogen Inc. and its software's future. He stated that while "that this most recent action from [Cyanogen Inc.] is definitely a death blow for CyanogenMod", the community had already begun taking the steps needed to fork the project under a new name, and aimed to return to its grassroots origins while retaining professional approaches adopted during the Cyanogen Inc. era. Due to the negative connotations attached to Cyanogen Inc's conduct, as well as the scope for legal dispute, the forked project decided not to use the existing brand names "Cyanogen" or "CyanogenMod", which in any case belonged to the company.

    Industry reaction to CyanogenMod

    Early responses of tablet and smartphone manufacturers and mobile carriers were typically unsupportive of third-party firmware development such as CyanogenMod. Manufacturers expressed concern about improper functioning of devices running unofficial software and the related support costs. Moreover, modified firmwares such as CyanogenMod sometimes offer features for which carriers would otherwise charge a premium (e.g., tethering). As a result, technical obstacles including locked bootloaders and restricted access to root permissions were common in many devices.

    However, as community-developed software has grown more popular and following a statement by the U.S. Library of Congress that permits "jailbreaking" mobile devices, manufacturers and carriers have softened their position regarding CyanogenMod and other unofficial firmware distributions, with some, including HTC, Motorola, Samsung and Sony Ericsson, providing support and encouraging development. As a result of this, in 2011 the need to circumvent hardware restrictions to install unofficial firmware lessened as an increasing number of devices shipped with unlocked or unlockable bootloaders, similar to the Nexus series of phones. Device manufacturers HTC and Motorola announced that they would support aftermarket software developers by making the bootloaders of all new devices unlockable, although this still violates a device's warranty. Samsung sent several Galaxy S II phones to the CyanogenMod team with the express purpose of bringing CyanogenMod to the device, and mobile carrier T-Mobile USA voiced its support for the CyanogenMod project, tweeting "CM7 is great!".

    Phone manufacturers have also taken to releasing "developer editions" of phones that are unlocked.

    Licensing

    Until version 4.1.11.1, CyanogenMod included proprietary software applications provided by Google, such as Gmail, Maps, Android Market (now known as Play Store), Talk (now Hangouts), and YouTube, as well as proprietary hardware drivers. These packages were included with the vendor distributions of Android, but not licensed for free distribution. After Google sent a cease and desist letter to CyanogenMod's chief developer, Steve Kondik, in late September 2009 demanding he stop distributing the aforementioned applications, development ceased for a few days. The reaction from many CyanogenMod users towards Google was hostile, with some claiming that Google's legal threats hurt their own interests, violated their informal corporate motto "Don't be evil" and was a challenge to the open-source community Google claimed to embrace.

    Following a statement from Google clarifying its position and a subsequent negotiation between Google and Cyanogen, it was resolved that the CyanogenMod project would continue, in a form that did not directly bundle in the proprietary "Google Experience" components. It was determined that the proprietary Google apps may be backed-up from the Google-supplied firmware on the phone and then re-installed onto CyanogenMod releases without infringing copyright.

    On 28 September 2009, Cyanogen warned that while issues no longer remain with Google, there were still potential licensing problems regarding proprietary, closed-source device drivers. On 30 September 2009, Cyanogen posted an update on the matter. Kondik wrote he was rebuilding the source tree, and that he believed the licensing issues with drivers could be worked out. He added that he was also receiving assistance from Google employees. On 16 June 2012, the CyanogenMod 7.2 release announcement stated, "CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway."

    Replicant is a CyanogenMod fork that removes all proprietary software and drivers and thus avoids all aforementioned legal issues. However, Replicant does not support devices which depend on proprietary drivers, which is most phones as of 2016.

    Cyanogen OS

    Cyanogen commercially develops operating systems pre-installed on some devices (OnePlus One, YU Yureka, YU Yuphoria, Andromax Q, BQ Aquaris X5, Lenovo ZUK Z1, Wileyfox Swift, Wileyfox Storm, Alcatel ONETOUCH POP Mirage ) based upon the CyanogenMod source code.

    Cyanogen OS is often distributed with additional bundled proprietary apps such as the Google Play ecosystem, and a suite of software unique to Cyanogen OS known as C-Apps. CyanogenMod does not include either by default, but users can obtain them separately if they wish.

    Initially distinguished with the suffix -S (CyanogenMod 11S), with version 12 Cyanogen rebranded the custom offering as Cyanogen OS. Cyanogen started pushing Cyanogen OS 13 based on Android 6.0.1 to OnePlus One phones OTA on 9 April 2016 phase wise by the code name ZNH0EAS26M. CyanogenMod can be installed on Cyanogen OS devices.

    Supported devices

    CyanogenMod officially supports a large number of devices, including most Nexus and Google Play Edition devices. It provides SNAPSHOT (stable) and NIGHTLY builds for more than 150 devices (on the current development branch).

    References

    CyanogenMod Wikipedia