Google is hardly the first company to try using open-source software to shake up the industry. Open Handset Alliance, and the open-source community made all of the work that they have poured into the mobile platform is now officially available, for free, as the Android Open Source Project.
What is open
The core Android platform will be 100% open source. Even multimedia codecs, which historically are held close to the vest will be open. Except where noted, everything will use the Apache software license (ASL v2). This is the same open source license used by projects like the Apache HTTP server, Tomcat, Harmony, and many other large projects in the open source community.
There are two exceptions to the Apache license rule:
Software that is already covered by by a free/open source license will continue to use that license. Most notably, this includes Google’s enhancements to the Linux kernel. Linux uses the GNU Public License (GPL v2) so enhancements to the kernel will use the same license.
Any software that touches Eclipse, for example the Eclipse Android Development Tools plug-in (ADT) will be licensed under the Eclipse Public License (EPL), because that’s what Eclipse uses.
Google plans to make a few of their applications closed-source, including their GMail application. These programs are not part of the core Android system, even though they may be bundled with Android phones.
Openness
Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It is built to be truly open. For example, an application could call upon any of the phone’s core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. This is true, as a developer you can do everything, from sending short messages with just 2 lines of code, up to replacing even the HOME-Screen of your device. One could easily create a fully customized operating system within weeks, providing no more of Google’s default application to the user. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that has been designed to optimize memory and hardware resources in a mobile environment. Android will be open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.3
Different Layers of Android
The Red Layer
The red layer from represents the services offered by the Linux kernel and associated GNU utility packages ported to the ARM architecture. These components are licensed under the GNU [General Public License], the GPL, or the GNU Lesser General Public License, the LGPL. Being subject to the GNU GPL and LGPL licenses, these components are licensed with all source code included. Furthermore, due to the viral nature of the GPL license, any modification to this layer or derived work must be distributed as source to any 3rd parties using the same licensing terms. The GNU/Linux ARM port is mature, stable, and used in many embedded projects both in and outside of Google.
The Green Layer
The green layer consists entirely of open source libraries available under various licenses. Some of the libraries come from the GNU project itself. The licenses here vary from the LGPL, BSD, MIT and are completely in the public domain in the case of the SQLite database. However, even if the licenses of some of the components found in this layer are more permissive and could allow a hardware vendor for customizations not found in other Android handsets, Google has created the Open Handset Alliance that owns the Android trademark. As part of this effort, any phone that wishes to be branded as an Android handset must meet the non-fragmentation rule. As such, any phone that would customize the libraries found in this layer, add libraries or remove them altogether would no longer be able to brand itself as an Android phone. Furthermore, under this same pledge, its license to the proprietary Dalvikvirtual machine found at the core of the Android platform would be considered null and void.
The Blue Layer (Application Frameworks)
In this layer, the application developer has access to what Android refers to as ‚ ‘service’ processes. These services are invisible to the user of the handset. Application developers can communicate with these services via a message bus. For example, a contact application might instigate a phone call at the behest of a user request by calling on the services of the telephony manager. All code found in this section is currently closed source, is written in Java specifically for the Dalvik virtual machine. It is not yet clear under what license these modules will be made available in the future.