BeginnersHardwarePC TipsSoftware

Is Android Really A Free Software?

Image Credit: Pixabay

Google’s smartphone software is often described as “open” or “free” — but when examined by the Free Software Foundation it looks like something else.
Google Honeycomb

A Motorola Xoom tablet, running Android 3.0 “Beehive” — whose source code will not be open source. Photograph: Kimihiro Hoshino/AFP/Getty Images

How much does Android respect the freedom of its users? For a computer user who values ​​freedom, this is the most important question to ask about any software system.

In the free software movement, we develop software that respects the freedom of users, so we can and you can get away with software that doesn’t. By contrast, the idea of ​​”open source” focuses on how the source is developed; it’s a different movement of thought that values ​​the quality of the source code more than freedom. So, we’re not discussing here whether Android is “open,” but whether it allows users to be free.

Android is primarily a mobile operating system, and it consists of Linux (the Torvalds kernel), some libraries, the Java platform, and some applications. Except for Linux, Google developed most of the software for Android versions 1 and 2; it released version 2.0 under the Apache License, a permissive free software license free of the common terms of the left-hand licenses.

The version of Linux included with Android is not entirely free software, since it contains non-free “binary blobs” (just like Torvald’s version of Linux), some of which are used in some Android devices. Android platforms also use non-free firmware and libraries. Regardless, the source code for Android versions 1 and 2, as released by Google, is free software — but this code is not sufficient to run the device. Some of the applications that come with Android are also free.

Android is very different from the GNU/Linux operating system because it contains very little GNU. Almost the only common element between Android and GNU/Linux is the Linux kernel. Those who mistakenly believe that “Linux” stands for the entire GNU/Linux system get lost in these facts and may make contradictory statements like “Android contains Linux, but it is not Linux”. If we avoid this confusion from the beginning, the situation is simple: Android contains Linux, but it does not contain GNU, and therefore the software of Android and GNU/Linux differs in most ways.

(Within Android, the Linux kernel remains a separate program whose source code is under GPL version 2. Combining Linux with Apache 2.0-licensed code is a copyright infringement because GPL 2 and Apache 2.0 are incompatible. Rumors that Google has somehow converted the Linux license to Apache are false; Google does not have the power to change the Linux source license and has not attempted to do so. However, if the Linux authors had adopted GPL version 3, they could have combined it with Apache-licensed code and released the result under GPL 3, but Linux was not released that way.)

Google has complied with the terms of the GPL license that Linux uses, but the rest of Android software is under the Apache License, which does not require source release. Google has said that it will not release the source code for Android 3.0 (except for Linux), although it has released the executables to the public, and it is also withholding the source code for Android 3.1. So Android 3, apart from Linux, is simply non-free software.

Google said that it withheld the source code for version 3.0 because it was buggy, and that people should wait for the next release. This may be good advice for people who just want to run Android, but the users should be the ones to decide. In any case, developers and advanced users who want to make some changes to their versions are fine with this code.

The failure to publish two versions of the code raises concerns that Google may be planning to permanently turn Android into a closed proprietary product and that releasing some previous versions as free software was a temporary ploy to get the community to help improve proprietary software. Let’s hope that doesn’t happen.

In any case, most of the code for some versions of Android has been published as free software. But does that mean that the products that use these versions respect user freedom? The answer is no, for several reasons.
First, most versions contain non-free Google applications, for example, to connect to services like YouTube and Google Maps. These applications are not officially part of Android, but that doesn’t make the product acceptable to us. There are also non-free libraries, whether they are considered part of Android or not. What matters is that different functions need them.

Image Credit: Pixabay

Even executables that are officially part of Android may not be compatible with the source code that Google publishes. Phone manufacturers change the source code, and often don’t publish the changes. The GNU GPL requires them to distribute the source code for their versions of Linux if they are to comply with it. The rest of the source code is under the lax Apache license, which doesn’t require them to publish the source of the version they’re actually using. There’s a free version of Android called Replicant, which supports a few phone models, has replaced many of these libraries, and can be used without the non-free apps. But there are other problems.

Some phone models are designed to prevent users from installing and using modified software. In this case, the executables are considered non-free even if they were made from freely available sources. However, some of these Android devices can be hacked to allow users to install different software.

The important firmware or hardware identifiers are generally proprietary as well. They run the phone’s network radio, Wi-Fi, Bluetooth, GPS, 3D graphics, camera, speaker, and even the microphone in some cases. On some models, a few identifiers are free, and some identifiers are expendable — but you can’t operate the phone without a microphone or network radio.

The phone’s network identifier comes pre-installed. If all it did was stay in place and turn on the network, it could be considered like a circuit. When we insist that the software in any computing device should be free, we can overlook the pre-installed bloatware that is never updated, because – in this case – it makes no difference to the user whether it is a program rather than a circuit.

Unfortunately, in this case, it may be malicious. Malicious features are unacceptable no matter how they are implemented.

In most Android phones, the firmware has such control that it can turn the product into a listening device. On some phones,s it controls the microphone. On others, it takes complete control of the main computer, through shared memory, and can thus override or replace any free software you have installed. On some models, it is possible to exercise remote control via the firmware, and thus control the phone’s computer through the wireless telephone network.

The idea of ​​free software is to give us control over our computers, and that is not yet possible. Any computer system can have bugs, but turning smartphones into eavesdropping devices makes them particularly buggy. (In his book Murder in Samarkand, Craig Murray describes his involvement in an intelligence operation in which a victim’s cell phone was remotely turned into a listening device, and this phone did not run Android.)

However, the network identifier on an Android device is not equivalent to a circuit, because the device allows new versions of it to be installed, and this is what happens. Since it is proprietary software, the user or anyone else – except the manufacturer – cannot develop new versions.

With these points in mind, we can tolerate non-free network identifiers provided that they do not install new versions of them, that they cannot control the main computer, and that they communicate with the network only at the command of a free operating system. In other words, these identifiers must behave like electronic circuits, and these circuits must not be malicious. This does not impede building an Android phone with these features, but we don’t know which ones.

Recent press coverage of Android has focused on patent wars. Over the past 20 years of campaigning to repeal software patents, we’ve warned of such wars. These patents could eliminate services from Android, or even kill it. (See endsoftpatents.org for more information on why software patents should be repealed.)

However, patent-based attacks and Google’s responses are not directly relevant to this article. The press should also be concerned with how Android products are distributed and how they fall short of an ethical system.

Android is a big step toward ethical, free, user-controlled mobile phone production, but it still has a long way to go. Developers are working on a replicant, but getting support for a new phone model is a big task, especially with the hardware identifiers and locked firmware. While Android phones today are far less bad than Apple or Windows smartphones, they can’t be said to respect your freedom.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button