Wednesday, June 13, 2012

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."

No comments:

Post a Comment