Skip to main content

Why You Should Break Free From Android and Switch to Mainline Linux Phones

·
Categories Linux FOSS Issues
Tags Free Software PostmarketOS Android
Table of Contents

Wubai’s album once said:

Fate is irreversible, but moderate resistance is necessary. Life is irreversible, but the freedom of the soul is necessary.

Someone once asked: why develop Linux distributions for phones (mobile Linux distro) and reinvent the wheel, when Android already exists? Here are a few reasons why Android is not the best solution for phone Linux.

1. Android Is Not Free Software
#

The Android system is not completely free software. At least, its structure differs greatly from GNU/Linux.

Android is developed from Google’s fork of the mainline Linux kernel, becoming a downstream kernel. Although the mainline Linux kernel is open source, it already contains many proprietary firmware binaries, which the Free Software Foundation is very dissatisfied with. With Android, the situation is even worse. Google created the HAL abstraction layer, giving hardware vendors the opportunity to stuff in more proprietary firmware without violating the GPL terms. This causes the Android system to become even more closed. In addition, Google cannot force each vendor to implement all AOSP functions, so the downstream kernels each vendor makes by modifying Google’s kernel also add more patches outside the source tree, many of which are closed.

Aside from the kernel, the upper-layer software structures of GNU/Linux and Android are not quite the same. Taking the graphics layer as an example, Android uses SurfaceFlinger to draw the screen, while Linux uses X11 or Wayland.

The underlying principles of the two are different, so programs on the two sides naturally cannot interoperate seamlessly.

In addition, the C library Android uses is developed based on Bionic, which is incompatible with Glibc used by ordinary GNU/Linux. This creates the problem that drivers cannot be directly applied. The Free Software Foundation often emphasizes that Linux should be called GNU/Linux, and the reason behind this is that ordinary Linux includes the GNU toolchain, while Android does not.

Thus Android has become a heavily patched Linux system. If you want to port the mainline kernel to an Android device, you often have to add a pile of Android-specific patches, because Android has already diverged far from Linux. A developer once stated that the customized Linux kernel used by the PinePhone differs from mainline by 500,000 lines of code, while the OnePlus 6T differs from the mainline kernel by 5 million lines of code. This shows the enormous scale of Android’s modifications.

User control over hardware Android fragmentation aside, the worse part is that there are many restrictions on people who want to modify the system. Unlike the x86 platform, where systems can be freely installed, the ARM platform has no standardized boot process, so hardware vendors have to implement functions themselves, making it difficult to freely install systems on phones.

Because kernel maintenance is heavy work, vendors can easily treat phones as consumables, abandoning updates after only a few years, which causes environmental problems. Although Android can be flashed, it still depends on whether the phone manufacturer is open enough. If too much proprietary firmware from hardware and phone vendors is stuffed in, flashing ROMs also becomes full of difficulties. Some phone vendors also block flashing paths for security reasons (not allowing bootloader unlocking), and some do not even publish kernel source code.

When old phones are abandoned by vendors, someone may make ROM packages to upgrade the Android version, but they have to accommodate vendors’ proprietary firmware and solve hardware problems through hacks. In addition, as mentioned above, the Android kernel contains more proprietary firmware, making it difficult for developers to replace the kernel with the mainline Linux kernel. According to postmarketOS data, not a single Android phone can run the mainline Linux kernel while driving all hardware.

Fragmentation caused by each vendor adopting a different interface is not a serious problem. After all, desktop Linux UIs are also diverse, and UIs can be changed. But if the low level is too closed, changing the system becomes very difficult.

2. Android’s Software Ecosystem Heavily Depends on Google
#

For Chinese people living in countries with internet censorship, Google here can be replaced with any major phone vendor.

Even though Google releases AOSP, is there any Android phone sold around the world without Google? In terms of software functions, Android features such as location and push notifications all rely on the closed source Google services framework, and data passes through Google servers. If the EU had not intervened, the degree of monitoring would be even more unscrupulous. Even with open source alternatives such as microG and F-Droid, they definitely will not feel very comfortable to use.

Google has direct influence over Android, and everything it does gradually becomes a de facto standard, even part of people’s perceived everyday life. “If you did nothing wrong, why fear surveillance?” Is freedom of speech unimportant because there is nothing to say? When one vendor controls most system functions, it infringes digital human rights and gradually erodes freedom.

3. Providing Choices Beyond Android
#

If the Android system has to follow Google’s will, then developing real Linux phone distributions becomes necessary. Since the launch of the PinePhone and Librem 5 in 2019, more than 10 mobile Linux distributions have been born. Many were developed from existing desktop Linux distributions, such as Mobian, Arch Linux ARM, postmarketOS, Fedora Mobility, openSUSE Mobile, and Ubuntu touch.

Their consensus is to adopt a Linux kernel close to mainline (the PinePhone still needs a small amount of proprietary firmware due to cost considerations), use X11 or Wayland as the windowing system, and use glibC or muslC as the library. Then they develop Linux APPs suitable for phone use, or allow Linux desktop applications to freely adapt to window sizes. Related system APIs are inherited from Linux desktop environments, and the system does not preload any service that asks you to log in to an account. More importantly, some of these technologies have already been fed back upstream to corresponding Linux distributions, making Linux phones more likely to develop sustainably.

After solving the system side, a suitable phone vendor must also be chosen. Because of the factors mentioned above, converting an original Android phone into a Linux phone distribution is not a long-term solution, because it will be constrained by proprietary firmware. Therefore, the phone vendor’s attitude toward the system is very important. At minimum, the bootloader should not be locked by default, and corresponding low-level software source code should be supplied. Only then is there a possibility of being accepted by the Linux community.

4. Current Linux Phone Distributions
#

As of 2022, the user experience of Linux phone distributions still cannot be as mindless as Android. Most are in a testing state. The best pure Linux phone hardware performance is only at the level of mid-range Android phones, making software smoothness inferior to old Android flagship phones ported to Linux.

However, developers remain active in improving new features. At least basic phone functions such as calls and internet access have stabilized. What remains is to gradually complete the necessary software frameworks and APPs, while maintaining a development model that lets users freely modify software and hardware, with vendors and the community cooperating closely. Mobile Linux software and hardware are highly open source, and with broad community support, the barrier for ordinary people to join development will be much smaller. As for hardware, because of cost and vendor scale factors, the hardware performance of pure Linux phones is unlikely to surpass Android flagships in the short term. Openness is the only advantage.

Seen this way, only people who understand computer software and hardware and digital human rights will become the audience for Linux phones. After all, this is an issue concerning device autonomy. If we can move from the situation of converting Android devices to Linux into truly Linux first phones in both software and hardware, then we can ensure the freedom in our hands.

Even if we cannot resist the flood of the mainstream world, in the end we still have to make a little change and resistance.

Related


Thank you for reading. Public comments are not available on this website. I write to explore ideas honestly, not to chase social engagement or traffic. I would be glad to hear your thoughts after reading the article with care. If you found any errors, technical issues, or would like to share feedback, feel free to contact me via the email listed on the About page.