When people talk about Android, they usually think it as a platform, a product from Google, rather than a software, an “open source” operating system. If you are an end user, thinking it right, there is no matter. If you, however, think that you are a hacker, a programmer, or at least an (app) developer, it isn’t enough.
The most part of Android is free software, no matter Google calls it “free” or “open source”. But there are also many proprietary components in Android.
The Linux kernel, with a few non-free firmwares though, is released under GPL. Phone makers don’t want to release their driver’s source code, which will probably leak their “business secrets”. Therefore, Google developed a mechanism moving the driver to user-space, in order to avoid GPL and satisfy this demand. Based on this purpose, phone makers can provide an OS not only proprietary but also full-closed. They hope even to forbid user installing applications by self, just as Apple does.
Furthermore, there is another reason. As everyone knows, Google cash in on user’s privacy. Although Baidu, Tencent, 360 and many companies are doing the same thing, it is still wrong. Is it possible that Google releases their surveillant code? Amitabha!
CyanogenMod is a big step to the free mobile operating system, but it isn’t entirely free, just as the vanilla kernel and most GNU/Linux distributions. Yes, Replicant, the FSF-endorsed Android distro, is sometimes unpractical, leak-of-features and even unusable; However, if there isn’t Replicant and FSF-endorsed GNU/Linux-libre distributions, who will lead the fight against proprietary, censorship, surveillance and dictatorship online or offline? Free software movement is not only a technical movement, it is a revolution, a revolution to the bright free Internet!