The App Hole: The Importance of Openness

  • We’ve got a Store!

    Buy Our Shit!

  • I’ve talked about it before, but one of the things I like about Android is its open nature. Anyone can grab the source code, compile it and have a working copy of the OS for their phone or tablet, provided their device has an unlocked boot loader. As such, this allows enterprising users with programming experience to customize the OS to their liking. It’s this sort of thinking that has allowed the CyanogenMod project to grow to the point where its founder, Steve Kondik, now works for Samsung. But while most software developers feel the same way as Kondik, not everyone does. Some feel that their work is their own, and that it should be up to them to share their source code, even if much of it was done standing on the shoulders of giants like Kondik or Linux guru Linus Torvalds (the Android Open Source Project recommends Linux as a development environment, and much of Android is based on a Linux kernel).

    For developers of the AOKP ROM, this has become a source of frustration. AOKP, short for the Android Open Kang Project (“to kang” is a term used in the Android developer community that means “to incorporate someone else’s source code into your own project”) started as an attempt to bring some of CyanogenMod’s enhancements to Android 4.0 – Ice Cream Sandwich – on Google’s reference phone, the Samsung Galaxy Nexus, but grew at an exponential rate and now offers its own suite of enhancements. AOKP builds are available for over a dozen devices, including the Samsung Nexus S and Nexus S 4G, HTC Evo, Incredible and Incredible 2, and tablets like the Motorola Xoom, HP Touchpad and Samsung Galaxy Tab. But in attempting to port to another Android tablet, the Acer Iconia A500, developers ran into a brick wall. The first developer to get ICS working on the device has thus far been unwilling to share his work with others for fear that less qualified developers will take said code, introduce untested and buggy enhancements or inelegant graphical changes and make others think that he is somehow responsible. It’s a valid concern, since a lot of ROMs for the HTC Incredible were similar. The problem here is that those concerns fly directly in the face of the GNU General Public License, or GPL, which Google uses to license the Android kernel – the key component that drives the hardware. Under the GPL, any derivate work must be licensed under the GPL as well. This particular situation ends up playing out a bit like having one kid on your block with a ball that wants to play kickball, but if you want to play soccer he gets upset and won’t let you play at all.

    R5-11Jacob “ProTekk” Bell, who maintains AOKP’s A500 device tree (among others), has spent a fair amount of time hacking away at Android code in an attempt to get over these hurdles, but without proper kernel sources, he has found it nearly impossible to get a 100 percent working ROM. The only way he has gotten a build working is to take the pre-compiled non-GPL compliant kernel and drop it in place, but this presents the same problems as mentioned above; it’s still not GPL-compliant, and some developer sites won’t touch it with a ten-foot pole as a result. While most end users take a Machiavellian approach to the issue and figure the ends justify the means, Bell would, ideally, prefer to keep everything 100 percent open.

    One solution, of course, is to wait for the vendor to do its part. Like every other reputable OEM, Acer has released kernel sources for Android 3.0 (Honeycomb), and presumably will do so when they officially release ICS for the device. Preview builds with various bugs have leaked over the last few weeks, and this has given other developers on sites like XDA a chance to get involved with the stock ROM and make some improvements on Acer’s code. Without actual kernel source, however, there are limits on what can be done, and as such a lot of the custom ROMs that have popped up in the last few weeks are differentiated only by changes in icons, wallpapers and bundled apps, with some patches and tweaks to allow devices to be rooted. But rather than work together, you have a multitude of fragmented projects, all of which work to an extent, but none of which is 100 percent functional. By choosing to release with a non-GPL kernel, Bell earned the ire of the one segment of the developer community which was most upset by the original GPL violation, so rather than getting the help he has asked for, by and large the door has been slammed in his face. It would make more sense for both sides to try and work together for the sake of making a better ROM, like what Cyanogen has done for years with Android. Working separately, both sides feel that they are doing just that, but clearer heads need to prevail.

    Or we can just wait and let Acer ride in on its white horse and rescue us all.

    Note: Since this article was written, a build of CyanogenMod 9, using the stock Acer ICS kernel, has been released. Likewise, Bell has switched his AOKP build to the stock kernel. Acer did issue an OTA update for the Iconia A500 on Saturday that finally brought ICS to the device, but kernel sources have not yet been posted. Stay tuned…


    cat response | twitter @UnwinnableDonB.