A team of savvy Java developers is working to fork Android to have a safe and open implementation of the Android stack in case Oracle prevails in its litigation against Google for allegedly infringing Oracle's Java patents in the creation of Android.
In a project known as IcedRobot, Mario Torre, a software developer at JPMorgan Chase, and David Fu, an engineer at Opera Software, are leading a small team to build a Java Virtual Machine for Android that is based on the open-source OpenJDK implementation of Java.
Florian Mueller, founder of the NoSoftwarePatents campaign and author of the FOSS Patents blog, said, "A group of open source developers that appears very concerned over the implications of Oracle winning its lawsuit against Google has started to build a Java virtual machine for Android that is based on the GPL'd OpenJDK as opposed to the Apache Harmony codebase. To do this, they apparently also build their own derived version of Android, which is called -forking' in open source circles."
Fu and Torre presented their IcedRobot ideas to a packed crowd at the Free and Open Source Software Developers' European Meeting 2011 (FOSDEM XI), which ran Feb. 5-6 in Brussels, Belgium. Blogging about IcedRobot in a Feb. 8 post, Torre said:
We-re basically trying to do two main things:
1. Have Dalvik [the VM in Android] completely separated from the usual Android infrastructure so that it runs as any other *unix program in the Linux environment (and non Linux, I personally want it to work on OSX and QNX).
2. Avoid Dalvik and Harmony as much as possible and put the Android stack on top of the OpenJDK class library, and run the whole thing in Hotspot (this is cool, isn't it?).
The second goal is the most interesting because it means basically that Android will run on any Desktop finally: one environment, one specification one JVM.
Essentially, IcedRobot is an attempt to bring the Android API on the Linux Desktop, Torre said. Torre said he is working with Fu" to decouple Dalvik from the custom Linux kernel that Android uses and at the same time to port the extra APIs (and especially the graphics stack) so that I can run this thing standalone.
Once (actually, while) Dalvik is finally decoupled and the basic libraries are working, we need to take it away completely so that we can run the code with Hotspot. Of course, it is possible to just port the library code, but as I said, I want to have Dalvik run on QNX and OSX without problems (I don-t care about Windows, and I believe the worse thing we ever did was to allow Windows users to alleviate the pain by sharing the good Free Software tools, but again, this is a form of freedom as well and if somebody wants to do it, welcome)."
Though Mueller lauds the IcedRobot idea he appears to have some reservations about the project's chances for success.
"By integrating Java code available on GPLv2 terms they hope to be safe from legal attacks on Oracle's part, but this depends on what exactly they do and how the implicit patent license contained in the GPLv2 would apply," Mueller said. "The more they modify the OpenJDK code, the less likely they are to be covered by that implicit patent license. But just the fact that they see a need to act and don't trust that Google will defend itself successfully is interesting. Those are skilled software developers who apparently concluded that they have to take their destiny into their own hands..."
In a description of the IcedRobot talk, labeled as "IcedRobot: The GNUlization of Android," on the FOSDEM website, Fu said the IcedRobot project, which consists of the GNUDroid and the GNUBishop subprojects:
GNUDroid is a project meant to create an Android implementation using Free Software components borrowed from GNU Classpath and OpenJDK. This will be the IcedRobot Micro Edition.
GNUBishop is a project meant to augment the standard features offered by Android with typical Desktop functionality that are missing in the mobile world. This will be the IcedRobot Standard Edition.
Yet, in the slides for their FOSDEM talk, Fu and Torre identify a third subproject known as "Daneel," which is described as a "pure Java Interpreter VM for Dalvik."
Moreover, in a Feb 8 blog post, Mueller said:
"I admire the IcedRobot team for embarking on such an ambitious project. They express a certain belief that Google and Oracle will have mixed feelings about what they do, but I actually think that those companies will secretly hope that the IcedRobot idea never materializes.
"Google's strategy with Android is to avoid the GPL to the greatest extent possible. Google wants to accommodate proprietary extensions that Android device makers may consider valuable for differentiation purposes. Oracle, however, looks at the mobile market as a key area in which it seeks to monetize Java. In this area, Oracle insists on one of its field-of-use restrictions for third-party Java implementations."
Other bloggers cited IcedRobot, including Simon Phipps, chief strategy officer at ForgeRock and former chief open source officer at Sun Microsystems, who attended and spoke at FOSDEM, said, there "were plenty of interesting talks, most notably Mario Torres and David Fu talking about their IcedRobot project to get Android apps to run on OpenJDK (and thus on any desktop)."
Meanwhile, Fu and Torre said they believe "Android is a suitable alternative and a compendium to Java Micro Edition, offering more capabilities but keeping a good deal of possible compatibility, but has not yet targeted the Desktops, although it already runs on high resolution devices such as InternetTV, the IcedRobot project will try to leverage this compatibility and unleash the full potential power of Android."