Android, the GPL, and Java: The Q’s with No A’s

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

So the gPhone is finally here. Only it’s not called the gPhone. And there is no actual phone, just something called Android.

Still, I’m intrigued as an analyst and potentially excited as a consumer. More on the why later, but as a hint it’s got very little to do with technology. Before I get there we have questions. We being the folks debating the news in #redmonk this afternoon.

The one I really can’t figure out is this: how did Google (and friends) manage to build a “complete mobile phone software stack” built on the GPL licensed “open Linux Kernel” that’s itself licensed under the “commercial-friendly” Apache v2 license that protects would-be adopters from the “from the ‘viral infection’ problem.” Before you ask, yes that’s a direct quote, and yes I think using it is an exceptionally poor decision. I expected more from you, Google.

Also, Java. Is Android built on Java, as this Times article and Jonathan’s blog claims? If so, why is that technology conspicuously absent from the Open Handset Alliance site? And if we assume the Times and Schwartz – fairly reputable sources both – have it correct, again, the licensing question. Last I checked Java was firmly committed to the GPL camp, and not on great terms with Apache licenses.

So inquiring minds want to know: how does all of this work?

Google’s got enough lawyers to populate a small country, so I’m quite sure there’s a logical and legal explanation, but a number of us are curious as to what – precisely – that is.

Any answers appreciated.


  1. Danger (where many of the Androiders came from) built their own VM from the ground up, without access to Sun’s sources. I’m guessing they did the same thing again at Google.

    A bunch of the Danger guys fell on the BSD side of the BSD vs GPL argument – and I guess that’s why Android went for the Apache2 license.


  2. Given that Esmertec and Aplix are on board, that probably means that mobile Java is involved in one way or another. More interesting, I think, is to go through the list of the JCP EC members for ME, and to look at the subset of brands that aren’t taking part in this effort.

    I’d expect a couple more ‘liberated phones’ to show up at some point in time, now that Apple and the Google gang are going for it in one (limited) fashion or another, and the bandwagon has started.

    But who will end up with whom?

  3. Yeah, I’m pretty sure the Apache license is refering to the SDK. Which would include the run times. This would be similar to the Eclipse EPL license for its SDK.

    I think it’s obvious that they can’t dual license any of the GPL code. But it’ll be the handset vendors that will have to deal with that, not the application developers.

  4. From the emertec web site:

    “Beyond Open Source of Android, Esmertec’s leading edge Jbed™ Java™ Virtual Machine (JVM) platform can easily be made commercially available per customer request for the Alliance ‘s mobile platform. This offers immediate and seamless compatibility to the standard Java ME world leveraging thousands of existing Java ME applications.”


    This at least tells me that J2ME is optional – thank God – and hopefully Java will also be optional. Though if Google developed a reasonable embedded library for Java (not J2ME-based), I might change my mind. Embedded Java could use as much disruption at the mobile hardware market has hopefully just gotten.

  5. Isnt the Google Java link limted to Java being the programming language for developing applications on Android. So if I want to write an application on Android , I potentially have the option to write it in JAva.

    Dont know how gets paid what as I understand that J2ME is not free.

  6. Methinks Google’s trying to pull a fast one with licensing, and they’re going to get their hand slapped. You can’t harvest from the GPL and repackage for Apache, no matter how clever you are.

    From what I understand, JavaME is completely free in the same way the Linux kernel (and JavaSE) is, and if Android’s presenting a device leveraging those technologies, they’ll need to distribute their bundle under the same license or run afoul of not just the copyright holders, but the community.

    I’ve often thought Google was a little evil, perhaps those stripes are now showing through. I, too, wouldve expected better, though.

  7. The following exchange from the announcement phone call is also very amusing:

    9:45AM PT – Q: “Does this protect consumers in any way of installing software on their phones? Or can carriers create a completely locked down phone?” Rubin: “Please refer to the Apache software license… when you free something, it’s up to the industry to do something with it.” “So if the industry wants to create totally locked down devices, they CAN do it?” Rubin: “Yes.” Eric: “While it’s feasible, it’s also highly unlikely you’ll see that scenario.”

    That does not inspire much confidence that this is really some sort of open phone for the users, rather than a potentially interesting, PR-savvy way of saving money for a bunch of manufacturers.

    So, I’d guess Apple will easily beat Google in this round, since Apple has *a* semi-proprietary device on the market, and an official dev kit coming soon, while Google so far has incoherent plans, and maybe some dev kit ready by next week, and maybe a range of different semi-proprietary (and presumably incompatible) devices coming late next year.

    I guess it all looked better as a PowerPoint presentation. 😉

  8. whilst Android will reportedly be licenced under Apache 2.0, this licence is indeed compatible with GPL v 3.0 according to the FSF.

    begs to think whether Sun is considering a move to GPL 3.0 to harmonise the whole thing.

    the remaining piece of software would be the Linux kernel which is also under GPL 2, and would now have every incentive to move forward to GPL 3, should Sun decide to go GPL 3.

    A good analysis of the situation by Berllind of ZDNet


  9. Here is the answer to the question


    Summary :

    You write Java in eclipse –> convert to .class OR .jar —> Android converts to .dx

    Hence no JVM required on android.

  10. […] raised more than one eyebrowse, and sure did make me raise mine: how did Google manage to get Sun to license off a platform that […]

  11. […] sourcing has been widely portrayed as a direct response to the competitive threat of Google’s Android project. By and large, I think that’s accurate: it’s clear that this response is […]

  12. […] Android debuted in 2007, I couldn’t figure out how Google had managed to apply an Apache license to the project. Java, like Linux, was governed by […]

  13. […] Android debuted in 2007, I couldn’t figure out how Google had managed to apply an Apache license to the project. Java, like Linux, was governed by […]

Leave a Reply

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