Although Android itself is released as open source the SDK isn’t. Under the SDK’s license Google owns all the legal and intellectual property rights and it licenses developers to use the SDK solely to develop applications that run on the Android platform.
In September Acer and Alibaba’s cloud computing unit planned to launch a new smartphone which used the Android based Aliyun OS. However, according to Alibaba, Acer were told in no uncertain terms by Google that if it went ahead with the launch then Google would terminate all Android product cooperation and related technical authorization.
Section 3.4 of the updated SDK terms says, “You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.”
The key phrase here is “the fragmentation of Android” which of course isn’t a legal term and could be deemed to mean almost anything that Google doesn’t like. The clause also seems a bit superfluous as Section 3.3 says that developers are not allowed to “modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK.” It also says that developers may not “combine any part of the SDK with other software.”
There are two possible ways to look at this new clause. One is to hail Google as the great guardian of Android who is using its benevolent might to bring peace, order and unity to the Android cosmos. The other way is to remind Google that it got large chunks of Android for free from the open source community (including Linux), that it uses Java and Java APIs which it didn’t invent and that the reason Apple started taking everyone to court was because it didn’t like others (allegedly) building on its work. Something Google is now crying about with Android.
Let’s look at option one. Obviously a fragmented Android eco-sphere is bad for consumers. Having almost Android like phones where some apps work, some apps don’t work and some apps work if they have been tweaked, is bad news for consumers and developers. So any efforts by Google to keep Android together is laudable. Although Amazon’s Kindle Fire range of tablets doesn’t run stock Android (especially with regards to its user interface), to develop for the Kindle Fire you basically use Google’s SDK and create an Android app. The app will work on any compatible Android device. This is how Amazon stays within the usage term stating that the SDK can only be used to “develop applications to run on the Android platform.”
But since Android is open source, Google can’t stop anyone from developing modified or derived versions of it. Android is itself a derived version of Linux. And nobody in the Linux community moaned that Google was fragmenting Linux. So anyone and everyone is within their rights to take the Android code and make their own version That is what Cyanogenmod do. But of course Cyanogenmod is 100% compatible with Android.
What if someone took the Android source code and made a version that was only 95% compatible where some of the system calls where changed to behave differently or new calls were added that only derived version supported. Again they can do that. But to develop apps for that new derived version, developers need an SDK. And this is why Google has modified its terms.
Looking at option two, this means that Google is trying to force a closed source mentality on a open source project and what it has done certainly isn’t within the general spirit of open source software. But it is fully entitled to do it as the SDK isn’t open source. Google got large chunks of Android for free, but it did make the SDK itself. So now if someone wants to make an Android based OS that isn’t 100% compatible they will need to build their own SDK.
What do you think? Is Google being selfish? Is it protecting Android? Is it being evil?