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.