Emacsen's Blog

The Search for a FLOSS Mobile OS (Aug 2021)

For the last few weeks, I've been running CalyxOS. It is the latest in Free/Open Source mobile phone operating systems that I've used. This post is a summary of my experience using FLOSS mobile OSes and what my experience can tell us not only about phones, but Free/Open Source OSes in general.

The Search For a Mobile OS

Calyx is not my first look for a FLOSS operating mobile OS, or even a handheld OS. I was a lucky owner of the Agenda VR3, a Linux-based PDA, as well as a iPAQ. I also owned a Neo FreeRunner, and while the device didn't work for me as a phone, I've always wanted a Free/Open Source phone.

In 2020 my hopes came true when multiple nearly-ready mobile OSes became either available or usable for regular use, and now I am the owner of a WLibrem 5 phone and PinePhone, as well as having tried several Free Mobile OSes. To date I've tried UBPorts, postmarketOS, PureOS, Mobian, /e/, GrapheneOS and now CalyxOS. UBPorts, postmarketOS, PureOS and Mobian are each different but we can roughly classify them as "Linux-based " and GrapheneOS, /e/ and CalyxOS are all Android-based. These are only rough classifications since the term "Linux-based" can mean anything that runs the Linux kernel and Android technically uses the Linux kernel. Nonetheless I'll be using this classification system for reasons that will become clearer in the next section.

True Freedom?

I know many people will have only a single criteria when evaluating these phones: Are they 100% Free as in Freedom, and the answer is that not all of them are, especially the Android-based OSes, which use non-Free binary blob drivers.

For some, this alone will be a showstopper, and I understand and appreciate that perspective, but I will review them anyway because for many people the issue of software freedom will take a back seat to other practical concerns, such as de-coupling their device from large companies such as Google or Apple. While I'd prefer an entirely Free OS, the immediacy of the threat to privacy means that I believe it is a justifiable position to place this practical need above the long term effort to have total control over our devices.

To Android or Not?

Calyx, /e/ and Graphene are all based on Android. They are the familiar Android operating system with software either modified or removed. This is in contrast to postmarketOS, Mobian, UBPorts and PureOS, all of which are not based on Android at all. Instead, these operating systems are more structurally similar to a "Linux-based" operating system that many geeks such as myself are familiar with.

The upside of this choice is that these OSes offer more familiar environments for Linux users and developers. They also are designed to run primarily on specialty hardware that is designed to make running and using them easy, sometimes without the need for any proprietary software, including proprietary drivers.

On the flip side, because there is no single unified development or GUI environment for these OSes, developers are forced to climb a steep hill of writing all new software for these phones. For example, it's only recently that "Visual Voicemail" has become available.

Worse still, programs that many rely on may not be available at all, even if they are Free.

While I want very much to be using one of these operating systems in the future, I could not recommend one of these devices for a "regular person" at this point, and for myself, they're not capable of serving as my daily everyday device yet.

I hope this changes, as I'd love to switch to a more traditional Linux-based operating system on my phone, but I can't quite make this leap just yet.

Anbox

Linux-using enthusiasts will no doubt be thinking "What about Anbox?"- the Android emulation layer that runs on top of Linux in a similar way that the popular program Wine allows Linux users to run Windows applications. To be sure, Anbox does exist, but I haven't had a chance to use it simply because the two phones I have that run Linux-based operating systems both suffer from problems. The PinePhone is a wonderful device, and at $150 is a steal, but it's fairly slow. The Librem phone cost over $700, but I find the hardware too clumsy and heavy to use as a phone.

Anbox would certainly be a benefit, as would a repository of mobile websites bundles as apps such as the Uber and Lyft websites. You can consider Anbox to be a complimentary technology to the discussion of the Android-based OSes.

The Android Derivatives

The first non-Google Android that many people used was CyanogenMod. You can read more about what happened to CyanogenMod here, but essentially this OS has been replaced with Lineage, which has in turn been forked off several times by other development teams, namely /e/, Graphene and Calyx.

In terms of usability, Calyx and /e/ are most similar, so I will talk briefly about GrapheneOS and what makes it different and unique. Graphene takes the position of being a "Security first" operating system. If there is an option to make something secure- ie through encryption or through application isolation, GrapheneOS appears to make the choice to support it. You can read about these features on their website.

I ran GrapheneOS, and while I feel that I could likely make it work for me, it would have required quite a bit of tweaking. Graphene would probably be fine for a geek or developer, but it's not something I could recommend to a non-technical family member.

This leads to /e/ and Calyx. Before going any further, I want to say that I think both /e/ and Calyx are great operating systems and come very close to all of my goals.

Google Services

To understand both /e/ and Calyx, you need to understand a bit about how Android works and specifically how the "Open Source" Android operating system is a bit of a misnomer.

Android is indeed available under Free/Open Source licenses. This core operating system is called AOSP (Android Open Source Project), but most modern application rely on features that are not available through AOSP, including notifications, application debugging and other features and applications. These are called the Google Mobile Services, or GMS. Without Google Mobile Services, many Android applications simply won't work.

There are two general approaches to remedying this situation, and they're complimentary in nature. The first is to encourage developers to build software that does not rely on GMS, or replace GMS features with their FLOSS equivalents. This is the approach that the F-Droid project takes. F-Droid is known to many Free Software enthusiasts as a software repository, but it also works with developers in building their software without reliance on Google through documentation and directly with developers on their forum.

The other approach is to allow unmodified software to run, but to replace the Google software stack with a FLOSS Software stack underneath. This means that even if a proprietary API call is made, it will simply trigger it's Free alternative instead. That's the approach that MicroG takes.

Micro-G is not perfect however, as Google continually updates its APIs and does other checks as well, and the developers must try to catch up to a changing landscape. Nonetheless, by providing software to replace Google's API calls, it makes it far more possible to run unmodified Android Software.

Both /e/ and Calyx use Micro-G, and /e/ financially supports the project.

Getting Apps

While I would love to be a Free Software purist, we are often asked or even required to use proprietary software on our phones. This includes services which require apps, such as food or transportation, banking apps, or even government apps such as COVID tracking or passport apps.

Putting the issue of compatibility aside, it's often challenging to install the software itself. Android software is distributed in a format called APK, and it is possible to install APKs directly onto the phone, but it can be hard to find them since most websites simply point to the Google Play Store.

This is where the application Aurora Store comes in. Aurora is a Google Play Store client. It essentially pretends to be the Google Play application, but is built with privacy in mind.

You could use it to download your paid applications, or you can use it in anonymous mode to find/download/update your existing programs.

It does come with a catch... Using Aurora Store could be considered a violation of the Google Terms of Service and Google could terminate your account for it.

While for some people this might not sound like a big deal, it could be very serious for others. Having your account terminated would mean that Google would lock you out of your email, your calendar, your Youtube, Google Payments, or any other Google services. If you use your Google account in an official capacity, such as for government forms, it could potentially make your life very difficult.

It's because of this risk that while I think Aurora is neat, I hesitate to recommend it to non-technical friends- especially if they would log in with it.

Calyx comes with Aurora Store, while /e/ does not.

Contacts, Calendar, Settings and Backup

When you install a Google or Apple phone, it requires you to log in. Apparently the same is now true for a Windows 11 computer- you must either create or log into an existing account in order to use it.

For FLOSS fans, or anyone who cares about our privacy, this is an anathema, but there is something to be said for the ability to start a new phone and have all your contacts, your calendar and your settings all "just work" out of the box. While I want to say that this isn't a big deal, the fact is that not having these features seems like a step backwards.

This is where Calyx and /e/ differ. The /e/ Foundation has created a server that users can create an account on during installation and lets you sync your contacts, and possibly do phone backups as well. Calyx does not do that out of the box, though it is possible to achieve with some software.

This is a big plus for /e/. For users who don't entirely trust the /e/ Foundation, the software they use is essentially just Nextcloud, so it would be possible to self-host as well.

Syncing up contacts and calendar on Calx involved installing the Nextcloud client, configuring it for my Nextcloud instance, then installing DAVx5 and then configuring it to use the Nextcloud client. This wasn't difficult for me, but it's enough of a pain that I think a non-technical person might find it challenging.

Moreover, while I run a Nextcloud server, I certainly don't think that most people have their own Nextcloud instance or one that they can just use, so kudos to /e/ for making this process as easy as it could be.

Calyx's Nifty Privacy Features

Where /e/ shines in terms of easy of use, and Graphene shines in terms of security, Calyx has made wonderful choices in terms of privacy. As a small example, when you make a normal (non-encrypted) phone call, it reminds you that the conversation and your location are not protected. These small touches make the OS feel both secure and also "fun". It came pre-installed with F-Droid, Signal, Tor, Briar, as well as other privacy apps. Even the default wallpaper, proudly declaring "I never Metadata I didn't like." made me feel like I was back in the late 90s when running Linux was in itself a sort of act of rebellion.

Calyx also comes bundled with its own VPN. I'm not sure how it is that Calyx can install a VPN but not have the resources or interest of running its own Nextcloud ala /e/.

Maps, Location and Geolocation Services

Maps and Geolocation services are probably the biggest show-stopper in terms of ease of use of these phones for most people. This is a topic I know about in some detail, having been involved in the OpenStreetMap project. I won't rehash the issues in detail, but I think there are three large impediments for most people.

The first impediment is that Google and Apple both provide a geolocation service as part of their phone operating system. Another way to say this is that Google and Apple can figure out exactly where you are. To do this, they use a combination of several pieces of information- everything from GPS signals, cell tower triangulation, WiFi hotspots and more. Using this combination of data, they are able to accurately pinpoint your phone's location quickly and easily.

Without a Geolocation service, the phone must try to figure out its location on its own, often using GPS. Unfortunately GPS is slow, somewhat inaccurate and drains battery quickly. There are attempts at creating a Free geolocation service, such as the Mozilla Location Service, but as far as I know, none of these services are ready for prime-time use.

Both Google and Apple have a map platform. In the FLOSS world, we have OpenStreetMap. Google/Apple maps provides not only maps, but also a robust and complete Point of Interest (POI) map, detailing store information, etc. OpenStreetMap's street maps are often quite good, but POI data often falls by the wayside. This means that looking up the nearest gas station or restaurant can be a hit-or-miss experience. Getting more contributors to OSM would solve this, as might some kind of web scraper that could contribute to a POI database, but in the meantime this could make OSM based maps a non-option.

Lastly, OSM maps do not contain real time traffic data and so routing may be significantly worse than it would be for Google Maps.

If OSM maps are bad, why not switch to Google Maps for short periods? This is certainly possible using the website. As for the Google Maps app, in my experience the app either did not run, or it ran and complained about Google services not being available, while still working. While I found this acceptable for me, it might be too big a leap for users.

This isn't a phone issue as much as it is an issue of geolocation and geographic database services, but because maps are such a large part of the phone experience, it's worth mentioning.

Ease of Install

One of the biggest challenges with getting non-geeks to use Free technology is the install process. Back in the 90s, avid Linux users such as myself ran Installfests, gatherings where people would bring their computer and get help installing Linux on it. Those days are over, but I can still imagine someone finding the install process for these OSes to be intimidating.

/e/ takes care of that factor by offering its OS pre-installed on certain devices. Unfortunately for me, they currently only sell their phones in Europe.

Luckily for us, many Free OSes are taking a cue from Google and offering a web based installer. GrapheneOS currently offers a web based installer, /e/ is slated to soon, and while Calyx doesn't, their installer was also fairly straightforward. Nonetheless, the easier the install process could be, the better.

Calyx and Graphene also only support a limited number of phones, which makes it easier to support a better install experience.

One downside of all the Free Android OSes I've tried is that the phones complain about a non-Google OS on boot in a somewhat intimidating message.

Installing the Linux-based OSes is much easier, but is still a multi-step approach. While I love being able to install an OS by inserting an SD card, eliminating the multi-stage install process would be even better.

What OS would I choose, and thoughts on the desktop

As of the time of writing (August 2021), I would choose an out-of-the-box supported /e/ phone first, but if that wasn't available, I would install Calyx without hesitation

That said, I think that the extra steps in Calyx to sync contacts, calendar and settings make it a non-starter for non-geeks. Users today expect that applications work without additional configuration steps, and it's hard to blame them. When I first started using Linux in 1997, I was amazed at how much software for computer came bundled on CDROM. In 1999, I switched to Debian and it felt like I had the entire world at my fingertips compared to Windows users who would need to either purchase software, or at least go through the manual installation process. I could reinstall and reconfigure a desktop in just a few hours.

Now these kinds of installation experiences are the norm, but we're still expecting Desktop and mobile users to spend hours configuring applications, and that's assuming they have a resource like Nextcloud available to them- most don't.

That means one of two things need to happen, and likely both. The E Foundation has taken a page out of Google and Apple's playbook by offering synchronization out of the box. It might be that large FLOSS providers begin offering services alongside their software. This would not be unprecedented, as Mozilla offers several services, and everyone relies on Wikipedia and even OpenStreetMap services. It may be that this becomes just another cost of being a FLOSS project.

Another possibility is the creation of tools designed around cooperative storage. That's the ideas of the Datashards project, though we haven't made any announcements lately. I want to see storage systems like Nextcloud replaced by cooperative storage systems that handle synchronization and backup transparently and allow your devices to work together without the need for additional software.

Final Thoughts

My experience shows we're very close to having a Free/Open Source phone, but we need to make a few sacrifices along the way. We as geeks could certainly use such a system, especially if we care about privacy, but in its current state, I'm not sure I can recommend the current generation of mobile operating systems for non-geeks, even if they are looking for a de-Googled experience.

I think we can also look at the issues of backup and synchronization to improve our desktop OS experiences as well. I believe that when FLOSS Software achieves 80% of what its proprietary competitor can do, it becomes a tipping point. I think we're at 70% right now. The other 10% is very achievable, but it will be hard work.

misc