How Open-Source Is Android Really?

Not much, it turns out.

Coopossum
5 min readNov 26, 2022
Android phone lying on a table
Photo by Jonathan Kemper on Unsplash

tl;dr: In the time since they released the first version of Android, Google has moved many important features to its proprietary Google Play Services. Therefore, Google’s version of Android, which is installed on most Android phones, cannot be called open-source. Alternative services like microG try to remedy this.

When people compare the two dominant mobile operating systems iOS and Android, they often point to the open-source nature of the latter and the freedom it provides to its users as an advantage over the former.

It’s true that Android devices are much more customizable than iPhones, but this has mainly to do with the different design philosophies Apple and Google employed when they developed their operating systems. As with macOS for its desktop computers, Apple sacrificed customization options to make iOS as straightforward and user-friendly as possible. Perhaps this decision was crucial to the massive success of the iPhone.

Google choose a completely different path. Instead of forcing phone manufacturers to use one centrally maintained version of the Android, they allowed them to create their own versions of the operating system, and to add and remove features as they saw fit. This not only led to the proliferation of bloatware on many Android phones, but also to the ironic situation that Huawei, after being prohibited to continue working with Google, were able to develop their own mobile operating system based on the Android Open Source Project (AOSP).

The AOSP source code is stilly freely accessable, but it constitutes only a small part of today’s mobile operating systems. To understand why, we will have to look at how Android actually got started in 2007.

The birth of the Android Open Source Project

When the iPhone was released, Google had a problem: With there being no major competition yet, what would happen if Apple monopolised the smartphone space and then decided drop Google as its preferred search engine? What would that mean for its business model of selling data to advertisers?

Google had to act quickly if it was to enter the smartphone race early, so out of desperation, it tasked the developers of the recently acquired Android, Inc. with developing an open-source mobile operating system based on the Linux kernel and at the same time recruited several big players, including HTC, Motorola, Sony and Samsung, for their Open Handset Alliance, for which the Android OS would be the flagship software.

The plan worked, and with Android soon running on most hardware manufacturer’s mobile devices, it overtook Apple’s iOS in market share.

But now Google had new problem: Android was open-source, so anyone could theoretically fork the project, create their own version of the OS, and had the chance to become even more successful than Google. This why after gaining some traction in the mobile market, Google changed its strategy and went on to re-introduce closed-source software back into the Android ecosystem: Suddenly, improved versions of standard AOSP apps got a Google branding and were no longer open-source. This included the calendar, camera and even the keyboard.

With plenty of alternatives to the now proprietary Google apps available, this did not yet herald the end of the open Android ecosystem. However, Google went one step further to ensure that most developers would have to rely on its services in one way or another.

Introducing Google Play Services

The initial idea was a noble one: Due to the many different Android iterations used by phone manufacturers, Google could not easily push OS updates to all devices. Instead, manufacturers first had to adapt them to their own Android versions, which could take a long time.

To solve this problem, Google introduced Play Services, named after its Play Store for apps, through which it would push updates. Over time, more and more functionalities became part of this package, offering developers ways to access APIs that would work across all devices, while at the same time benefiting Google’s business model: Want to offer in-app purchases in your app? You will have to use Google’s API for that, with the company also taking its cut. Want to check the user’s location? Google will do that for you, also using that data for its own purposes.

The most important feature that moved to Play Services was the ability to easily send and receive messages and push notifications. Being able to send notifications to users is essential to the functioning of many apps, so this was the last nail in the coffin of Android’s future openness. Apps using an alternative approach are rare, but for an example of an email provider implementing its own solution for its mobile app, take a look at Tutanota.

Empty inbox of a smartphone’s email app
Photo by Solen Feyissa on Unsplash

Alternatives to Google Play Services

There have been attempts, both commercial and non-commercial, to forego the reliance on Google’s services.

When Amazon developed its Fire OS based on the AOSP, it also created its own app store, maps API and push notification service, becoming largely independent from Google. However, users wanting to use Google apps on their Amazon devices often have to jump through technical hoops to get them functioning correctly.

On the open-source side of things, microG offers APIs that camouflage as Google Play Services via signature spoofing. It is already used by some alternative Android OSes like /e/OS and CalyxOS, but requires access to system-level processes, making it too insecure for some. Among those are the developers of GrapheneOS, who instead opted a sandboxed version of Google Play Services, reducing its privileges to that of any regular app.

All of these alternatives have their drawbacks: Neither Amazon’s Fire OS nor microG offer full compatibility with all Android apps, whereas the sandbox approach of GrapheneOS requires some technical knowledge to keep running smoothly. Still, new projects aiming to make smartphone more open are popping up all the time, so we will likely see many new approaches to this problem in the coming years.

Conclusion

Android, as it runs on most smartphones today, cannot be called open-source operating system anymore, since many apps now rely on Google’s proprietary software to function properly. What is open-source, however, is the Android Open Source Project, and this means that there are devices running an open-source version of Android. Sadly, these only make up a tiny percentage of all Android phones.

If you’re still holding out for a truly free and open-source mobile operating system, you might be interested in smartphones running Linux, e.g. the PinePhone. Projects like these that bring popular distros like Ubuntu to the small screen are still relatively early in development and far from beginner-friendly to install, but one should never underestimate the Linux community’s ability to advance the use of free software, even on mobile devices.

--

--