许可

在 Android 开源项目 (AOSP) 中,我们的软件使用开放源代码促进会批准的一些开源许可。

AOSP 许可

Apache 许可 2.0 版 (Apache 2.0) 是 AOSP 的首选许可,大多数 Android 软件都使用 Apache 2.0 许可授权用户使用。尽管该项目尽可能遵循此首选许可,但也存在一些例外需要视具体情况处理。例如,与系统使用的许可不同,Linux 内核补丁程序使用的是 GPLv2 许可,您可以在 kernel.org 上找到相关信息。

贡献者许可协议

所有为 AOSP 贡献创意、代码或文档的个人贡献者(仅以个人名义做贡献的贡献者)都需要填写、签署并提交《个人贡献者许可协议》该协议可通过代码审核工具在线签署。它明确规定了为 AOSP 贡献知识产权内容的相关条款。该许可既是为了保护贡献者,也是为了保护该项目;它不会影响贡献者将自己的贡献内容用于任何其他用途的权利。

《企业贡献者许可协议》适用于有员工从事 AOSP 方面工作的企业(或其他实体)。该版本的协议中规定,企业可以对其指派的员工提交的贡献内容进行授权,并可以授予版权和专利许可。

我们的协议基于 Apache 软件基金会所使用的协议,其协议可在 Apache 网站上找到。

为什么使用 Apache 软件许可?

对于用户空间(非内核)软件,相比其他许可(例如宽通用公共许可证 [LGPL]),我们更倾向于 Apache 2.0(以及 BSD 和 MIT 等类似许可)。原因如下。

Android 的宗旨是自由和选择。Android 旨在促进移动世界的开放性,我们无法预测或规定我们软件的所有用途。因此,虽然我们鼓励每个人打造开放且可修改的设备,但并不认为我们有权强制他们这样做。使用 LGPL 库可能带来过多限制。以下是我们关心的一些具体问题:

  • 简单地说,LGPL 要求将源代码植入到应用中;书面提供源代码;或者动态关联获得 LGPL 许可的库,并允许用户手动升级或替换该库。由于 Android 软件通常是作为静态系统映像植入的,因此遵守这些要求将会限制设备制造商的设计。例如,用户很难在只读闪存中替换库。
  • LGPL 要求允许用户进行修改,并要求允许用户进行逆向工程以便调试这些修改。大多数设备制造商都不希望受到这些条款的约束。
  • 长期以来,LGPL 库一直是下游设备制造商和应用开发者面临的许多合规问题的根源。如果要针对这些问题为工程师提供指导,我们将面临一项既困难又耗时的工作。务必要让设备制造商能够轻松地遵守许可,这对于 Android 的成功至关重要。

鉴于上述问题,我们为自己的代码首选 Apache 2.0。这并不是批判 LGPL 或其他许可。我们感谢各种免费的开放源代码许可,并尊重其他人的许可偏好。我们只是认定 Apache 2.0 符合我们的目标。