2010 Dec 26

There has been a lot of discussion on my twitter timeline whether Android is Free and Open Source (FOSS). I really don’t see why Android is NOT Free Software by any definition. For starters, majority of Android source code is licensed under the Apache license v2.0 which is a Free Software Foundation approved GPL compatible license. The Linux kernel, over which Android is based is itself under GPL version 2.

Secondly, I have used a Nexus One running a custom linux kernel (yes, I modified, compiled and flashed). Google ships Nexus One with an unlockable bootloader thereby encouraging not only Application development but also low level hacking. The phone can be flashed using the fastboot utility over USB. Device manufacturers like HTC, Samsung, Sony et al mostly disable “fastboot” to prevent unverified/unsigned operating system images to be flashed onto the mobile device thereby locking it down. Such device lock downs are not a new age phenonmenon. Additionally the manufacturers / service providers “spice” up the system with a proprietary stack over and above Android (which is perfectly legal and allowed by the Apache License). E.g. HTC Sense

Historically, judicial cases involving GPL violations have been with respect to making the source code available. Ref: TomTom, Freebox and DLink. The only time there was an outcry against hardware locking was for Tivo which later ended up in drafting and releasing a new GPL (v3) version itself. Note that, we are talking here about GPL not any other license like Apache or BSD.

Its like saying, “If a product runs Linux and the manufacturer locks the device down preventing user from running his/her own modified software on that product, Linux is not FOSS.” The above is precisely what Tivoization was all about and it was an attack on the hardware manufacturer and NEVER questioned the freedom and openness of Linux kernel itself.

Quoting Linus Torvalds

Tivo never did anything wrong, and the FSF even acknowledged that. The fact that they do their hardware and have some DRM issues with the content producers and thus want to protect the integrity of that hardware.
The kernel license covers the *kernel*. It does not cover boot loaders and hardware, and as far as I’m concerned, people who make their own hardware can design them any which way they want. Whether that means “booting only a specific kernel” or “sharks with lasers”, I don’t care.

Back to Android, the complete source code is available online. Yes, it might not be the latest and greatest available source code residing in the memory cells of the Android developers’ computers. But is that the point? Even with GPL’d software one does not always see the latest version until the “developers” decide to make it public. There are benevolent dictators to every open source project.

Android does have an open bug management system, accepts patches and have also put up web pages describing the “Life of a patch” and “Life of a bug”.

I still don’t see why Android is NOT Free Software. By definition, it adheres to all rules and regulations of the license. This tweet from Andy Rubin is good enough an answer for everything.

However as I mentioned here, all that matters to me is how much a system can be explored and learned. Android + Nexus One / Nexus S is one heck of a platform to get a system’s perspective right from the core operating system to the application layer.

If the revolt is against hardware lockup of Android devices, I re-iterate: Its got NOTHING to do with openness of Android. I see only two ways of fixing this. First option – change Android’s license to GPLv3 (which has got additional clauses to prevent such Tivoisation). This would lead to a whole bunch of recursive license compatibility issues a.k.a heavily affect Android’s growth and adoption. Second option would be to force all manufacturers to “open” up their devices running Android. This I have no clue how it can be done without changing the licensing of Android. Plus, put yourself in the manufacturer’s shoes for a moment — Way too much headache in supporting all the “rooted” but “bricked” devices coming into their service centres. No one is here for charity and each of us have to feed some stomachs in the end.

Bottom line : Android is free and open enough for me as an end user of Nexus One / S devices.

PS: I am NOT an Android fanbhoi. JFYI, I own an iPhone 4.

  1. Great post. I hope this will debunk a few myths.

    Btw, changing Android’s license to GPLv3 is not possible because Linux is still under GPLv2.

  2. Though most of the post went over my head, what I was looking for came right at the end :)

  3. Me too had similar thoughts on Android. One question I have is that Few argue that since Android is not OPEN from word go, that is adding new features etc like Mozilla Firefox is , does it make Android NON FOSS acc to FOSS, (Im new to FOSS) :)

  4. One of the biggest argument given for Android being not FOSS is that the benefits don’t reach the end users. End users cannot modify their devices with custom ROMs. For this Linux kernel has to be under GPLv3.

    Changing it to GPLv3 also has lots of issues. The kernel hackers have to track down each and every contributer and get their approval. Some might have been deceased and some might not be in contact. The portions written by these people needs to be written again.

    Same thing can be done with any other Linux distro. Does this mean that such linux distros are not FOSS?

    You mean Firefox Addons? Not having addons/extensions has nothing to do with being FOSS or not. It should satisfy the following 4 freedoms
    Freedom 0: The freedom to run the program for any purpose.
    Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
    Freedom 2: The freedom to redistribute copies so you can help your neighbor.
    Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.

  5. @Manish Thanks for the response
    My question on Mozilla was that firefox is open right from development stage, but Android isnt, say Honeycomb(Ver 3) code cant be accessed now and can only be accessed when it is released, unlike mozilla firefox or linux kernel itself .

  6. Thanks 4 clearing the air.
    I had to Un-follow few morons 4 arguing about Android and being non FOSS for few days.
    I hope i am not getting anymore of those tweets and everyone can rest in peace :D

  7. a disclaimer to start with: I have very less to nil knowledge about FOSS and open source licensing. From what I understood by reading the post and comments is that Android as such is completely FOSS “but” manufacturers lock the devices by disabling the fastboot to maintain the integrity of their hardware. My simple query from an end user perspective is: as an owner of android phone (say samsung galaxy s), am I benefitting from android being FOSS?

  8. @Raju,

    There is one more thing apart from manufacturer locking the device. They also add some proprietary stack over and above Android e.g. HTC Sense. And to answer your question, as an end user (say you would not want to run your own modified Android) there is no difference. If you are going to develop applications, there are always APIs just like in iOS (again does not matter FOSS or not). If you want to run your own modified Android on the device ‘legally’, then you are better off with Google phones like Nexus One and Nexus S. For the non-geek end user crowd, I don’t think this matters anyway :-)

© 2006-2009 Aanjhan Ranganathan, All rights reserved (unless otherwise stated).
Home Projects Presentations Profile Photography Notes Archives Blogroll Top ↑ Theme by Eficacy Designs