LWN.net Logo

Android and Honeycomb

By Jake Edge
March 30, 2011

There's been a lot of press—and hand-wringing—about Google's decision to withhold the source code for the latest Android 3.0 release. There have been claims that Google is (or will be) violating various licenses by doing so. While that claim is overblown, there are still reasons to be unhappy about the choice being made here, while recognizing that it is Google's choice to make.

Business Week broke the story that, unlike previous releases, Android 3.0 ("Honeycomb")—targeted at tablet devices—would not be released for several months, possibly not until the next version ("Ice Cream") is completed. The article quoted Andy Rubin, Google's VP for engineering and head of the Android group, as saying that Honeycomb may not be suitable for phones:

We didn't want to think about what it would take for the same software to run on phones. It would have required a lot of additional resources and extended our schedule beyond what we thought was reasonable. So we took a shortcut.

The concern seems to be that vendors might take Honeycomb, put it on phones (or other small-screen devices), and create "a really bad user experience". There has certainly been a number of vendors who took previous non-tablet-oriented releases and put them on tablets with varying degrees of success. Google appears to be worried that the Android brand is being tainted by low quality implementations. That may be true, but there are other ways that problem could be prevented.

One obvious choice is the Android trademark, which Google could use to require devices to meet some minimum standards. Google already exercises some control via its Google-branded Android applications (like Market, Maps, and Gmail) that have to be licensed from the company. In order to do that, a device must fulfill the Android Compatibility Definition. But plenty of low-end phone and tablet makers were willing to forgo those applications, take the source code, and run with it—sometimes with less-than-stellar results.

So, Google has found a different way to enforce its will on device makers that do not directly license code from the company: stop providing the source. Since one of the goals of the project was to "keep the GPL out of user space", that means that the Android user space is licensed under non-copyleft terms. But even if it were all covered by the GPL, Google, as the copyright holder, would not be obligated to release the code. Copyright holders are not beholden to the license they provide to others for using their code.

As it is, most of the code is under the Apache Software License or similar terms, which means there is no requirement for anyone to provide source. The big exception, of course, is the Linux kernel, and one would expect that Google is GPL-savvy enough to not withhold that code. For the kernel, though, the interesting parts are not necessarily in Google's kernel tree, as it is the device makers that add support and drivers for their platforms. As we've seen, GPL compliance in Android tablets is rather spotty, at best, so that's where any license problems are likely to be found.

Part of the uproar about Google's decision is based on the somewhat faulty belief that Android was ever a real open source project. There were high hopes early on that it might become one, and, up until now, Google kept throwing its code over the wall to—more or less—continue the open source spirit of the project. But, unlike real open source projects, there were only limited attempts to build a developer community around Android itself, instead, for the most part, there were just the periodic code drops. Much of the effort was aimed at cultivating application developers, which has worked out quite well. It's hard to say for sure, but one might guess that the openness of the Android code played a role in how quickly the platform was embraced by application developers.

One could argue that Google needed to keep Android development in-house, so that it could keep up with the incredibly fast-paced smartphone market—and that may be true. One could certainly point to MeeGo as a counterexample of sorts, and one that has yet to really produce any tangible results in the form of products for sale. MeeGo clearly has a development community slowly growing around it, even though it is dominated by two (now one, really) companies. While MeeGo is much more upstream-oriented than Android, its governance has been largely top-down. So far, Google's model has been much more successful, but MeeGo is really only a year old at this point.

Google has made a lot of noise about how "open" Android is, including things like Rubin's famous tweet in response to Steve Jobs: "The definition of open: 'mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make'" For Honeycomb, at least for the next few months, that will no longer be true, which is enough to sour some folks on the Android platform as a whole.

Google has evidently weighed the benefits that it gets from opening the Android code—bug fixes, enhancements, good public relations—and found that it was not enough to overcome its concerns. It is unfortunate that we won't be able to see what the CyanogenMod folks (and others in the "mod" community) might have done with Honeycomb, at least for a while yet. There are likely some low-cost tablet makers that could have done interesting things with it as well. While Google claims to be concerned about "user experience", it's pretty hard to read this move as anything other than a tightening of control over the platform. Hopefully, this is just a blip, and things will return to "normal" with "Ice Cream", but the damage may have already been done by then.

Over the last few weeks, we have defended the behavior of several companies (Red Hat and Google) when they have been faced with accusations of license violations. In all of these cases, though, one does not have to like what the company is doing to recognize that it isn't a violation of any licenses. Once again, we would much rather see Google keep the Android project open—or make it even more open—but recognize that it is well within its rights not to do so. With any luck, other open source projects will show the way such that Google finds it in its interests to open up Android further. Time will tell ...


(Log in to post comments)

Android and Honeycomb

Posted Mar 31, 2011 2:25 UTC (Thu) by cjb (guest, #40354) [Link]

> One could argue that Google needed to keep Android development in-house, so that it could keep up with the incredibly fast-paced smartphone market—and that may be true. One could certainly point to MeeGo as a counterexample of sorts, and one that has yet to really produce any tangible results in the form of products for sale.

It's not a counterexample. MeeGo's equivalent to Honeycomb -- the tablet version of its UI -- is its "MeeGo Tablet UX", which it's been demonstrating at conferences repeatedly (although they've thrown it out and started from scratch a couple of times) for the last year, e.g.:

http://www.youtube.com/watch?v=QqeeQd-YNL0 (June 2010)
http://www.youtube.com/watch?v=c1JalTArdKI (Feb 2011)

and which.. doesn't have any source available, as you can see looking at http://meego.gitorious.org/, and has never had any source available. So, MeeGo is just as culpable as far as developing in private, and moreover MeeGo's closed-source periods appear to be *longer* than Android's.

Maybe I'm missing something? I'm seeing lots of "Android sucks, I'm switching to MeeGo" posts (on identi.ca, mainly) since the Honeycomb announcement; I don't know whether I'm mistaken about how MeeGo actually works or everyone else is.

Android and Honeycomb

Posted Mar 31, 2011 3:49 UTC (Thu) by josh (subscriber, #17465) [Link]

Part of the difference: Meego Tablet hardware hasn't shipped yet. Honeycomb tablets have.

Android and Honeycomb

Posted Mar 31, 2011 7:02 UTC (Thu) by tajyrink (subscriber, #2750) [Link]

The key thing is that the tablet UX is just a one (somewhat unfortunate) piece of the puzzle, while most of the MeeGo is developed currently in the open, the developers committing while they develop and both sources and binaries being published all the time. Also because MeeGo is actually based on the traditional userland we all know, they are working closely with upstreams. Compare this to Android's "we might release one big tarball one day of our in-house code" policy.

The thing about UX:s is that commercial needs like marketing need to have some of "wow" effect, and some companies think it's better to develop such behind the curtains. The UX:s from Intel however should eventually all be open, and they've not yet failed any promise. Even if they would fail, the whole MeeGo Core is open anyway for anyone to build and extend, and there can be any number of UX:s (like say GNOME Shell, Unity, KDE Plasma Desktop etc.). I'm eager to see KDE tablet/mobile UX:s packaged into MeeGo via for example the MeeGo Community OBS: https://build.pub.meego.com/

MeeGo has still some way to go in its openness, but they are getting there. See for example the recently opened http://build.meego.com/project/list_public view to the buildfarm. While they are doing already so well, I don't want to take the opportunity to blame them for stuff they haven't yet achieved in the openness - I really do understand there are also other objectives than opening everything up, like dealing with the potential hw manufacturers and sw developers.

I have for example done test builds of MeeGo for ARMv4 (yes, the ooold instruction set) based on current development MeeGo snapshot. The possibilities seem to me to be endless, unlike with Android where I'm discouraged that I'd need to take some random stable snapshot without any possibility to see or influence development.

Android and Honeycomb

Posted Mar 31, 2011 10:00 UTC (Thu) by lbt (subscriber, #29672) [Link]

> and which.. doesn't have any source available, as you can see looking at...

So your timing was just a touch off :
http://lists.meego.com/pipermail/meego-dev/2011-March/482...

From Imad Sousou : [MeeGo-dev] tablet user experience source is now open...

eg: http://wiki.meego.com/MeeGo_UX_Components

However - it was an "over the wall" delivery... this time.

I think the development model is the differentiation between MeeGo and Android - lets hope it continues to mature and differentiate.

Android and Honeycomb

Posted Mar 31, 2011 13:21 UTC (Thu) by cjb (guest, #40354) [Link]

> So your timing was just a touch off :

Pesky MeeGo, making my argument invalid by releasing all their source code! Great to see they made a release.

Android and Honeycomb

Posted Mar 31, 2011 17:29 UTC (Thu) by xxiao (subscriber, #9631) [Link]

Meego is a wrong boat to jump on.
but again, there is really no alternatives.
darn it

The I pastry

Posted Mar 31, 2011 7:06 UTC (Thu) by rvfh (subscriber, #31018) [Link]

The name is not "Ice Cream", it's "Ice Cream Sandwich".

Android and Honeycomb

Posted Mar 31, 2011 13:33 UTC (Thu) by emunson (subscriber, #44357) [Link]

It really is too bad seeing Google take a play from the Jobs playbook. If I wanted to be nanny-ed in giving up control of _my_ device all in the name of "user experience", I would have bought iOS in the first place.

Android and Honeycomb

Posted Mar 31, 2011 15:11 UTC (Thu) by Sufrostico (subscriber, #68053) [Link]

Completely agree with what you say.

we need a geek device (was: Android and Honeycomb)

Posted Apr 1, 2011 15:55 UTC (Fri) by geuder (subscriber, #62854) [Link]

Well you and me, and maybe 90% of the readers here. But we are not relevant for big players like Apple, Google, Nokia (before they jumped). I have given up all hope on them.

We can make our own software, but as long there is no decent hardware to run on, we are screwed. Any ideas welcome. I don't think jailbreaking is a permanent solution.

Android and Honeycomb

Posted Mar 31, 2011 16:02 UTC (Thu) by dmag (subscriber, #17775) [Link]

Since we can't get the code, can we call Honeycomb a "non-open-source fork of Android" (at least until they release the source)?

I wouldn't put Honeycomb in the same class as the Nexus S. It reminds me of the bad old days of Java/JME phones: people can write apps but not touch the OS.

keeping the GPL out of userspace? Nope...

Posted Mar 31, 2011 18:23 UTC (Thu) by armijn (subscriber, #3653) [Link]

"Android userspace does not contain GPL licensed code" is a myth. I really wish it were that simple, but it is not, unfortunately. The system that Google ships it to third parties is indeed just the Linux kernel, plus a userspace that does not contain GPL code (so don't use this as a stick to beat Google with 'incompliance').

Then it goes to companies who make an SDK so real products can be made out of it and this is where A LOT goes wrong. You would be surprised to see how much GPLv2 licensed code then slips back in.

So, it is not as simple as everyone says it is.

keeping the GPL out of userspace? Nope...

Posted Mar 31, 2011 19:47 UTC (Thu) by karim (subscriber, #114) [Link]

That's interesting, because it raises a few rarely-mentioned issues.

However, I wonder how applicable this is in the specific case of Honeycomb tablets. One would understand that 3rd parties creating SDKs out of the AOSP have "value-added" software (i.e. mostly stuff they pulled off the web and put in their SDK -- which is where the GPLv2 software you mention likely comes from, Busybox et al. presumably.) In the case of Honeycomb, though, which apparently Google has only given source access to a handle of pre-vetted companies, such 3rd party SDKs would likely not exist (right?). And, therefore, the actual Honeycomb shipped by said manufacturers should be snow white, so to speak.

And in the other cases, those of GPLv2-"contaminated" SDKs, this is likely no different from what embedded Linux vendors have been doing for over a decade now (i.e. a mix of packages from all different directions which still require the company shipping the product to make sure it actually understands what it's really shipping.) IOW, copyright holders still need to be on the lookout for potentially infringing parties. Which is no different from the way it was before Android ...

Any complementary info you could provide here would be great.

keeping the GPL out of userspace? Nope...

Posted Mar 31, 2011 21:01 UTC (Thu) by paulj (subscriber, #341) [Link]

Is there really *no* GPL code in Android user-space? Surely there must be some low-level system stuff?

keeping the GPL out of userspace? Nope...

Posted Mar 31, 2011 23:45 UTC (Thu) by cjb (guest, #40354) [Link]

> Is there really *no* GPL code in Android user-space? Surely there must be some low-level system stuff?

If they're going to all the trouble of having their own libc and API-incompatible desktop environment, I don't think "surely" counts for much. That said, dbus and bluez are examples of code shipped with Android that are GPL.

keeping the GPL out of userspace? Nope...

Posted Mar 31, 2011 23:47 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link]

dbus is dual licensed, so it doesn't really count and bluez is used only via a IPC mechanism that is supposed to enable proprietary apps to use it without being impacted by the license.

keeping the GPL out of userspace? Nope...

Posted Apr 1, 2011 1:04 UTC (Fri) by paulj (subscriber, #341) [Link]

IPC is not of itself sufficient to let dependent code escape the GPL..

keeping the GPL out of userspace? Nope...

Posted Apr 1, 2011 1:21 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]

I am not a lawyer. I assume Google legal team have competent people who have done what it is necessary and this is what I heard.

keeping the GPL out of userspace? Nope...

Posted Apr 1, 2011 2:44 UTC (Fri) by paulj (subscriber, #341) [Link]

I'm not a lawyer either, but that's the advice I got from legal counsel at another large US tech corporate. ;)

keeping the GPL out of userspace? Nope...

Posted Apr 1, 2011 3:08 UTC (Fri) by elanthis (subscriber, #6227) [Link]

Neither of your lawyers are any more right than the other because the GPL language is vague, interpretations are shifty, and what specifically counts as a derivative work in the GPL's terms has not yet been vetted by a US court.

Which is yet another reason to avoid the GPL and the insanity it causes.</flame> :p

keeping the GPL out of userspace? Nope...

Posted Apr 4, 2011 1:47 UTC (Mon) by jhubbard (subscriber, #5513) [Link]

Your comment applies to any license or contract not just the GPL. If it's not been vetted by a court, it's open to interpretation. Most people try not to end up in court. While the specific clause about derivative work may not have been cleared up yet, there was a win against Westinghouse. Don't forget all of the victories in Germany as well.

keeping the GPL out of userspace? Nope...

Posted Apr 5, 2011 2:06 UTC (Tue) by cmccabe (subscriber, #60281) [Link]

I am also not a lawyer, but I think this comment is interesting:
http://lwn.net/Articles/435223/

P.S.
It might be better if the bluez people put in a specific exception for this kind of use, the way Linux has a clear statement that user-space code is not a derived work just because it uses the system interfaces.

It seems like these days you have to spell out everything, even if it's obvious, to keep from getting sued by unscrupulous people who want to waste your time in court.

keeping the GPL out of userspace? Nope...

Posted May 31, 2011 12:22 UTC (Tue) by Trelane (subscriber, #56877) [Link]

Jein. Relevant FAQ sections (http://www.gnu.org/licenses/gpl-faq.html bolding is original, italics are mine)

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?

It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Can I release a non-free program that's designed to load a GPL-covered plug-in?

It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.

See also the question I am writing free software that uses a non-free library.

What is the difference between an “aggregate” and other kinds of “modified versions”?

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

keeping the GPL out of userspace? Nope...

Posted May 31, 2011 12:04 UTC (Tue) by fusebox (guest, #75304) [Link]

"bluez is used only via a IPC mechanism"??????????

I thought when you build an app with BlueZ, you usually #include <bluetooth/bluetooth.h>.... and then -lbluetooth during the build process.

The BlueZ GPL is transmitted straight to your "proprietary" app with no delay!

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds