A blog post on the Free Software Foundation Europe site is making the rounds around the web. The blog post, written by Torsten Grote, claims that ‘the Android SDK is now proprietary‘, because upon download, you have to agree to terms and conditions which are clearly not compatible with free and/or open source software. What Grote fails to mention – one, these terms have mostly always been here, and two, they only apply to the SDK binaries. The source is still freely available.
The terms and conditions covering the Android SDK contains several restrictions and limitations that are incompatible with free/open source software. There’s an anti-fragmentation clause in there which prohibits forking, and a number of other troublesome clauses. However, many of these have been in the SDK’s terms and conditions for years now, so this can hardly be called news. The Android SDK is proprietary – it always has been.
However, there’s a crucial aspect that will most likely get overlooked as this blog posts makes its way around the web. These terms and conditions only apply to the SDK binaries. The source code, licensed under the Apache 2 license, is still freely available, so you are free to build the SDK on your own and bypass the terms and conditions of the SDK altogether. In fact, Replicant does just that, and you can download the latest version of the SDK (API level 15) they compiled from the source starting today.
The situation around Android, its open source nature, and the licenses and restrictions Google has attached to the Android brand have long been a source of misunderstandings, which is to be expected with complicated matters like this. In its simplest form, the Android code is open source under the Apache 2 and GPLv2 licenses, while Google’s own suite of applications is not.
However, there’s also the compatibility requirements you have to adhere to in order to carry the Android brand. While this is entirely unrelated to the Android source code, people often conflate the two. To further complicate things, there’s also pieces of code in Android which are not open source, mostly drivers for which Google does not own the rights.
All this is not uncommon in the open source world. Haiku, for instance, employs essentially the same scheme.
Haiku, Inc. owns the ‘Haiku’^a"c name, HAIKU logo^A(R), HAIKU Background Leaf^a"c, and HAIKU Leaf^a"c (registered) trademarks. As an open source project, the name and brand that is associated with the Project is vital to the Project’s reputation and the sense of familiarity that end-users expect from the Software. Anyone is able to freely use the code that comprises Haiku, however the trademarks of Haiku cannot freely be used in the same liberal manner.
A more famous example is Red Hat, which employs this scheme for its Linux distribution.
It is important to understand that, although Red Hat allows third parties to replicate its open source software under the GNU GPL, absent a written agreement or other express permission it does not allow third parties to use its trademarks. For example, absent a trademark license from Red Hat, a party would have the right to copy, modify and sell Red Hat’s open source software, but they would have to call it by another name.
The additional restrictions imposed upon the SDK binaries – as non-Free/open as they might be – do not make Android any more or less proprietary. The code is out there for anyone to download and use. While it would be great if Android were developed using an open model, there’s no requirement to do so. The Android 3.x situation was a massive cop-out, as I’ve said before.
I guess this story will continue to pop up every now and then in various forms, perpetuated by traffic-hungry blogspammers, people cheering for one particular team only, and those with little to no understanding of how open source works. It joins the stories about security on the Mac, iPhone whatever-gates, Linux on the desktop, and so on – a long list of recurring themes that no matter how many times we go over it, it just refuses to die down.
The source code to Android is available. Not the SDK.
The plugin, tools, and probably the emulator itself is still only usable by agreeing to the terms and conditions.
https://android.googlesource.com/platform/sdk/+/master
Good catch. Does this make the Android SDK any less proprietary (who cares?)
If the distinction disappears when you check out the source (which you can presumably modify however you’d like) then is it safe to call what you check out “Android”?
I think the blog post is correct in saying the Android SDK is non free (in his crazy fanatical definition of free)
Yes it is. The source code is same line for line when you check it out. It doesn’t magically turn it into something new. Google reserves the right to protect their brand and trademark. Just like Mozilla reserves the right to protect the firefox brand and trademark. Mozilla’s license around the Firefox brand is why Debian calls their version of the browser Iceweasel.
Fair enough.
From the Replicant page:
If you had bothered to follow the link to the Replicant page, you’d see that they offer the same SDK without Google’s restrictions, built from the same source. Emulator included.
But, no. It’s more satisfying to remain wrong and believe you were right the entire time.
The Replicant SDK is not the Android SDK. It is an offshoot SDK for an offshoot distribution to Android. The owner of the project agrees with me.
The Android SDK, which is exactly what is being criticized, contains a license agreement you need to agree upon to be able to use.
Not that I care, it’s stupid to complain about agreeing to a license agreement. This is much ado about nothing.
But has anybody compared it to what Google has in its SDK? Because if all they wanted was to protect its copyrights like Mozilla why wouldn’t they just use something like the MPL, why go to all this extra mess and BS?
So before I’d say “oh the source is there and its the same” I’d want somebody to do a comparison, after all it wouldn’t be the first time a company has given some but not all of the code.
Protection of trademarks is important even for companies that aren’t trying to profit from OSS.
Mozilla reserves the rights associated with the Firefox brand, so Debian brands their browser Iceweasel so they can extend trademark rights to their users.
Even FreeBSD once had to shutdown a distributor who was pressing and selling his own FreeBSD disks. They rightly felt that since they didn’t have any control in the process, and thus couldn’t guarantee that they weren’t defective or worse, the distributor shouldn’t be use their branding. FreeBSD has a solid reputation, but the FreeBSD Foundation is a small organization, and damaging that reputation could harm them for years.
I don’t understand. What’s the point of placing a “no-forking” clause in a binary, and not the source (which is Apache). How can you fork a binary? I thought you could only fork source.
PS: If you know how it’s possible to fork a binary, please post.
Edited 2013-01-04 19:57 UTC
Malware writers do that all the time…
There were plenty of NES “pirate” cartridges.
Like SNES Mortal Kombat “forked” to NES.
Edited 2013-01-04 23:01 UTC
I tried do an automatic upgrade of Ubuntu once. I tell you what, those binaries were forked. It forked up the whole system.
What I want to know is, why does Google put features like miracast and photosphere on the Nexus 4, and then deny it to their other devices? And if these features are not in the Android sources, then at least part of it is definitely proprietary.
Do I care about this? Well yes, actually I do. Once I found out that 4.2 was supposed to have Miracast, I was ready to plunk down for a Nexus 7, but was disappointed to find out that it’s currently only available for Nexus 4. Seems that Google is fragmenting their own devices, for whatever reason.
The miracast support is all in the platform, however it requires significant support in the hardware and drivers to work — they need to be able to run both video encoding and decoding at the same time, streaming and composited video from a second buffer rendered along-side the display to the encoder.
The photosphere feature is I believe part of Google’s proprietary apps (same as Gmail, Google+, etc), not a part of the platform.
The miracast support is all part of the platform, however it requires specific support from the hardware and drivers: it needs to be able to execute both hardware video decoding and encoding at the same time, and be able to stream a second composited display before through the video encoder. Currently only the Nexus 4 hardware has this support. (For other devices I don’t know how much of the limitation is core to the hardware or just lacking in the drivers.)
For stuff like photosphere, I believe this is just part of Google’s proprietary application code, like many other things: the Gmail, Google+ and other apps, contacts and calendar sync engines, Google account manager, etc.
First: IANAL
There has been a paragraph significantly changed recently:
(source: http://developer.android.com/sdk/terms.html )
What scares me about this license change is that Google is attempting to prevent, apparently in perpetuity, those agreeing to the license terms from doing *anything* involving fragmentation of Android (web links? Mentioning on OSAlert comments? building a new incompatible SDK from the Apache-licensed sources or forks?), or from promoting a software development kit “derived from the SDK” – that presumably includes older or legitimate forks (even, technically, ones that Google may legitimately license in the future!).
I didn’t even realise that it was *legal* (or at least, enforceable) to prevent someone from doing something completely unrelated to the licensed material at issue in a one-sided license agreement. Like preventing people from doing things that “may cause or result in the fragmentation of android”. That would be like the license requirement requiring users not to hop on one leg for the rest of their lives as a result of agreeing.
I think two issues are worrying about this clause:
1. There is no clause anywhere in the agreement that exactly defines what “fragmentation” actually means.
2. They give it an even wider scope by quoting the classic “including but not limited to” phrase, which you can interpret anywhere from “exactly what I’ve mentioned is included” to “the entire universe is included”.
As a branding/trademark issue, it would better of Google to say:
“If you modify the Android SDK and then redistribute it, you may no longer use the word “Android” anywhere in the title of the redistributed SDK or use the stock Android images (green robot etc) to promote it. You may also not make any claims that it is fully compatible with the unmodified Android SDK.”
In other words, something similar to the way Mozilla handles its branding (they are sensitive about the name and the logo if you start hacking the source and redistributing it).
Excellent article. I am 100 % Apple man and it can be difficult to see through the fog of bad news coverage everywhere. This article covers the real fact. Thank you.