Previously: Part Zero, Part I.

 

Part II: Mobile Operating Systems

 

In Part I we introduced operating systems and discussed some alternatives to Windows and macOS. Recall from Part I that Apple’s devices and OSes are joined in such a way that it is impractical, if not impossible, to replace the OS on an Apple device with an alternative. This is especially true of Apple’s mobile devices, and there are currently no alternatives to the factory OS on any iDevice. That being the case, the present discussion of mobile OSes will by needs ignore the Apple mobile ecosystem.

Thus we arrive at Android, almost certainly the worst offender in OS privacy. This shouldn’t be surprising, of course. Google is an advertising company, and every product they develop is in furtherance of selling ads, from their web browser (more on that later), to their search engine, to their email service, to their mobile OS. The Android OS that makes its way onto your smart phone begins life as the Android Open Source Project (AOSP). AOSP is the bare bones of the OS without any Google services, specific hardware drivers, or third party applications. As the name suggests, it is fully open source, so anyone can use or modify the source code, and that’s just what third party ROM developers do.

ROM is an acronym for “read only memory”, and in the context of Android it’s actually a misnomer. An Android “ROM” is just a flashable OS image that can be written to the device, more similar to the actual definition of firmware. The upshot is that, thanks mostly to the largely unpaid work of volunteers who integrate the drivers and kernel for a mobile device with the AOSP source code, there are a variety of third party Android OS images available for a variety of mobile devices that you can use in place of the larded up spy-happy version of Android that the manufacturer installed. Unfortunately, unlike with desktop and notebook PCs, the firmware and standards for mobile devices are not as open and interoperable, so whether a particular device is supported by a third party ROM is often a crapshoot. If the manufacturer has locked down the bootloader or not made a device tree and device drivers available, you’re out of luck. Of the hardware manufacturers, Motorola and OnePlus (now Oppo) generally have the best support for third party ROMs, while some of the more premium brands like Samsung tend to lock down their bootloaders, firmware and drivers. Devices that are locked to a specific cellular carrier are usually the most difficult to mod, even if the carrier lock has been removed, as these devices typically have non-unlockable bootloaders and hence cannot boot any alternative OS. Even a carrier-locked variant of the exact same unlocked device will usually not have an unlockable bootloader. You can get a good idea of which phones will have the best third party ROM support by looking at the LineageOS device database. Pay careful attention to the actual model numbers listed as compatible rather than the generic handset name to avoid the aforementioned issues with incompatible or carrier-locked sub-models. Officially supported devices will usually have an easy time running any third party ROM, not just LineageOS. With US mobile carriers having just switched off their 3G networks, it is important to verify that voice over LTE (VoLTE) and/or 5G is supported by the device and OS. This can be complicated, especially if you use AT&T or a MVNO that uses AT&T’s network infrastructure, as AT&T has implemented a device whitelist for VoLTE. Even if your device supports VoLTE (at this point pretty much all devices in common usage do), and even if your ROM includes the correct drivers to implement it (this is hit or miss – check the device database), if the device is not on the whitelist it will not work on AT&T’s network. You must cross-reference the AT&T device whitelist with the LineageOS device database to ensure compatibility. T-Mobile and its MVNOs are much more flexible with provisioning devices for VoLTE, and generally any device with VoLTE capability in the hardware and OS will work on T-Mobile’s infrastructure.

The aforementioned LineageOS is a third party AOSP-based ROM that sticks very closely to stock AOSP, and by default does not include any Google services, including the Google Play Store. This does not leave you without the ability to install new software, as you can sideload APK files onto the device or use an alternative app store, like F-Droid or APKMirror. LineageOS is my preferred mobile OS and the one that currently runs on my mobile device. My mobile phone needs are very simple: I need to place and receive phone calls, send and receive SMS and MMS text messages, play locally-stored music in my car, and have access to the web and email. I do not have a Google account and do not use any Google services. If your needs are more complex and you wish to use Google services, you can add that functionality to LineageOS by installing MicroG, which is an open source re-implementation of the Google Play Services APIs. If you don’t know what any of those words mean, in essence it allows you to have access to the Google Play Store and most Google apps and services (Maps, Gmail, Drive, etc) without having the proprietary Google Play Services software installed on your device. Quite obviously, this is not a privacy schizo recommended solution, as breaking away from Google’s surveillance is one of the key reasons for installing a third party ROM in the first place. But even if you don’t typically use many, or any, actual Google apps, there may be third party apps you use that make use of the Google Play Services APIs. This is particularly true of banking apps, which rely on Google Play Services for “security”. I personally won’t have anything associated with my bank accounts or money on my phone under any circumstances, but as I said, my use case is uncommonly simple. You can still always use your bank’s website to access their online banking features from the browser of your mobile device just like you would with a desktop or notebook computer, but some banks include additional functionality in their official app that isn’t available from their website. If you need that sort of functionality, that’s where MicroG can help.

There are several forks of LineageOS that add or remove certain functionality. /e/OS is one such fork, which attempts to replace many Google services with their own alternatives, and includes MicroG by default. DivestOS is another such fork, which focuses on free/libre software and supports some older devices that are no longer supported by LineageOS. But there are other options as well. If you stick to the Google Pixel hardware lineup, GrapheneOS and CalyxOS are alternative ROMs that are security-focused, tightly integrate with the hardware and preserve the Google services you may depend upon in a less-invasive manner. GrapheneOS accomplishes this by implementing the proprietary Google Play Services software as a user program that is sandboxed from the rest of the system. CalyxOS, like LineageOS, relies upon MicroG for that functionality. Each method has its supporters and detractors. My preference if I had to choose would be MicroG because I prefer to avoid proprietary software to the maximum extent possible. However, because MicroG is a reverse-engineered version of Google Play Services, not everything works. Certain apps you install may expect certain API features that aren’t there and not run properly. GrapheneOS, by using the proprietary Google Play Services APIs, but isolating them from the rest of the system, avoids that problem, and furthermore they argue that this is a more secure way of implementing those features since the Google Play Services do not have elevated permissions, while MicroG runs as a privileged program. I will leave it to the reader to do their own research and decide which method they would prefer. There are other differences between GrapheneOS and CalyxOS as well, a brief summary of which can be found here. Either OS is a much better alternative to the stock Android OS shipped with the device, and the differences come down to different priorities and methodologies of the respective development teams. The online pissing matches between GrapheneOS and CalyxOS users are a legendary example of the aforementioned performative extremism of the privacy schizo community. Suffice to say, both are good choices, and unless you have very specific requirements and/or very strong feelings about particular software development and security practices, a coin flip will make a good decision either way.

Flashing a third party ROM to an Android device, particularly if the device has official support from the ROM developer, is fairly trivial, although you will have to type a handful of commands into the dreaded command line. If that doesn’t sound appealing to you, there are a few options to buy phones with a third party ROM preinstalled. Private Phone Shop sells a small variety of refurbished phones with your choice of third party ROM preinstalled. Privacy Practical sells phones from the Google Pixel lineup with GrapheneOS or CalyxOS preinstalled. Murena is a project of the e Foundation, developer of the aforementioned /e/OS, which sells devices with /e/OS preinstalled. Be prepared to pay rather exorbitant prices at these sellers. For instance, the Motorola One 5G Ace being sold by Private Phone Shop costs $349. A couple of months ago I paid just under $200 for the same model in like-new condition in the original box on eBay and installed LineageOS myself. That’s a healthy premium for about 20 minutes worth of total work. But if you aren’t inclined to DIY, ask yourself if your time, privacy, and data are worth the added expense. I know many of us have hobbies that cost more than $149 for one day’s entertainment.

On a final note, you can also install a Linux-based OS onto a very small number of smart phones, and there are two smart phones currently being marketed that are designed as Linux devices from the ground up. UBPorts and postmarketOS are two older Linux distros that predate the two Linux phones currently on the market, and have been ported to a small number of Android devices. The two Linux phones currently on the market are the Librem 5, available from the aforementioned Purism, and the PinePhone and PinePhone Pro, available from Pine64. The Librem 5 and both models of the PinePhone support both UBPorts and postmarketOS, as well as several other mobile Linux distros. However, even as a Linux enthusiast and privacy schizo, I cannot recommend any of the Linux phones as a mainstream consumer device. I pre-ordered the original PinePhone months before release and was one of the first people in the US to receive one. I dabbled at it for several months before finally selling it to a developer to tinker with as it was simply unusable as a mobile phone at that time. While the state of the software has improved immensely since those very early days, I have followed the progress pretty closely and I still do not believe that either iteration of the PinePhone, nor the Librem 5 are quite ready for prime time to replace iOS or Android for mainstream phone users. If you like to tinker, the original PinePhone in particular is a good option as it is relatively inexpensive and completely hackable. But if you can’t tolerate abysmal battery life and at least occasionally having to open a console and type commands on a touch screen keyboard, these are not the devices for you. For the price of a Librem 5 or PinePhone Pro, you could get much better hardware specs with a de-googled Android OS preinstalled and be much better served.

TL;DR: Consider installing a third party Android ROM, like LineageOS, /e/OS, GrapheneOS or CalyxOS, and avoid Google services. If you would prefer not to install a third party ROM yourself, consider purchasing a phone that runs an alternative OS from a company like Private Phone Shop, Privacy Practical or Murena.

 

Next week, “Part III: The Cloud.