This year seems to been continuing where last year left off: Oracle/Sun, OpenOffice/LibreOffice, Ubuntu and Wayland/Xorg. Now, it's the turn of Nokia and Microsoft. When I heard the news that Nokia was switching from the Symbian OS to Windows 7 for their smartphones my first reaction was: "another Microsoft patents land grab" but this article is not about the proverbial beast of Redmond but about why Nokia chose it over Android and more importantly, given the increasing convergence of laptops, smartphones and tablets, answering the question: just how free is Android and what is the relationship with GNU/Linux?--and I suspect that I'll be needing my asbestos delicates.
Because Android is a suit magnet?
Google's portfolio is generally regarded as weak, poorly managed and potentially exposing OEMs to the risk of liability
Microsoft's track record in collecting patents (and the reasons for doing so) is notorious and well known. Recapitulation would be superfluous. No, what really grabbed my attention was why Nokia didn't opt for Android, given that it free and open source (albeit released under the Apache license) and that it has been wildly successful, surpassing even Apple for overall market share. I think the answer lies in the fact that Nokia, like Microsoft, has always had a beady eye on Intellectual Property Rights (IPR) and it thinks that Android has issues there. Nokia, like Microsoft, has a strong patent portfolio whereas Google's portfolio is generally regarded as weak, poorly managed and potentially exposing OEMs to risk of liability.
For reasons best known to themselves, Nokia seemed to be coy in admitting this, claiming instead that Android was not the right partner (even though CEO Stephen Elop described Android as exerting a "gravitational force" on industry innovation) and that linking up with Microsoft created a "challenger brand"(and it wasn't as if Google hadn't courted Nokia and tried to get them to adopt Android) as Eric Schmidt admitted at the Mobile world Congress in Barcelona on February 15th. Partnering Android would have created a "duopoly". Now, that made me laugh. (For an excellent survey of industry reaction to the deal, Mobile News Online is an excellent portal.) However, Elop eventually spilled the beans though, in terms that would not have been out of place in a press release from Steve Ballmer:
I’m not going to make any specific comments. But it is the case and was absolutely a topic of discussion, that Microsoft plus Nokia has a remarkably strong IP portfolio, and we will use that appropriately with the context of our ecosystem. Ensuring that the value we create with our patents, we can defend from those who may take advantage
Alright, Android was never designed with laptops in mind but it has been hugely popular on smartphones and with the advent of Honeycomb, the latest version of the OS, designed specifically for tablets (it will be making its debut on Samsung's 10.1 tablet in the near future) there is going to be a huge challenge to laptops and the software they run. It was this kind of awareness that led Mark Shuttleworth and the team at Canonical to ditch Xorg and Gnome Shell 3 for Wayland and Unity respectively (see Tony Mobily's article on this). Therefore, the freedom of Android licensing may become increasingly important as the convergence of tablets and laptops increases and I think it's worth exploring some of the issues given the fact that some patent experts regard Android as a "suit magnet".
Android, the GPL and GNU/Linux
The most important fact about Android is that the kernel was derived from Linux (not GNU/Linux. Android does not support the full set of GNU libraries and no native X windows system) but since forking the kernel Google has been tardy in contributing back code. In fact, their device driver code was deleted from the staging section of the Linux source code tree in January 2010 (the Android code is based on the 2.6 kernel). That code was contributed back under the GPL which differed from the license under which Android was originally released.
There is a tendency to treat the pronouncements of the FSF as being made ex cathedra but they should not necessarily be treated as if they carried the imprimatur of papal infallibility
The next significant fact about Android is that licensing. It was released under the Apache license which the FSF recognises but it is not compatible with the GPL. That is not unusual. Many household FOSS names, Firefox and Thunderbird to mention but two, another were not released under the GPL. There is a tendency to treat the pronouncements of the FSF as being made ex cathedra but they should not necessarily be treated as if they carried the imprimatur of papal infallibility. (Taken to extremes, you might agree with the guys over at the Software Liberation Front that the FSF is as much a hindrance to software freedom for users and programmers as proprietary vendors--but that's an article for another day). From Nokia's point of view there could therefore be no reasonable objection to using Android under the Apache license. Indeed, the ability to link it to proprietary stuff is there if they wanted it.
In a fast moving market the flexible license is king
When Google's Android was launched, Nokia's Symbian OS had a near 50% of the smartphone market. In the last quarter of 2010, Android reached 33% while Nokia declined to less than 31%. Translated into raw numbers Android-powered smartphones have sold 32.9 million units, Symbian-powered units, 31 million. Nokia presumably believe that opting for Windows 7 as their mobile platform is the smart move but (and I'm obviously no industry analyst) I think they will really regret that decision. It may well relegate them to being a mere OEM for Redmond's software. History may record them as Microsoft's bitch.
However, there is good news in all of this: the mobile/smartphone market is much faster moving that the desktop/laptop market. Obsolesence can be measured in months, not years and by linking up with a johnny-come-lately blow-in like Windows 7 for mobiles Nokia may have crippled its capacity to react to a rapidly changing market. Fortunately, Microsoft never really managed to get into the mobile market and it always seems to be playing catch up. By the time Windows 7 mobile establishes itself on Nokia phones, Apple and Android will have moved on to the next great thing.
Given all of this, it is perhaps a little surprising to remember that the Symbian OS is actually free as in freedom. It was released under the Eclipse Public License(EPL), a license recognised by both the OSI and the FSF as a free software license though in reality although the full source was released in February 2010, because of problems with parts of the Symbian OS being licensed from third parties the code availability was eventual restricted under the Symbian Foundation License (SFL).
Partnering with Microsoft looks like the equivalent of the ship's captain deliberately steering the vessel directly into the path of the iceberg
And that's ironic because Nokia was an enthusiastic adopter of free and open source. Remember Maemo, based on Debian, the Linux kenel and Gnome--before Nokia "open sourced" or "freed" Symbian? And then there was the tie up with Intel too (using Moblin). It looked then that, for all the caveats, Nokia had nailed its colours firmly to the mast of the good ship, free software. Partnering with Microsoft looks like the equivalent of the ship's captain deliberately steering the vessel directly into the path of the iceberg. Presumably, Nokia see Android as an iceberg with licensing issues being the treacherous seven eights submerged below the water line. So, what about licensing issues in Android?
Java, Dalvik and OpenJDK
I said earlier that many industry observers regarded Google's patent portfolio as weak. Their implementation of Java caused Oracle, Java's owner, to file a lawsuit against Google, alleging infringement of seven Java patents. The finger has been pointed at Google's own Java VM, Dalvik, which may have deviated from the Java specification. I cannot comment on that but surely the way to avoid problematic patent lawsuits from the likes of Oracle and Microsoft is to cleave remorselessly to undiluted free software. After all, it's not as if there aren't alternatives. These potential patent issues are known and have been responded to. Hence the development of OpenJDK (released under the GPLv2) which has passed compatibility tests and been included in Fedora and Ubuntu (with Apple following suit in January 2011, creating their own OpenJDK with a Mac OS X BSD port). When it launched in 2007 4% of the OpenJDK class library was proprietary but by 2008 that had reduced to 1%. OpenJDK was able to be included in Fedora and Ubuntu under IcedTea.
In a sense though, Google has taken a risk by not using Java as their virtual machine; Java's patent grant (which gives vendors immunity to license lawsuits) only applies to people who develop a fully compliant version of the Java virtual machine. Instef, Google developed Dalvik and then developed a translator that goes from Java VM to Dalvik VM. While doing so, it also embraced the proprietary features of Apache (including weak copyleft) in order to get Android out and onto as many vendor's smartphones as possible but that made it vulnerable to patent lawsuits of the type brought by Oracle. That may be what put the wind up Nokia. (Slightly off topic for a moment: the whole episode shows the absolute, imperative need to get all GPL software out from under the stewardship of commercial enterprises--but that's another article too.)
Google's deep pockets notwithstanding, licensing Android under a pristine GPL would make it fully available for community-based releases but they seem anxious to avoid the GPL at all costs
Ultimately Google's best bet to avoid lawsuits and give both assurance and protection to hardware vendors adopting Android is to completely GPL it (not just the kernel below the software stack). Google's deep pockets notwithstanding, licensing Android under a pristine GPL would make it fully available for community-based releases which can maintain Android for users when the original OEM has passed into the pages of history--and in doing so develop and add better features. As it is, Google's strategy to develop Android with "off the shelf" components (the Linux kernel excepted) has led, in February of this year, to a District court in California concluding that Google has a case to answer and that includes Oracle's claim that Google derived its Android code from literally hundreds of copyrighted Java files. True or not, Nokia's reluctance to embrace Android seems understandable in this context.
As far as Nokia is concerned, they seem to be between a rock and a hard place. If they go down the Android route they believe they may become mired in a legal quagmire but if they hitch their fortunes to a mobile platform based on Windows 7 they risk a potentially slow decline as market leaders because, thankfully, the mobile sector is one area where Apple and Android got their first and established a lead and reputation that Microsoft will not be able to challenge. Perhaps, for once, the good guys won (although some might be horrified by me calling Apple "good"). Nokia might not be in that position if they had used their considerable R&D and coffers to fork Android and strip out all contentious licensing and patent issues and developed pure GPL alternatives. It could be done. IcedRobot are doing it--for the desktop.
The GNUlization of Android
A group of free software developers are trying to bring the Android API to the desktop in order to preclude the possibility of Google losing the lawsuit to Oracle and to ensure that Java stays open--and also, I suspect, because they can and because the best of Android (70,000 apps and counting) running on top of a full GNU/Linux distro is just too tempting to resist. The IcedRobot project (announced at Fosdem 2011) has a number of components:
GNUDroid--to create an implementation of Android using elements of free software from GNU Classpaths and OpenJDK (IcedRobot
GNUBishop--Android on a fully functioning GNU/Linux desktop (IcedRobot Standard Edition)
GNUBishop will be designed as a full desktop distribution in the same manner as Debian, Ubuntu and Fedora but with the added functionality of Android sitting on top and with access to a "GNU AppBazaar" where apps can be bought and sold, with 10% of any profits going to the FSF. And Dalvik Runtime to be replaced by OpenJDK with Daneel as a pure Java interpreter VM. To get a better idea about the project head over to read a more detailed piece by an IcedRobot developer at Fosdem 2011 and also take a peek at their slide presentation (in PDF format).
Dalvik (a process virtual machine) is an integral part of Android and runs under the Apache license and that means it too is caught up in the Google/Oracle lawsuit. The IcedRobot developers want to avoid Dalvik altogether, put the Android stack on top of the OpenJDK class library and run it all on the Hotspot virtual machine and so run Android on any GNU/Linux desktop. ("one environment, one specification, one JVM.") Sounds great. Until you click on the OpenJDK FAQ on the Hotspot page. The name Oracle is littered all over it. Oracle are fully involved in and behind OpenJDK apparently while at the same time unleashing the legal attack dogs on Google. Frankly, I'm baffled. Oracle pose as a friend of free software while also attacking it?
The truth of the matter is, as others have observed, that corporations have many ways to exert control over software projects: funding, source code and copyright, for example. I think that funding is the key factor here. Once you control the purse strings you have serious leverage. Nevertheless, if Oracle trash Google in court (which looks likely) users, but perhaps not hardware vendors, will be grateful if a rewrite of the Android code can be done.
GNUBishop and GNU/Linux. A difficult marriage, but a better one?
Tony Mobily, the beloved Editor in Chief of FSM, wrote an article on Chrome OS and Android a few months back. I liked his idea of a marriage between the best of Chrome OS and Android but I have a fundamental problem with Chrome OS. Dress it up as you may, it's cloud computing--even with Google's name all over it. That alone, regardless of the feature set and the convenience, is enough to rule it out. Besides, and this is just a personal hunch, I think Chrome OS will be stillborn. Android is a different matter altogether. It has proven to be wildly popular and has outstripped both Apple and Nokia. Precisely because Android has been so successful, if Oracle win in court the need for a code rewrite will be imperative and the IcedRobot project may not end up as vapourware--like so many other projects before it.
Putting an Android variant, GNUBishop, onto a conventional GNU/Linux distro would be the piece de resistance. It would avoid the trap of cloud computing, possibly circumvent patent/licensing issues and leverage the full power and feature set of Android on a local machine with complete personal control over everything. Perhaps Tony will write a detailed technical article titled "GNU/Linux and GNUBishop: arranging a difficult marriage". How about it Tony?