What is open source?

What is open source? Open-source software is software that makes the source code freely available, for anyone to see and use. Companies, individuals, universities and a lot of other entities build entire projects and use an open-source license, then they give the code away to anyone who wants to use it. The license used determines how others who use this code share their modifications.

There are different open-source licenses that have different use conditions, from the GPL (GNU General Public License) — which allows "free distribution under the condition that further developments and applications are put under the same license" — to more liberal licenses like the Apache License, which doesn't require modifications to be open and have the source code available. Android uses both of these licenses, and we'll have a look at them in turn.

The Linux kernel that is used in Android is covered under the GPL.  This means that any changes made to the source code must be made available when a binary (geek-speak for a compiled, executable piece of software) is released to the public.  This means manufacturers like HTC, Samsung, Motorola and the rest must release the kernel source-code for any devices they sell at the same time they begin selling them. Of course, this rarely happens and we end up waiting for a team to remove notes, source comments and other helpful things before it gets to us. These are the code releases you'll see mentioned on the internet, and consist of the kernel source and other open-source "bits" that are covered under the GPL.

The source code for Android itself is released mostly under the Apache License. Anybody is allowed to download the source code and change it however they like, but they are not required to make their changes available in source code form to the public. This is why we can't easily modify Samsung's Touchwiz (for example) — the changes they made to the base Android source code aren't available to us. While many folks (myself included) don't like this situation very much, it does make sense from a business standpoint. If manufacturers had to share all of their secrets, there wouldn't be as much monetary incentive to innovate, so the source was offered with a far more liberal license. It certainly worked, as we see devices from many major players in the electronics world.

Google's other major consumer product — Chrome OS — is written from the Chromium source. The Google-written parts of Chromium are open source, under the BSD license. Other contributors use various open-source licenses like the MIT license or the GPL. 

An important thing to remember here is that Android and Chromium are open source, but the operating systems used for Nexus devices and Chromebooks are not. They are built from the open-source projects, but may contain proprietary parts to improve the software for each particular device. For Nexus phones, these proprietary bits are released on the Android Developer site and are ready to drop into anything you may build from the AOSP to get the same experience. Chromebooks will run on a completely open build of Chromium, but won't have some closed Google APIs or the full suite video and audio codecs.

Google also releases applications that are not open-source licensed. Gmail, Maps and plenty of the other Google apps that come on our phones aren't part of the AOSP, and are developed independently for Android, Chrome, iOS and the web. When you hear the internet squabbles about Android not being "open", this is what they are talking about. Android, and everything required to install and run Android apps is completely open-source, but the popular applications that make it better are not. This isn't likely to change.

Jerry Hildenbrand
Senior Editor — Google Ecosystem

Jerry is an amateur woodworker and struggling shade tree mechanic. There's nothing he can't take apart, but many things he can't reassemble. You'll find him writing and speaking his loud opinion on Android Central and occasionally on Twitter.