An unexpected revival of Firefox OS
tuxphones.com
tuxphones.com
If there was ever anything that show how Silicon Valley and Tech, the modern meaning of "Software people" with little to zero understand of hardware and supply chain. This is it.
And Mozilla wasn't the only one, even Bill Gate said all hardware will eventually cost zero and be subsidised by running software and services.
The lack of understanding of hardware and Supply Chain, even after COVID and in 2022 still greatly baffles me.
One thing I really appreciated was that it was conceived as an appliance rather than as an attention grabber. We tolerate our phones being attention grabbers, but unrightfully so, it doesn't have to be this way. The default UI even had the saturation toned down, to not be so much in your face.
It was pretty capable for an 80 Euro phone. It was the only smartphone I owned that I could feel vibrate in my pocket. I concede that Android ran better on it, but it's not like FirefoxOS ran bad, on the contrary.
I unfortunately lost it, and it was about the time it was being discontinued. I would probably get another one. Heck, I would get one now, if they were still around.
Anecdote: friend had a KaiOS and it was pretty aweful.
[1] https://en.wikipedia.org/wiki/KaiOS#Devices [2] https://www.kaiostech.com/explore/devices/
There are KaiOS devices that support VoLTE and work on US carriers, but the Banana doesn't seem to be one of them. In addition to its many other pain points. Those keys suck to hit...
Many EU carriers have planned to keep a small amount of 2G for industrial devices, old handsets, etc, but US carriers have not.
"The first major commercial adoption of B2G/Firefox OS was seen around 2018 with KaiOS, a widely popular commercial fork of Firefox OS that promised to be a modern OS for inexpensive feature phones. Although KaiOS turned out to be disappointingly closed and oriented to tracking users and shipping advertising, it was quickly forked in GerdaOS, a custom ROM that promised to bring back some of the openness of Firefox OS to KaiOS devices such as newer Nokias, and kill the intrusive user trackers in the process."
It felt, first and foremost, like a device built by someone who had been told stories about the phones of the first 5-8 years of the 2000s, but had never seen one, never used one, and wasn't quite sure how it was all supposed to really work. Lots of really weird pain points like predictive text not capitalizing the lone "i" no matter what mode I was in. I started trying to write texts without "I" in them to avoid having to perform the 72 keystroke sequence to capitalize it - I don't like being lazy in texts about things like that.
The performance wasn't bad initially, but it felt like there were some seriously non-optimal data structures involved in everything. A text thread with more than 50 messages or so started being slow to interact with, God help you if it's got more than a few pieces of media in it. And if the phone had too many text messages in general, the whole texting app would lag badly (seconds to open, seconds to see a list of conversations, etc). I had to very aggressively trim old threads, and sometimes even current ones, to try and keep the texting app responsive.
It also got oddly prone to "Oh, yeah! There was a thing I was supposed to notify you about! You're looking at me now, I remember, you got a text! chime" sorts of behaviors I could never run down the cause of. I'd be texting someone, waiting for a reply with the phone closed, and... nothing. Magically, as soon as I opened it 10 minutes later, I'd get the notification that they'd sent a text. I hate to say things like "You have one job," but "Notifying me that there's a phone call or text message" is sort of the core function of a modern phone-type device.
The browser was a joke. I could browse Hacker News and that was about it. Anything more complex would fail to render, or just crash the browser. A modern web capable device it was not.
I think I gave it a fair shake for a year. But I was still doing things like "Carrying an iPhone, powered down, for when I needed something I couldn't do on KaiOS." It was mostly either drone ops or a particular building access app that I needed often enough, so I don't really fault it, but it was annoying not having them on my carry device. Same goes for "literally anything but SMS." Attempts to get a Matrix client on the device didn't go very far (there is one, but it doesn't work very well), Signal was a no-go, and nothing else was useful either.
It did have Bluetooth, though. And I did like being able to cart around music on SD card. Don't carry too much, though, the music app couldn't handle a ton.
I moved to it when Apple decided to push on-device CSAM scanning, and... a year and another OS revision later, they've seemingly not done that. And then iOS 16 added Lockdown, which I decided to play with, determined did everything I wanted in such a feature, and I'm back to an iOS device with very few apps installed. I never had warm fuzzies about the security posture of the KaiOS ecosystem either - Apple, I do generally trust to try to secure their devices. KaiOS, nothing about it really felt robust against a remote attacker, though I've no evidence that it's actually full of holes. It just never gave any real confidence that it was more than a best effort, YOLO'd sort of thing tossed over the fence.
There were some fun little games, but they were all very peppered with advertising. At least you could sideload stuff.
Anyway... it's a thing, I tried it, and despite my exceedingly high tolerance for tech pain, I couldn't make it past a year. Failures on my part, I suppose. I could have probably dismantled it and repaired the keyboard...
That's the one thing that surprises me the most in your post. Any idea if it was actual browser engine issues, or running on inadequate hardware?
I believe the device has 512MB RAM and a quad core 1.1GHz A7 - so not exactly rocking the hardware. But the browser engine didn't have things like some basic Javascript support, near as I could tell - Discourse forums wouldn't load properly, grumbling about how I ought to enable Javascript. And on that little CPU and RAM, anything "faintly modern" just wouldn't work right at all.
Not that you can see much, it's a 240x320px screen.
There are some higher end KaiOS devices out there I debated, but spending a couple hundred on that level of functionality just didn't seem a good use of funds to me.
The problems I see with KaiOS are 1) lack of aggressive development to fix bugs/features, 2) lack of vendors upgrading the OS on new handsets, 3) lack of vendors upgrading the hardware to run newer versions of the OS. And the market doesn't really care (or have a choice), they just need the cheapest phone possible that can check the weather forecast or email.
Until both developers and vendors give a crap about building efficient technology, they will continue to churn out bloated, buggy software on cheap hardware. Even Palm Pilot was more advanced than the crap churned out today.
I would pay a lot of money for a Palm Pilot designed for 2022. The team that created Palms were gods.
iirc opera mini browser did something similar. The browser would tunnel all requests through their server and render and optimize the page before sending it back to the browser
Android does this in power save mode. Plug in a charger and all of a sudden you get notification pings as background tasks are given a chance to run.
My modern Android phone is like this now; it pretty much never capitalizes lone 'i's. In fact, the whole way auto-correct works is completely brain-dead; it's constantly trying to force me to use wrong words and wrong spellings, even when I try to back up and correct it. It's extremely frustrating. And judging by all the errors I see in other peoples' texts, it's not just me.
Honestly, it's been decades now. How hard can it be to make auto-correct not suck? There's so many utterly stupid things it does which should be fixable with a few lines of code. For one, how about not auto-correcting proper names (which you can tell because they're in the middle of a sentence and start with a capital)? And how about making a lone 'i' capital? And how about not auto-correcting at all if the user has backspaced over the auto-correction and fixed it?
Surely hyperbole and off by an order of magnitude...?
KaiOS is used on 160 million devices around the world.
Apple sell more iPhone than that in a single year.
Extraordinary claims require extraordinary evidence, and the burden of proof is on the claimant (the parent comment) to provide it.
Until then, your claim is simply baseless and can be easily dismissed.
Then the Microsoft-Nokia joke happened.
But, all of the phones I had used to crash pretty regularly, rock solid it was not! Still, I miss it!
And MeGoo was better then Windows Phone as well.
> Then the Microsoft-Nokia joke happened.
The real joke and borderline criminal act was for Nokia to adopt Windows when they had a much better open OS already.
I was at Mozfest in London and they gave everyone a phone, that was in 2014 or 15, so I would be surprised i nobody still had one kicking around.
It wasn't terrible, but it had a LOT of bizarre bugs and couldn't compete with even the cheapest Android (the kind that phone providers basically gave away for free at the time).
It was better than the old Nokia Symbian S40 device I had though.
I ended up moving to a super low end Android device that I got for free from a provider for porting my PAYG (prepaid) number to their service (also prepaid).
I also used one of the Nokia Windows phones for about a year as a student. It was good for calls and SMS, but fuck all else worked. Ended up lending that to someone who lost it.
I can't imagine it working out for low-end mobile hardware.
My experience with Android always felt sluggish since then (given that I never buy expensive phones).
This was the straw for me that broke my faith in open phones and went full iPhone since.
After some point it started declining constantly, and I just had enough so I switched.
You either get your privacy heavily violated, get yourself protected in a costly walled garden or get yourself stranded in a high maintenance, low guarantees software universe for a device that has ever increasing importance in daily life.
I wanted to be a believer, but it just…wasn't it for me.
Also, "seems pretty janky" is quite the shallow dismissal.
Re: jank -- per the official microG wiki [1], most of the functionality is only partially implemented and/or has bugs. I don't see how it's shallow to consider that as janky.
[1] https://github.com/microg/GmsCore/wiki/Implementation-Status
GrapheneOS has a GMS install option, but it installs it as a non root service, so you are still going much more private than stock Android.
It's a shame because it's probably only a handful of apps but it's the ones that are important to me.
I don't care about many apps. I need maps, and a camera.
My streaming service can play from a browser tab. Someone could make a decent podcast site that does the same. The OS should make it easy and reliable for such sites to use 10's of GB of local cache space.
Beyond those requirements, I'm mostly good. (A calculator, flashlight app, etc would also be nice.)
Anyway, I hope that (unlike 100% of these open source initiatives so far), they focus on keeping it simple.
As someone with a hobby project in this area I can confidently say that's not simple.
Either you implement a new simple map app (very hard), or you add a comparability layer to run an existing map app (never done it, assume very hard and also not minimalist).
Edit: Here's an example of an impressive 10k LOC attempt at a new map renderer. Look at what it supports so far. (This map is representative, the renderer just doesn't support things like text yet) https://webgl.demo.maplibre-rs.maplibre.org/
You're right that linking to a vector renderer isn't too much work. I was commenting on the simplicity of writing a map app from scratch.
One cause I think is the lure of offline capability: when I'm in the browser I don't mind loading on demand, but as soon as native enters the picture I'll want at least an escape hatch to downloadable maps. And then the Pandora's box of provisioning, backwards and forwards compatibility is wide open and you happily stick to mapsforge or whatever it is you already have.
(ps: and my post above was supposed to start "Wouldn't maps actually" instead of "Wouldn't web actually", but you seem to have read intention instead of words just fine)
Just based on my superficial impression I think normal apps on the play store pay mapbox if they don't have a big budget and consider maplibre (the fork of mapbox's most recent approach) if they're big enough.
My surface impression is maplibre is used by companies like Facebook who can afford to hire low level graphics devs and fork mapbox's work rather than pay the new license.
For every feature, including offline, I think paying mapbox is the cheapest option with decent quality up to that scale.
Of course, there are projects like mine that aren't motivated by profit. (I'm using mapnik, an independent oss project that got significant mapbox investment years back but which they now consider legacy).
[0] https://support.thelightphone.com/hc/en-us/articles/44021234...
Their privacy policy reveals online directions are sent off to a mapbox competitor
> We've built the Directions tool, like all of our tools, with privacy as a priority. Light does not have access to any location info or logs of your trip history. These trips are handled privately without user identification using our navigation partner HERE.
I suspect everything maps related on-device is a thin layer over the HERE SDK.
I suspect that's possible because LightOS is actually a skin over Linux or Android.
No I don't mean they used JS to write the HAL or anything like that. I'm saying that whole user-facing part of the OS is a WebView. Everything that the user interacted with was part of an HTML5-based application. The window manager, the process switcher, etc. There were custom JS APIs to handle all that. ChromeOS is quite different in that respect.
Firefox OS inspired me to build my own Debian-based operating system that uses web technologies for its UI and apps. It uses Electron as the runtime[0] and works both on desktop (AMD64 arch) and mobile (on the PinePhone). It's very much a work-in-progress project and is by no means complete, but it's progressing nicely over the past few months and I'm sure will become quite a complete OS functionality-wise in no time.
Feel free to check it out here if it piques your interest: https://liveg.tech/os
(There's also plenty of videos that I've previously made that showcase some of the key moments in its development: [1])
Capyloon IMO is also an awesome OS platform that achieves very similar goals to this project, and it'll be great to see what they build next within the world of non-mainstream web-centric operating systems!
--
[0]: A tad controversial, I know — but the rationale is that using one Electron app as the desktop environment means that you don't have to run Slack/Discord/Spotify etc. in their own Electron apps; instead, they can run as web apps that share the same Chromium instance. That way, you don't have completely separate Chromium instances/processes running at once, where they'd otherwise all be consuming lots of RAM due to their startup overhead.
[1]: Playlist: https://www.youtube.com/watch?v=pmOR2J9fDZM&list=PL3aAeH1lqy... — Prism is a prototype smartphone that runs LiveG OS, and gShell is the desktop environment.
Also, yeah what Canonical did with Ubuntu and Ubuntu Touch is pretty cool in terms of convergence (apparently it's really stable, too). I do find having the sidebar UI on mobile a bit odd, but I should imagine that it'd be something to get used to. Phosh and KDE Mobile I think are both convergent, too.
Now I know there are people here who hold the exact opposite opinion. They've worked extensively with Carbon/NextSTEP/Cocoa/UIKit, or OS/2 PM, or Win32/WinRT, or even Swing/JavaFX and then moved on to web UIs and love it. I don't get it though. I sometimes wonder if the web UI fans are mostly people who want to work and play on Linux and that's about the only way software makes it onto or off of that platform these days - as Electron apps.
It’s not the web platform features that are slow and heavy. It’s all the JavaScript on top of it. You can make a UI on the web with just HTML and a bit of CSS. Nothing beats that in terms of performance and small size*. But if you add several MBs of JavaScript frameworks on top of that, then it becomes what you described.
*Try the HTML version of Gmail in your browser https://mail.google.com/mail/u/0/h/. Just HTML and CSS. It’s the fastest email client in the world.
edit: I timed it. HTML Gmail loads and fully renders in about 1 second.
I use Fastmail on a regular basis and it's snappier than the HTML version of Gmail.
Native controls do. For example, Steve Gibson wrote a DNS benchmarking utility[1] and the executable is 159k. No matter what you do, an HTML & CSS is still being rendered by a slow interpreter.
BTW, when I clicked on that link for HTML GMail, Google made me click through a warning trying to scare me off. I'm not sure why they would care if I use the HTML version.
In the end, I don't think the speed of CSS + HTML controls matters much. It's limiting and not a great choice for an operating system UI toolkit.
I do consider performance issues with the web to be quite serious, which is why I've avoided large JS frameworks such as React, Angular, Vue etc. and have gone for a lightweight one that was made specifically for the project (mainly as an experiment). The results do show: the system is rather responsive on an original PinePhone (and I should imagine is really smooth on a PinePhone Pro due to its much better specs), and you can get to the LiveG OS lock screen within 10 seconds of booting the system in VirtualBox.
But yeah, I do see what you mean by the web being... clunky in general. You say about the web being "fragile" and "a house of cards built on shifting sands", and yeah, the culture around developing web services has largely been to use waaay too many dependencies to achieve simple tasks.
Capyloon for freedom, runs most anywhere ( Desktop too )
It runs FirefoxOS apps.
Runs on top of Android on any phone as a GSI.
Comes with a SDK out of the box
Pragmaticly free in that it runs anywhere
One interesting aspect was that it was being marketed as a firmware for low-end phones, but obviously seemed desirable for midrange and high-end as well.
One concern was that the build process (built atop Android) seemed crazy-unauditable and possibly unsustainable. I hoped that the FirefoxOS parts would eventually be transplanted to atop a more manageable open source hardware/device layer.
Towards the end, there was also an unclear funding(?) partnership, involving the home screen and a particular company, which didn't seem consistent with my goals for an open and trustworthy device. I don't know how that partnership turned out, and can't immediately find info on it.
Today, with how far we've stretched "Web"-based JS, massive stacks, software provenance, and control of data, I'd be more interested in a device implemented 1/100th as huge, and 10000x as trustworthy.
Yeah, I remain interested in Capyloon because it's a plausibly-decent-looking smartphone OS that isn't Android, but the IPFS emphasis always struck me as... well, I can kind of understand the "putting the user in control" angle, but pragmatically I would not have started there. Of course, it's a FOSS project by volunteers so if that's what people happen to be interested in then that's what'll happen:)
For me, it would be great to have a simple, privacy oriented phone with a decent camera and, in terms of apps, just maps, Spotify, Telegram, Whatsapp (sadly still having friends/family there) and MFA. (Banking app from the bank I use would be great but that's too much to ask for). I guess the sweet spot is gonna be in a middle range smartphone compatible with Graphene or Lineage and install a minimalistic launcher in it.
If you know what you’re getting into, it’s not a bad (smart) dumb phone, especially if you are looking to get away from a smartphone. I rooted mine to install a QR code reader and app for ePubs.
Yes. JavaScript can be used on the desktop, we name it usually Electron. It actually replaced Flash! It allows companies to copy their web-code to the desktop and relabeling it as application. This is cheap. The users suffer from slow applications, which require a network connection, which consume high amounts of resources (memory) and provide bad integration. This is expensive. Microsoft Teams tries currently to switch from Electron (which includes Chrome) to Chrome itself.
I'm rather happy with the GNOME-Shell. It comes with its own implementation of GJS which changes the situation. The GNOME-Shell itself suffered from memory leaks which are fixed for some years:
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/64#note_...
I'm thankful for the authors description. Replacing language A by B or B by C doesn't improve the implementation. Every implementation requires a lot work and constant care. And the comment describes how they control memory usage rather well in C/C++ with ASAN (GCC or CLANG) and Valgrind, suffered from incompatibilities between GObject and JavaScript and memory leaks within JavaScript. The implementation with JS allows for immediate manipulations of GNOME-Shell through developers but I wonder if the would prefer a native language when doing it again. At least that would reduce complexity and remove the dependency on the interpreter.
I'd be very surprised if somebody actually uses it as their daily driver. Maybe as a really-dumb phone, only for calling and SMS - but anything smarter than that doesn't work anymore. Even the maps are a decade without any further updates.
The mobile web today is horrible to browse, websites are slow, most aren't designed with mobile first in mind, mobile has become an afterthought because companies want users to use their "native apps" where they have full control over ads, tracking and what not.
Go to i.reddit.com and compare that version with the regular mobile website, there is no debate, i.reddit.com is bloody fast and light while whatever the regular mobile website uses is slow as hell. Why is that? Because reddit new design wasn't designed to be efficiently browsed on mobile phone.
Same could be said with any ticket/hotel booking, eshops, or governmental mobile website. 99% of these aren't designed for mobile at first place. Slapping a CSS with some media queries isn't designing for mobile.
KaiOS isn't a failure, the mobile web absolutely is since developers stopped caring about it.
For instance, I needed to get a BIOS upgrade for my mouse issue on my Lenovo laptop, but their support site a) required JavaScript and b) wasn't using tabindex or keyboard accessible buttons/links to navigate it. Why this is required to get me a simple ISO or zip is pretty ridiculous. I should be able to use a TUI browser to get such downloads for my device and it doesn't require any interactivity.
Beyond this, PWAs aren't the most popular because of Apple if I'm speculating. The PWA experience on Apple's OSs are so handicapped that it's often seen as a waste of time to develop for as Android users are the only ones that might bother installing the app and desktop discoverability is horrible (Fx stopped support for SSB before it even went to stable). Also there isn't a FxOS or KaiOS system that is actually used in the anglosphere where most developers still come from so the need to support is overlooked.
Call me a dinosaur as much as you want, but once upon a time those would have been on a FTP site, simple and easily accessible.
Then the web "evolved".
What's the most popular mobile OS? and what they created to power their interface and to gradually replace their old toolkit? yeah, it's not a html+js based OS ;)
If they ever want to revive Firefox OS, they'll need a better frontend story
What really pisses me off is that they literally didn't even sell the N9 in major markets. Like wtf are you doing. This was a high margin phone, ready for production. It should even have been out much earlier.
The follow up phone was getting close to release. They also had the N950 almost ready for release. And in theory they also had a lower prices phone with MeGoo that was supposed to be out, but it was killed because of their internal competition.
Nokia just really stuck around far to long on SynbianOS and that group had way to much power inside of Nokia.
I really wanted the N900 and I was just waiting and ready to buy some N1000 that I was sure would soon come out. But it never came. By the time the N9 came out it was already pretty late and they had already killed the platform.
Its more a case of Nokia board-members WANTING this situation, that's why the allowed this direction and were more then happy to pawn of that whole business to Microsoft.
I thought the successor to Maemo was Sailfish...
…did the author ever try to use a FirefoxOS as their daily driver, or did they just play around with it for a bit?
• The SDK had constant breaking changes
• Update policy from hardware vendors was worse than Android's (Alcatel never updated their "flagship" FxOS phone outside the US)
• Together, it meant that most users couldn't use the app store
• The UI/UX was very obviously just half-assedly cobbled together. It was flat only because that's easier to do when you have no designers on staff, and none of it was clean compared to stock Android 4
I never tried writing an app, so I can't comment on the quality of the SDK, but since it broke constantly and most app authors apparently gave up, going by all the incompatible corpses rotting in the app store, I also question the "easy-to-use SDK" part.
The default apps were also kinda awful, I still remember the camera app having an overflow issue where too bright pixels were rendered as black, e.g.
Overall, FxOS failed not because people didn't understand its hidden genius, it failed because it was awful.