Lessons from the rise and fall of an open source project
The story of the CyanogenMod mobile firmware project perfectly illustrates the opportunities and perils presented by the open source software model.
By Paul Rubens
Eight years ago, the CyanogenMod project exploded onto the mobile device software scene. The Android-based open source mobile operating system quickly caught the attention of developers, Android fans and investors, and attracted interest from tech giants including Microsoft and Google. But at the end of last year the project imploded spectacularly. Today the CyanogenMod project is no more, but the arc of its story offers fascinating insight into the world of open source software development.
The project started out innocently enough following the discovery, in 2008, of a way to root mobile phones running Google’s Android operating system, allowing modified firmware to be installed on rooted devices. One such piece of firmware was created by a developer called Steve Kondik, whose online handle was Cyanogen — a colorless toxic gas made by oxidizing hydrogen cyanide. The modified firmware was known as CyanogenMod.
Developers are able to create modified firmware because Android is, at its heart, an open source operating system, and pretty soon CyanogenMod became a project with a community around it. At the center of this was a core group of software hackers who became known as Team Douche. The project was hosted on GitHub, had regular releases, and versions were built to support an increasing number of Android devices.
One hiccup the open source project encountered at the tail end of 2009 was a potentially serious legal problem. Android firmware for most mobile devices includes the open source Android operating system as well as a group of proprietary Google apps (collectively known as GApps), including Gmail, Google Maps, YouTube, and Google’s Android app store (which is now called Google Play.) Google licenses these GApps for inclusion in vendors’ firmware, but they are not freely available for inclusion in modified firmware such as CyanogenMod, as Google explained in a blog post at the time.
As a result, Kondik received a “cease and desist” letter from Google asking that the GApps be removed from CyanogenMod. That was a serious problem because the ability to run those GApps is a significant part of the attraction of Android. Without them, and particularly without Google’s app store, an alternative firmware distribution is severely diminished.
It’s worth considering at this point that Google’s approach to Android isn’t unique, although it is slightly different. Many commercial organizations offer free open source software and also sell a product based on that open source code that includes proprietary add-ons that extend the functionality, as well as additional services, such as support. A good example is Kubernetes, a Google-incubated container management and orchestration tool that forms the basis of many commercially available container management systems such as CoreOS’s Tectonic platform. Where the situation with Android differs is that Google doesn’t sell its GApps to monetize Android. (Instead, it uses Gmail and YouTube to generate advertising revenue, for example.)
In the face of criticism from developers and others in the open source community, Google changed tack and said that the proprietary GApps could be backed up from a phone’s original firmware and then reinstalled with CyanogenMod. (Today, an app called OpenGApps, which, ironically, is available on Google Play, makes it easy to install GApps onto a modified firmware that does not include them.)
Then, in 2013, Kondik decided a change of approach was needed for CyanogenMod to continue to thrive. He started a venture-backed business he called Cyanogen Inc. as a vehicle to commercialize CyanogenMod. Seventeen employees were based at two offices: one in Seattle and the other in Palo Alto.
“What we have with CM (CyanogenMod) could not have happened any other way — a huge community came together and created something awesome that did not exist before, because it was needed.”
“We have had some serious growing pains though, and scaling with this kind of growth has been incredibly hard. What could we build if all the barriers were removed and we could dedicate our time to it?”
The backer that put up $7 million in the Series A funding round for Cyanogen Inc. was Benchmark Capital, a company that also backed such well-known open source companies as Red Hat and HortonWorks, a company that sells a commercial version of the open source big data analysis project Hadoop.
Now, Red Hat and HortonWorks appear to have built thriving businesses based around open source software, but it’s not clear that Cyanogen Inc. was able to generate significant revenues in the first months of its existence from its commercial product, Cyanogen OS. This was a firmware distribution based on CyanogenMod but with additional proprietary apps such as Google Play and a collection of its own apps including AudioFX, Gallery, Theme Chooser and Themes Store, known collectively as C-Apps.
That’s despite CyanogenMod boasting a user base in excess of 10 million and forging licensing deals with Chinese phone makers Xiaomi, OPPO, and OnePlus (which is connected to OPPO) to use Cyanogen technology. Now here’s where things get slightly bizarre. In October 2014 it was reported that Cyanogen Inc. had rebuffed overtures from Google about a possible acquisition. Instead, Cyanogen was valuing itself at close to $1 billion and was seeking investment from major tech firms.
Then, at the start of 2015, The Wall Street Journal reported that Microsoft was about to invest in Cyanogen, leading to speculation that Microsoft was planning to abandon its failing Windows-based mobile platform and use something based on CyanogenOS as the basis for possible new Android-based Microsoft phones.
This never happened, but Microsoft did launch an initiative to get its applications and services running on Android, and in April 2015 Cyanogen announced a partnership with Microsoft which involved Microsoft apps and services being integrated into Cyanogen OS. Later, (following the 12.11 update) Cyanogen OS started suggesting Microsoft apps and services in the “open with” menu when the operating system encountered file types it couldn’t already handle.
In the meantime, the partnership with OnePlus evaporated due to a reported clash of personalities at the two companies, as well as a fiasco in India caused by Cyanogen Inc. signing an exclusive deal for the sub-continent with low-cost smartphone manufacturer MicroMax. This resulted in sales of OnePlus handsets powered by Cyanogen OS being temporarily banned in India.
But in 2016 things rapidly went downhill. In the middle of the year a large number of staff were made redundant, and the Seattle office was closed. CEO Kirt McMaster stepped down, and Kondik was removed from the board. In November he officially left the company, and has not responded to a request for comment for this article.
Finally, on December 23, Cyanogen Inc. released a curt notice that read: “As part of the ongoing consolidation of Cyanogen, all services and Cyanogen-supported nightly builds will be discontinued no later than 12/31/16. The open source project and source code will remain available for anyone who wants to build CyanogenMod personally.”
The result is that CyanogenMod as an active project is no more — in name at least. The good news for users is that they have not been completely abandoned, because it is a simple matter to switch to an actively maintained alternative firmware or a device’s stock firmware. (That contrasts favorably with the situation that can arise if a business relies on an open source project when the sponsor walks away and no obvious alternatives exist.)
Of course in that situation it is always possible for a company to take the source code and take on the development task itself (or pay someone else to do so), or hope that someone else will take over the project.
And that, in fact, is what has happened with CyanogenMod. The code has been forked and a new project, called LineageOS, has been started by some in the CyanogenMod community to continue the CyanogenMod project under a new name, independent of Cyanogen Inc.
Continuing a project after it is abandoned by a commercial organization is not without precedent. The LibreOffice project was forked off when OpenOffice was abandoned by Oracle; SuiteCRM emerged after SugarCRM stopped releasing open source versions of its CRM product; and Nautilus (now Gnome Files), the file manager for the Gnome Linux desktop environment, is still thriving long after Eazel went out of business. And something similar happened when MySQL was acquired by Oracle, but in that case it was the developers who abandoned Oracle rather than the other way around, preferring to continue a parallel project called MariaDB.
What does the LineageOS project hope to achieve by continuing the CyanogenMod work? It’s hard to say for sure as a request for information received no response at the time of writing.
One problem that the LineageOS may face is that CyanogenMod was a very complex project, and one that had the benefit of at least a proportion of the estimated $100 million in venture funding. That means that it may struggle unless it finds a commercial organization to sponsor it, says Greg Soper, CEO of SalesAgility, a company that backs the SuiteCRM open source project. “You need expertise, and the will and desire to continue a project (after it is abandoned),” says Soper. “But can a project like LineageOS continue without a commercial organization to help develop it? I have my doubts. I think that the LineageOS project may wither on the vine unless people put money into it.”
Can a project like Lineage survive and thrive with nothing more than a dedicated community of enthusiasts? Time will tell.