Every now and then, a developer complains that Android is not “open”. The problem is that there are too many things being termed “Android”, and that is leading some developers to try comparing apples to Apples.
First, there is the Android open source project. This is a large amount of source code released under a generous open source license, that anyone can use for whatever purpose they desire. However, this open source code does not really represent a complete operating system, any more than the Linux kernel does. And, this open source code does not include proprietary applications, any more than the Linux kernel includes Oracle.
Then, there is the suite of Android “distros”. Just as the Linux kernel, drivers, and userland tools combine to create a Linux distro, the Android open source project, drivers, and other often-proprietary bits form Android “distros”. These tend to be built from internal-to-OHA trees, with Google maintaining some sort of private repositories that contain the latest-and-greatest Android source code. Google and select device manufacturers then work to convert the Android code into distros that go onto various devices, often incorporating manufacturer-specific bits (e.g., HTC Sense, MOTOBLUR) and sometimes carrier-specific bits (e.g., myFaves for T-Mobile US). There is nothing to prevent somebody from creating a pure open source Android distro, though finding open source drivers for arbitrary phone hardware will be difficult at best, and it would be limited to the open source project instead of the not-yet-released internal code.
Proprietary distros are not open, any more than TiVo or many Linksys routers are “open”. They use open source foundations, but then they mix in proprietary bits in and distribute the lot on appliances, not designed to be open systems. I long for the day when you can slap an arbitrary operating system on a mobile phone, the way you can on an open PC. However, expecting that in Android's Year 2 is unrealistic, as the issues surrounding this are well beyond the scope of any one mobile operating system. Moreover, it is the manufacturers' right per the Android open source license to make proprietary distros, and if you take away that right, you would largely take away the devices.
The Android open source code is open, but ongoing public collaborative development is limited. This is disappointing, as I have pointed out on several occasions. The published source code may be transparent, but the development process is translucent at best, and code that makes it to distros but not yet to the open source tree is very opaque.
Then, there is the third “Android” — the Android API. This lets developers create applications supported by the Android open source code and that can run on Android distros. All APIs, for both open source and proprietary code, are not open — APIs define a contract, and contracts cannot be amended at the snap of a finger. If you think that you're going to unilaterally redefine the Linux kernel API for userland apps (the ABI) for all kernels everywhere, that's rather unlikely, though the odds increase if your last name is Torvalds.
So when developers complain that missing APIs means “Android” is not “open”, the developers' lack of clarity on their complaint does not help their case. The Android API is not supposed to be “open”. Proprietary distros are not supposed to be “open”. A missing API does not make the open source code not “open”.
Rather, the only two relevant and valid “not open” complaints regarding missing APIs, that I can see, are:
The development process for the Android distros is not open (open source trees lagging the current OS versions, etc.), and that is the way you might get a missing API added to all devices
The devices themselves are rarely open, meaning open distros are difficult to impossible, and that is the way you might get a missing API added to your own device
The latter situation will improve if developers steer efforts towards more-open devices, such as the ODROID. The former situation will improve if Symbian's more-open process proves successful, or if device manufacturers (or Google itself) become convinced that a more-open process will give them “mo' betta” capabilities in the Android OS. For both, only time will tell.