Since the late 90ies companies started to commercially use Open Source Software in their products. Some say it is a philosophy, others it is just a pragmatic methodology. However, the OSI (Open Source Initiative) and the FSF (Free Software Foundation) established distinct criteria to certify software to be open source: The software must allow a free redistribution, must have an open and freely available source code and it must allow derived works. Recent discussions of Google’s open source mobile operating system Android made me wonder if the software really meets the criteria of allowing full openness.
Google acquired the small software company Android Inc. in 2005 and later joined the OHA (Open Handset Alliance) in 2007 to develop the mobile operating system Android. The OHA is a consortium of more than 80 member companies that can be differentiated in mobile net providers (such as T-Mobile, Sprint, Vodafone, etc.), semiconductor vendors (QUALCOMM, Marvell, Intel, etc.) and handset manufacturers (HTC, Motorola, Samsung, etc). The Android OS has a Linux kernel and is certified under the Apache 2 license. Since 2007 Android has been commonly developed and updated among the member companies of the OHA, with the leadership of Google.
Google releases new versions of Android OS on a regularly basis and one can freely download the software. The source code is open, freely available and the Apache 2 license allows to also freely redistribute the source code. However, it is in question whether or not it allows a derived work on the software. A usual strong characteristic of open source software is the community that commonly develops and fixes the software. But where is that community in the Android case? Is it the OHA? But the OHA is definitely not an open consortium, since membership is only by invitation.
Having this situation, it is the question: What is a regular user or even an advanced developer able to do with the Android software? Android software versions are released on a regular basis and users have to analyze ex post, which changes have been made. The development process between the version releases is thus not transparent. This is very different compared to other open source projects, where every change can directly be evaluated. Members of the community can thus directly react and comment to the changes and consequently also contribute by fixing bugs and discuss about possible solutions. In that sense the Android software appears to be very close and in my opinion does not meet the criteria of allowing derived work.
Handset manufacturers such as HTC, Sony, Samsung or Motorola can further extend the Android OS with their own closed variations (the Apache 2 license allows to add closed application on the software). For example if you buy the new HTC Incredible S, the user interface “Sense” is programmed on top of the Android OS and users are not able to modify anything or port another Android version to their phone. Other examples are the Sony Xperia Play or the Motorola Defy, where Android is modified and thus unchangeable connected to the device.
I think the situation shows that Google clearly does not want any external participation of third parties to develop the Android OS. Even though the software is open in a sense of source code and license, it definitely lags openness in the development process. Should we really call this open source? Is this the initial intention of open source ? And what could be new criteria?