Is Android “free software”?

Other languages

A couple of months ago, I bought a Samsung Galaxy (I7500) phone; it runs a version of the Android environment. I'm reasonably happy with it: it works as a phone, it allows me to stay connected when I'm not at home, and developing applications for it does not seem too hard.

I have a big gripe, though: I can't touch the OS.

No, I don't mean "I don't have root access": I know how to get it, and I even pretty much agree with the whole «make it as hard as possible for users (or malicious software) to brick the phone».

What I mean is this: I have the (purported) source code of the Android system, from the Linux kernel up to the various applications. But I can't do anything useful with it: I don't have the "corresponding source", to use GPLv3 terminology. There is no way for me to rebuild the exact same system image that is running on my phone. The FSF says that the Apache license version 2.0 is a "free software license, compatible with version 3 of the GPL", but it's apparently possible to release a set of programs under it, and have the resulting collection not meet the free software definition: I can't actually run the program!

OK, I can run it on the emulator. I say that's not good enough. Samsung has given me a binary copy of their Android version. According to the license, they are in no obligation to give me the source code. How can I call this "free software"?

As an aside, the reason I started this rant is this: there are a few features that I would like to change (e.g. add support for OpenVPN to the nexus program; add the ability to change input language for each input box, independently from the system locale). Since I can't actually benefit from those changes (I can't build a new Samsung image with my modifications, and use it), and I don't have any assurance as to when they will arrive on my phone (assuming they are accepted in the Android platform), why should I even attempt to make them?

DatesCreated: 2009-09-17 10:59:01 Last modification: 2009-09-17 12:02:55