Android, Mythbusters and openness

I have been reading a great many posts about Android lately, some consisting of criticism, some of praise and some simply addressing issues in the Android "community". Let's have a look at those.

Matt Porter's Android Mythbusters presentation and Harald Welte's reaction

I haven't seen the presentation live, but I had a look at the slides. Impressing work done by Matt putting all this information together. However, we all knew that Android only (ab-)uses Linux, without making use of the GNU userland for a long time, didn't we?

In his presentation Matt has shown things such as Android's udev "replacement" that uses hardcoded values for device node creation and (on his blog) Harald has then come up with a statement I have found to be very strong:
The presentation shows how Google has simply thrown 5-10 years of Linux userspace evolution into the trashcan and re-implemented it partially for no reason. Things like hard-coded device lists/permissions in object code rather than config files, the lack of support for hot-plugging devices (udev), the lack of kernel headers. A libc that throws away System V IPC that every unix/Linux software developer takes for granted. The lack of complete POSIX threads. I could continue this list, but hey, you should read those slides. now!

Now both of these statements target technical details, but the root of the problem seems to be elsewhere.

Where is my Android 2.0?

Okay, that heading might not be making any sense in the context of this post at a first glance, but let me elaborate on that. Google and the Open Handset Alliance refer to Android as being an "Open Source" operating system, but the project is different from "real" Free Software projects: development takes place in a closed group and the results are shared with the community later on, when they are deemed to be ready.

This means that innovation also takes place behind closed curtains and that the community is not involved in the actual development process at all. Lately we have seen the result of that, as Motorola is bragging about working close with Google on Android 2.0 ("Eclair"), but the AOSP source trees, open for everyone to have a look at, show no signs of version 2.0. In fact no changes that might even remotely suggest the release of a new major version have been made public in the past few weeks. So where is the openess there?
Actually, the Motorola Droid has already shipped with Eclair on 6th, but still, there is no indication that Eclair will be made available to the broader public.

In short Android seems to be developed behind closed curtains, with hardly (read no) community input whatsoever and is sometimes released as Free Software, not what I would describe as an open development process.

The Android Market problem

As we have seen in the past Google is enforcing their copyright on proprietary applications that ship with pretty much every Android device, such as the Android Market. This has become really clear when Steve Kondik received  a cease and desist letter when packing the Google-proprietary applications into his ROMs. Okay, it's Google's right to enforce their copyright and there is nothing wrong with actually doing so, the thing I really have a problem with is something else: the Market is proprietary.

Now what this means should become rather clear. You can have an Android device without Google's proprietary bits, but with default settings you just do not have any way of installing additional software. In my opinion the Market should be freed by Google themselves, or the community has to react and come up with a free replacement to overcome the vendor lock-in. Oh, you might know a replacement called SlideMe (or Mobentoo) already. Well, that bugger is proprietary too, so not a solution at all.

Nokia and Maemo to the rescue

In most discussions about the openness of Android someone throws in Nokia and Maemo, as a solution to the dilemma. Reading all those positive comments I simply had to give it a try, but all my hopes were destroyed within a few minutes.

Let's start with the good news and let alone the reason why my hopes were destroyed for another minute or two. Maemo is based on Debian GNU/Linux and various Free Software components, such as GTK+, gstreamer, esd and friends. Most of the system is Free Software which is a good thing(tm) and reading all of this really got me into Maemo. Okay, some applications seem to be proprietary, but I am sure that could be fixed rather easily, so I could once for all use a truly open phone.

...and then came the SDK installer shell script:
# Copyright (C) 2006-2009 Nokia Corporation
# This is proprietary software owned by Nokia Corporation.
# Contact: Maemo Integration <integration@maemo.org>
# Version: $Revision: 1110 $

Now there is one question you should ask yourself: Why would someone trying to promote his platform as being open make the *installer* script for its SDK proprietary? Come on, it's an installer script, how much of your secret juice could be in there? What's the problem with people modifying it and working on this installer script in an open development environment?

I had high hopes for Nokia actually doing a bit better than Google, but it seems they've failed to do so. It may be me overreacting, but a proprietary SDK installer shell script scares me enough not to install the SDK and have a look at it for now nor to think about buying a Maemo-based device in the near future. Please Nokia, either get the facts straight or provide us with a free SDK to your free & open platform.

So, in short, Google is bad at working with the community and creating a truly open development process, and Nokia simply fails in terms of not scaring off prospective developers for their open platform with the proprietary SDK installer. Do you have any solutions in terms of an open phone environment, apart from what OpenMoko has come up with?


  1. Maybe installing the SDK is the right way for you,
    according to the instructions at http://wiki.maemo.org/Documentation/Maemo_5_Final_SDK_Installation#Manual_Installation

    For reasons why there are closed packages, see http://wiki.maemo.org/Why_the_closed_packages.

  2. [...] #Openness of #Android and #Maemo http://blog.peijnik.at/2009/11/08/android-mythbusters-and-openness/ [...]

  3. So you spent a few minutes with Maemo, very deep analysis.

    If you would have paused for a moment and looked at the table of contents of the SDK installation guide and you would have noticed the chapter titled "Manual Installation", which describes how to install the SDK without any script nor proprietary stuff.

    And of course, if you actually bothered to report a bug complaining about the license of the script I'm sure it would be changed in a heartbeat.

    But I guess making a compelling argument in your blog is more important than showing the reality.

  4. @1: Thanks for your input, I hadn't seen that pages before.

    @2: I didn't ever say I made a deep analysis, I just noted that Maemo, which is supposed to be more open than Android, comes with installer scripts which contain a pretty strict copyright notice by Nokia. The bug reporting point is good though, going to report one after finishing to respond to your comment.

    However, I did not find the page both you and #1 are mentioning. I went straight to maemo.org, clicked on downloads and fremantle on the lower right which took me straight to http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/. No mention of alternative install methods there.

  5. [...] This post was mentioned on Twitter by adroid zealot and Jibran, Miriam Ruiz. Miriam Ruiz said: Android, Mythbusters and openness -> http://bit.ly/2nJBKM [...]

  6. Maemo _is_ more open than Android, when you consider things like letting the user control his device (e.g. root access) or install arbitrary applications.

    Maemo is probably about as open as Android (and is less open than OpenMoko) when you consider bundled applications. Perhaps half of the libraries and most of the applications are closed. Maybe I'm pessimistic, but I remember my original joy (hey, the 770 runs an open-source OS) and disappointment (crap, half of the stuff is proprietary).

    There's also Mer, which takes the open bits of Maemo and tries replace the proprietary bits to get a complete distro.