blob: 0405e84c717c44cf93fa97b5737dd3e144c7f52b [file] [log] [blame] [view]
Skyler Kaufman44436912011-04-07 15:11:52 -07001<!--
2 Copyright 2010 The Android Open Source Project
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15-->
16
Skyler Kaufman991ae4d2011-04-07 12:30:41 -070017# Licenses #
18
19The Android Open Source Project uses a few [open source initiative](http://www.opensource.org/)
20approved open source licenses for our software.
21
22## Android Open Source Project license ##
23
24The preferred license for the Android Open Source Project is the [Apache
25Software License, 2.0](http://www.apache.org/licenses/LICENSE-2.0) ("Apache 2.0"),
26and the majority of the Android software is licensed
27with Apache 2.0. While the project will strive to adhere to the preferred
28license, there may be exceptions which will be handled on a case-by-case
29basis. For example, the Linux kernel patches are under the GPLv2 license with
30system exceptions, which can be found on [kernel.org](http://www.kernel.org/pub/linux/kernel/COPYING).
31
32## Contributor License Grants ##
33
34All *individual* contributors (that is, contributors making contributions
35only on their own behalf) of ideas, code, or documentation to the Android Open
36Source Project will be required to complete, sign, and submit an [Individual
37Contributor License Grant](cla-individual.html). The grant can be executed online through the
Jean-Baptiste Queru0e3ee322012-01-11 05:42:17 -080038[code review tool](https://android-review.googlesource.com/#/settings/agreements).
Skyler Kaufman991ae4d2011-04-07 12:30:41 -070039The grant clearly defines the terms under which intellectual
40property has been contributed to the Android Open Source Project. This license
41is for your protection as a contributor as well as the protection of the
42project; it does not change your rights to use your own contributions for any
43other purpose.
44
45For a *corporation* (or other entity) that has assigned employees to
46work on the Android Open Source Project, a [Corporate
Dan Morrill1cbb5ed2012-03-16 13:45:31 -070047Contributor License Grant](cla-corporate.pdf) is available.
Skyler Kaufman991ae4d2011-04-07 12:30:41 -070048This version of the grant allows a
49corporation to authorize contributions submitted by its designated employees
50and to grant copyright and patent licenses. Note that a Corporate Contributor
51License Grant does not remove the need for any developer to sign their own
52Individual Contributor License Grant as an individual, to cover any of their
53contributions which are *not* owned by the corporation signing the
54Corporate Contributor License Grant.
55
56Please note that we based our grants on the ones that the
57[Apache Software Foundation](http://www.apache.org) uses, which can
58be found on [the Apache web site](http://www.apache.org/licenses/).
59
60## Why Apache Software License? ##
61
62We are sometimes asked why Apache Software License 2.0 is the preferred
63license for Android. For userspace (that is, non-kernel) software, we do in
64fact prefer ASL2.0 (and similar licenses like BSD, MIT, etc.) over other
65licenses such as LGPL.
66
67Android is about freedom and choice. The purpose of Android is promote
68openness in the mobile world, but we don't believe it's possible to predict or
69dictate all the uses to which people will want to put our software. So, while
70we encourage everyone to make devices that are open and modifiable, we don't
71believe it is our place to force them to do so. Using LGPL libraries would
72often force them to do so.
73
74Here are some of our specific concerns:
75
76- LGPL (in simplified terms) requires either: shipping of source to the
77application; a written offer for source; or linking the LGPL-ed library
78dynamically and allowing users to manually upgrade or replace the library.
79Since Android software is typically shipped in the form of a static system
80image, complying with these requirements ends up restricting OEMs' designs.
81(For instance, it's difficult for a user to replace a library on read-only
82flash storage.)
83
84- LGPL requires allowance of customer modification and reverse
85engineering for debugging those modifications. Most device makers do
86not want to have to be bound by these terms, so to minimize the burden on
87these companies we minimize usage of LGPL software in userspace.</li>
88
89- Historically, LGPL libraries have been the source of a large number
90of compliance problems for downstream device makers and application
91developers. Educating engineers on these issues is difficult and slow-going,
92unfortunately. It's critical to Android's success that it be as easy as
93possible for device makers to comply with the licenses. Given the
94difficulties with complying with LGPL in the past, it is most prudent to
95simply not use LGPL libraries if we can avoid it.
96
97The issues discussed above are our reasons for preferring ASL2.0 for
98our own code. They aren't criticisms of LGPL or other licenses. We do
99feel strongly on this topic, even to the point where we've gone out of our
100way to make sure as much code as possible is ASL2.0. However, we love all free
101and open source licenses, and respect others' opinions and preferences. We've
102simply decided that ASL2.0 is the right license for our goals.
103