Home opinion-and-analysis Open Sauce Android: not-so-open open source

Google has just come through a searching examination of its claims to ownership of the Android mobile operating system, with one of the most aggressive tech companies in the US, Oracle, having gained nothing from a trial by jury.

Google was accused of both copyright infringement and patent violation; the former claim was upheld but the jury was unclear whether the unauthorised use could be covered by fair use or not. The patent violation charges did not stick.

What was noticeable during the trial, which ran for more than a month, was the fact that most tech journalism outlets appeared to be on Google's side.

(The US appears to permit an amazing amount of comment on an ongoing case, something that would surely be frowned upon by an Australian judge, but not a peep was heard from the astute Judge William Alsup who was in charge of the Oracle-Google case.)

Why is this so? It is because Google is still perceived as the company that, as it claims in its manifesto, does no evil? Or is it because Android is being touted as an open system?

How open is Android in reality? The system now runs on more than 300 million smartphones and tablets, made by all sorts of companies. It primarily targets the ARM platform, according to Christopher Neugebauer, a young Tasmanian developer, who presented a talk on Android to the island's LUG a couple of months ago.

Android has a Linux kernel at its core. "There's the kernel itself which talks to your hardware; there's a C library (in the case of Android, it's called 'Bionic' (most Linux distros use Glibc, from the GNU Project) which provides a useful interface to the kernel; and then there's the user space. The difference is that the userspace is an entirely custom one developed by the Android project, so it doesn't, for example, include X11 for drawing GUIs, but instead it uses its own custom layer," he says.

The Linux kernel, of course, is released under the GNU General Public Licence which says that any changes made to the code have to be released whenever the changed version is distributed. But when it comes to the other elements of Android, things do become a little murkier.

"There are only two licences at play in the source distribution of Android – the GNU GPLv2 (for the Linux kernel) and the Apache licence (for the Android userspace)," says Neugebauer. "There are also some other BSD-style licenses for libraries that are used in Android, but not developed by Google, but these don't matter as much, as simply providing a copyright message and warranty disclaimer is sufficient to distribute these.

"This situation is probably the single simplest licensing arrangement for a Linux distribution that I'm aware of. Consider a traditional Linux distribution – GPLv2 for the Kernel, LGPL for the C library, the Apache licence for a web server, GPL v3 for GNOME... the list goes on. The point is that most Linux distributions distribute software under many disparate licences, and these have existed with minimal fuss for a very long time.

"For Android, it's simple: everything except the kernel is there under the Apache licence."

"The biggest issue with licensing in the past has been the release of cheap Chinese tablets which haven't complied with their obligations for publishing kernel source under the GPL; (Kernel developer) Matthew Garrett did a lot of work back in 2010 on this subject."


The Bionic library is released under the 3-clause BSD licence while Dalvik, the virtual machine that Android uses, is again under the Apache licence.

Google does a parallel development process between the "mainline" Linux releases, and its own Linux kernel tree. "There are some features that have been developed for Android that have been ported back to the mainline Linux development process," says Neugebauer. "I believe a project has been recently started to try and merge most of Google's custom developments back to mainline."

This has been a point of contention between Google and the main Linux kernel development team due to differences in the way the teams wanted to make Android features part of the mainline kernel; it now appears that it will take four to five years for the two projects to come back to a common kernel.

Hence the only thing common to Android and any Linux distribution is the kernel.

The Android development takes place in a closed environment and source is released only when a release is complete. One cannot gain access to source while the development process is ongoing. There is no indication of when a release will be made. Google calls the tune and to hell with all models of open source development.

Neugebauer, however, points out that in the 1980s, the Free Software Foundation followed a similar model. "They released final releases with few intermediates, in exactly the same way that closed source products did at the time. The difference was that they provided the source code. Sure, it's a less common method of releasing code, but it's definitely not unusual," he says.

There are business reasons behind the mix of licences. The Apache licence allows Google to let others take the code and do what they want with it without the strictures which the GPL places on a piece of software. And the BSD licence is open slather – you can take code and lock it away after modifying it to your heart's content and nobody need be any the wiser.

In the case of Android 3, Google suddenly decided that it wasn't going to make any source available for the userspace bits. The kernel source was published. And that was that.

There is no guarantee that an Android device can continue to be upgraded as new versions of the OS emerge. Some devices are just cut off and if one wants to run a later version, one has to just fork out for a new device. For example, the Nexus One ran 2.1 and could be upgraded up to 2.3. And there the story ended.


Vendor customisations are not open source. No, each vendor can do what they like and they only have to release the source to their kernel. The rest of the system is not for prying eyes.

Again, unlike most standard Linux distributions, Android does not provide the user with root access. Hence if one wants to remove any system apps that come on the vast majority of Android devices, or wants to install other operating systems on the device or even upgrade the device on one's own, it is simply not possible. One is locked to the manufacturer's program of system modification.

Neugebauer says: "It's fair to say that it's not Android itself that prevents you from having root access, merely that consumer devices never actually have root access enabled by default. The lack of root is very much a warranty thing.

"There's also a distinction between having root on an operating system and having the ability to install a new operating system. The latter is done by unlocking the phone's bootloader."

Of course, given that there are talented hackers aplenty in the open source domain, there are ways of gaining administrative access on Android devices and then doing what one wishes. This understandably voids any manufacturer's guarantee.

There are exceptions to this rule – root access can be obtained on Google's own Nexus devices using the official Android SDK. And recently HTC announced that it would allow users to unlock the bootloader on all its Android devices.

Google Play is the market provided for Android devices that are registered to Google; here one cannot obtain the source for any application, not easily anyway, even if the maker has no objection to the user doing so. Google does not provide any indication as to the licence of an application.

Additionally, Google's software development kit is not open source. This means that one needs a proprietary application to produce an application for an Android device.

Hence with all the talk of being open, Android, looked at as a whole, is curiously complicated when it comes to implementation of what are considered normal policies for open source applications. Google makes its own rules.

HOW TOP MANAGERS MOTIVATE, ENERGISE EMPLOYEES

Download an in-depth guide to managing a healthy, motivated and energetic workforce without breaking the bank.

DOWNLOAD NOW!

Sam Varghese

website statistics

A professional journalist with decades of experience, Sam for nine years used DOS and then Windows, which led him to start experimenting with GNU/Linux in 1998. Since then he has written widely about the use of both free and open source software, and the people behind the code. His personal blog is titled Irregular Expression.

 

 

 

 

Connect

Join the iTWire Community and be part of the latest news, invites to exclusive events, whitepapers and educational materials and oppertunities.
Why do I want to receive this daily update?
  • The latest features from iTWire
  • Free whitepaper downloads
  • Industry opportunities