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