The Legacy of Firefox OS

Originally posted on Medium.

In 2017 I wrote about the story of Firefox OS, from the birth of the B2G (Boot to Gecko) open source software project as an empty GitHub repository in 2011, to shipping as Firefox OS on five million devices worldwide, and then eventually being “transitioned” to the community in 2016.

In the two years or so since Mozilla announced the end of Firefox OS as a Mozilla-run project, the B2G source code has found its way into a surprising number of commercial products. In fact since Mozilla moved on from Firefox OS, its derivatives have shipped on an order of magnitude more devices than during its entire time under Mozilla’s leadership and it has gone on to form the basis of the third largest and fastest growing mobile operating system in the world.

In this blog post I take a look at the legacy of the B2G project, some of the devices you can buy today running B2G code, and other related efforts which still continue inside and outside Mozilla. I will cover KaiOS, Panasonic’s My Home Screen, Servonk, Webian, Astian OS, IceWolf OS and the latest in Mozilla Research & Development. I’ll then explain why I think there’s a strong argument for Mozilla to take a more active role in supporting downstream users of Gecko in future, and even the B2G codebase itself.

KaiOS

Probably the most notable fork of the B2G source code is KaiOS from KaiOS Technologies. It was started in 2016 with a team of 30 people and has since grown to have offices in France, Germany, Taiwan, India, Brazil, Hong Kong and mainland China in addition to its headquarters in the US.

KaiOS logo

KaiOS has a UI optimised for non-touch “smart feature phones” with physical keypads and small colour screens. That includes the hugely popular JioPhone in India, HMD’s nostalgic re-launch of the Nokia 8110, and the recently announced $7 WizPhone in Indonesia. With these devices KaiOS is very much continuing the Firefox OS vision of “connecting the next billion”, with low end devices aimed mainly at emerging markets.

KaiOS Technologies CEO Sebastien Codeville with KaiOS devices at CES 2019

JioPhone

The JioPhone has been extremely popular in India since its launch in July 2017, in part due to being given away for free, with a security deposit of ₹1500 ($21 USD) which can be refunded by returning the device to Jio stores after three years.

The JioPhone 2 was released in July 2018 at a price of ₹2,999 ($42 USD). It has a full QWERTY keyboard and has apps for Facebook, WhatsApp and YouTube.

JioPhone & JioPhone 2

Nokia 8110

The Nokia 8110 is available internationally, including here in the UK with a recommended retail price of £69.99 ($89) unlocked. It’s available from many popular retailers and mobile network providers including Carphone Warehouse, Currys, John Lewis, Amazon, Vodafone, EE, GiffGaff and BT.

Nokia 8110

The Nokia 8110 is a very neat little device with an intuitive UI reminiscent of Symbian, but with a modern twist. It’s surprising how much of the web actually works on such a small non-touch screen, though it’s a very fiddly experience if you’re used to a touch screen smartphone.

The presence of Google Assistant on feature phones at this price point is remarkable and it works surprisingly well. To implement Google Assistant for KaiOS, Google have created a custom HTML5 app packaged for the mozApp app runtime KaiOS inherited from B2G.

Nokia 8110 running Google Assistant

When I first bought the Nokia 8110 the bundled app store had a grand total of eight apps in it and there’s no way to install web apps from the browser. Since then it has grown a little, but only to about 30 apps and most of them are games. (The JioPhone comes with its own app store called JioStore and not all apps are available on all KaiOS devices, e.g. WhatsApp.)

WizPhone WP006

The WizPhone WP006 was recently announced in Indonesia in partnership with Google and Alfamart and can be purchased from vending machines for only IDR99,000 ($7).

WizPhone WP006

Other KaiOS Devices

Other devices running KaiOS include:

Rapid Growth

By the end of 2017 KaiOS had shipped on 30 million phones in the U.S., Canada, and India via partnerships with 20 carriers.

By June 2018 it had reached 40 million devices and Google made a $22m investment in the company. As part of that agreement KaiOS Technologies agreed to bundle Google services, including Google Assistant.

As of the end of 2018 it has reached over 50 million devices across North America, Asia, Europe, and Africa.

According to StatCounter, as of the end of 2018 KaiOS was the third largest mobile operating system in the world after Android and iOS, with 1.13% market share worldwide.

Worldwide mobile operating system market share, December 2018. Source: StatCounter

In India it has 4.55% market share, beating Apple’s iOS into second place.

India mobile operating system market share, December 2018. Source: StatCounter

Strategy Analytics are forecasting that KaiOS device shipments will grow 50% year on year in 2019, with more than 30% of those shipments coming from non-India markets such as Africa, South East Asia and Latin America. This, they say, will make it the “world’s fastest growing major platform”.

Panasonic My Home Screen

KaiOS is not the only fork of B2G. Panasonic was the first hardware vendor to create Firefox OS based smart TVs, which received great reviews for their user friendly design when they were released in 2015. When Mozilla stopped work on Firefox OS, Panasonic continued development of the software as My Home Screen 2.0 and later My Home Screen 3.0.

Panasonic 65″ OLED 4K Smart TV (TX-65FZ802B) running My Home Screen 3.0

As of 2019 most Panasonic smart TVs are still running this B2G fork. There are localised variations being sold running My Home Screen all over the world including in North America, Latin America, Europe, Middle East, Africa, Asia and Oceania. They range from the low end 24″ LED TX-24FS500B in the UK for £279 ($359) to the very high end 77″ OLED TH-77EZ1000H in Hong Kong for HK$139,000 ($17,700).

A notable exception is the US, where Panasonic recently stopped selling TVs due to difficult market conditions. But here in the UK you’ll come across these smart TVs when walking into most popular high street electronics retailers like John Lewis, Currys and Argos. Some listings on online stores even still refer to these TVs as “powered by Firefox OS”, despite the official change in branding.

My Home Screen 3.0 is probably a bit of a Frankenstein of web and native code under the hood at this point, with support for a wide range of live and on-demand video platforms, but the user interface has remained largely the same.

Panasonic 49″ 4K TV (TX-49FX750B) running My Home Screen 3.0

I have Panasonic TVs running both the Firefox OS branded and My Home Screen 3.0 branded software and while the browser has barely changed, app development has become much more locked down.

With the latest “HTML v3 SDK” (based on the “Hybrid broadcast broadband TV” standard), developer accounts are basically invitation only. I applied for an account and Panasonic first wanted to know what app I was developing so they could decide whether they wanted it in their store.

This is quite a contrast from the original Firefox OS TVs where anyone could enable developer mode and and anyone could submit an app to the Firefox Marketplace.

Still, with most of the major apps like Netflix, YouTube and Amazon Prime Video already supported, My Home Screen continues to provide a slick and compelling user experience for smart TVs.

In total Panasonic sells approximately 7 million TVs per year worldwide.

Servonk

In January 2018 the tech lead of KaiOS, Fabrice Desré (previously tech lead of B2G at Mozilla), started an open source project called Servonk. Servonk is kind of a “Boot to Servo” like the original Boot to Gecko project, but based on Mozilla’s experimental Servo rendering engine.

Servonk running in an emulator
Servonk running on an Android device

Servonk takes advantage of the cutting edge features of Servo, is largely built on the Rust programming language and roughly follows the slimmed down architecture we started to transition to towards the end of the B2G project.

Whilst a very cool open source project, Servonk is unlikely to ship on commercial devices any time soon, although there are some early discussions around shipping a version of the Necunos NC_1 (community edition) with B2G or Servonk pre-loaded.

Servo is still a very experimental browser engine which can’t render the majority of web pages on the web today. Inside Mozilla, work on Servo has recently mostly been focused on VR applications and moving parts of Servo over to Gecko as part of the Quantum project. Servo itself is currently still a research project.

According to the README, the main motivation of Servonk is to scratch a personal itch to build an alternative open source OS, and encourage contributions to Servo from outside Mozilla. If you join the (still surprisingly busy) #b2g channel on irc.mozilla.org, you’ll find that most recent discussions are around Servonk.

Webian

My own Webian project predated B2G but still continues to crawl along, learning from many of the lessons of Firefox OS and using the web standards it helped create. Webian is an operating system dedicated to running standards-based web apps.

The desktop version is currently built on the experimental Quantum Browser Runtime (qbrt) from Mozilla and the touch version is based on Android Things and GeckoView.

Webian Desktop 0.3
Webian Touch
Webian Touch running on a RasPad

The current approach I’m using for touch-based devices is to implement the system UI as an Android app which runs on top of Android Things. Android Things is basically a special version of Android which only runs a single app (no default system UI like a status bar or task manager is included), enabling device makers to have full control over the system UI.

Android Things has been used to build a range of commercial “smart displays” from Lenovo, LG and Samsung (though notably not Google’s own Home Hub smart display which is based on the more lightweight Google Cast platform). I’m using Android Things to build my own browser-based OS using Gecko via GeckoView with a native system UI in written in Java. The idea is that standard web apps can then be discovered and installed from the web using their Web App Manifest and Service Workers where available.

The upside of building on Android Things is that Google maintains the underlying OS and Android APIs, while I have full control over the system UI and can use Gecko via its existing well-supported Android widget layer. The downside is that it can probably never perform as well as B2G could have done on the same hardware because it requires that additional Java layer, the removal of which was one of B2G’s biggest benefits. And of course Android itself is controlled by Google.

Astian OS

Astian OS Logo

Astian OS calls itself a successor to Firefox OS, but it’s more of a spiritual fork than an actual derivative. It’s really a desktop Linux distribution with a love for web apps, based on Devuan (a fork of Debian).

Astian OS Launcher

IceWolf OS

IceWolf Logo

Originally known as Plánium OS, IceWolf OS (see what they did there?) is an open source project started in Brazil. According to its Twitter profile, IceWolf OS was inspired by Firefox OS and is built on web technologies.

After experiments with NodeJS & Chromium, Electron and NW.js, the project leader Patrick A Lima is now making an effort to move back to Gecko, along with its new Firefox OS inspired name. Unfortunately (as I have experienced myself), Gecko is much harder to embed due to the monolithic nature of its architecture.

Plánium OS

Mozilla Projects

My current job is working in Research & Development in the Emerging Technologies department of Mozilla. Many of the current projects in Emerging Technologies have their origins in Firefox OS.

The WebVR effort culminating in the Firefox Reality browser was first started as a potential new form factor for Firefox OS in VR headsets.

Firefox Reality

DeepSpeech was born as part of the Vaani voice assistant for Firefox OS, and may eventually be used in a voice browser called Firefox Listen.

Firefox Listen on Pocket

The current Mozilla IoT effort includes some early work on smart displays using Android Things and GeckoView.

Things Controller by Mozilla

Legacy

In the five years under Mozilla’s leadership around five million devices were shipped running Firefox OS. Since then over 50 million smart feature phones and millions of smart TVs have shipped running B2G code, and several new software projects have been derived from or inspired by it.

According to StatCounter, on mobile there are now more users of the KaiOS browser than Firefox (1.13% vs. 0.34%).

Mobile Browser Market Share, December 2018. Source: StatCounter

Their numbers show that KaiOS browser market share overtook Firefox on mobile some time in April 2018 and shows no signs of stopping.

Worldwide Mobile Browser Market Share 2017–2018. Source: StatCounter

With the current rate of growth of KaiOS and corresponding decline of Firefox market share, if KaiOS sticks with Gecko and Mozilla doesn’t manage to turn things around, it’s feasible that KaiOS could eventually become the biggest consumer of Gecko altogether.

But KaiOS is currently running a very old patched version of Gecko 48 and Panasonic’s My Home Screen 3.0 is running Gecko 34, while the latest version of Gecko in Firefox is 64.

KaiOS running Gecko 48
Panasonic My Home Screen 3.0 running Gecko 34

KaiOS Technologies and Panasonic are being prevented from upgrading to a newer version of Gecko because Mozilla removed all B2G code from the mozilla-central code repository, including the Gonk widget layer. Since then there have been significant architectural changes to Gecko as part of the Quantum project which make it very difficult for downstream projects to port B2G to the latest version.

This unfortunately means that the legacy of Firefox OS is currently tens of millions of phones and TVs across the world running an out of date browser engine which can probably never be updated. This potentially puts the users of those devices at risk, but also holds back the web platform as a whole.

The Future

So what will these companies do next? It’s very likely that without support from Mozilla, KaiOS will be forced to migrate from Gecko to Google’s Blink engine. In fact I understand there’s already work under way to do this, with support from the Google Chrome team.

The resulting architecture could look a lot like an Android/Chrome OS hybrid, something which has been speculated about for years. Panasonic could then use that same codebase, or just move to another software stack altogether.

A port of B2G to Blink is a huge undertaking, but if it comes to fruition it would further contribute to the WebKit/Blink monoculture we’re increasingly seeing on the web platform today with Chrome, Safari, Opera, Samsung Internet, Edge and Brave.

With both Opera and Microsoft having given up on their own browser engines in favour of building Chromium-based browsers, Mozilla really have the last ground-up alternative implementation of the web platform. This is hugely important because without multiple interoperable implementations, there can be no web standards.

There are ongoing efforts by Mozilla to target new Android-based platforms with Gecko-based browser apps on FireTV, Amazon Echo Show and VR headsets, as well as specialised browsers aimed at emerging markets. But while the rate of decline of Firefox market share has been slowing in recent times, with competitors converging on the Chromium code base and overall Mozilla market share still shrinking, the future of Gecko and the diversity and health of the web platform is looking a little bleak.

Conclusions

Since Mozilla discontinued Firefox OS, B2G source code has found its way into a surprising number of commercial products and now forms the basis of the third largest and fastest growing mobile operating system in the world. However, those devices are currently running out of date versions of Gecko, use locked down packaged app stores, are developed behind closed doors, and are arguably not a great showcase of the open web in the way B2G was originally intended to be.

I don’t necessarily think that smart feature phones and smart TVs would have been a great success for Mozilla had they pursued those product directions themselves with Firefox OS. Nor are those form factors necessarily the best showcase of the capabilities of the open web. However, the unexpected continuing legacy of B2G does serve to demonstrate just how much value still existed in what has proven to be a very versatile and scalable platform.

From low end $7 phones with tiny 2.4″ screens to high end $17,000 TVs with 77″ 4K screens, B2G has continued to perform.

Smart feature phone to Smart TV. Sources: KaiOS Technologies & Panasonic

In my personal opinion, Mozilla should seriously consider working with KaiOS Technologies to re-introduce the Gonk widget layer to mozilla-central, and re-claim some ownership over the B2G codebase. KaiOS could then use a slimmed down B2G architecture with local system services as had been the plan with the B2G Transition Project, and adopt modern web standards for installable web apps.

This would enable KaiOS to continue running an up-to-date version of Gecko on millions of devices rather than move to Blink, which many of their employees and partners might actually prefer, and could significantly contribute to the diversity and health of the web. I also believe this could open up enormous future opportunities for new product areas for Mozilla as well.

There are new form factors emerging today such as smart displays (Amazon Echo Show, Lenovo Smart Display, Google Home Hub) and tablet hybrid devices (Pixel Slate, ASUS Chromebook Flip) which could be a great fit for B2G and the open web.

Lenovo Smart Display. Source: Stacey on IoT
Pixel Slate. Source: Wired

With continuing explorations in voice, mixed reality and IoT there are many new potential product areas for Mozilla which could benefit from the B2G software stack.

Smart displays, for example, could be the ideal home for a voice-first trusted personal agent, consistent with Mozilla’s new three year strategy. Whilst early smart display products are being built on Google’s Android Things platform and that could be an option for Mozilla as well, even Google itself used Google Cast for its own Google Home Hub product, a more lightweight technology stack much more similar to B2G. B2G could give Mozilla and partners an edge in this market, with a platform less controlled by Google.

There could be other use cases for B2G in VR headsets, the smart home and countless connected devices we have yet to dream up.

Personally I would love to see Mozilla emerge from the comfort zone I fear it has retreated into in recent years, shipping Firefox browsers on others’ platforms where the web is always a second class citizen. I’d like to see some new big bets in products and partnerships where the web platform is allowed to take centre stage once again, where Mozilla isn’t constrained by the rules of other platforms.

The Web is the Platform, MWC 2012. Source: Madhava Enros

The web is the platform. Let’s allow it to shine.