ライセンス

Android オープンソース プロジェクト(AOSP)は、そのソフトウェアに対し、オープンソース イニシアティブで承認されたいくつかのオープンソース ライセンスを使用しています。

AOSP のライセンス

AOSP の優先ライセンスは Apache License バージョン 2.0(Apache 2.0)であり、ほとんどの Android ソフトウェアは Apache 2.0 に基づいてライセンス供与されます。AOSP では、可能な限りこの優先ライセンスを採用するようにしていますが、個々の状況によって別のライセンスが採用される場合もあります。たとえば、Linux カーネルのパッチには、システム例外付き GPLv2 ライセンスが採用されています。このライセンスについては、kernel.org をご覧ください。

コントリビューター ライセンス契約

AOSP にアイデアやコード、ドキュメントを投稿する個人コントリビューター(代理ではなく自分自身でコントリビューションを行う個人)は、個人コントリビューター ライセンス契約に記入、署名して提出する必要があります。このライセンス契約は、コードレビューツールを通じて、オンラインで締結できます。このライセンス契約には、AOSP に知的財産を投稿する場合の規約が明確に定められています。このライセンス契約は、プロジェクトの保護と、個人コントリビューターの保護を目的としています。コントリビューターが他の目的のために自身のコントリビューションを使用する権利を変更するためのものではありません。

企業コントリビューター ライセンス契約は、AOSP にかかわる従業員が所属する企業(または他の事業体)を対象としています。このライセンス契約の下で、企業は、指定従業員が投稿したコントリビューションを承認し、著作権と特許ライセンスを付与することができます。

各コントリビューター ライセンス契約は、Apache Software Foundation が使用しているライセンス契約に基づいています。詳細については、Apache ウェブサイトをご覧ください。

Apache ソフトウェア ライセンスを採用しているのはなぜですか?

Google は、カーネル以外のユーザー空間のソフトウェアに関して、LGPL(Lesser General Public License)などのライセンスよりも、Apache 2.0(ならびに BSD や MIT などの類似ライセンス)を優先しています。その理由は以下のとおりです。

Android は、自由と選択を基本としています。Android の目的は、モバイル環境全体をオープンなものにしていくことであり、ソフトウェアのすべての使用方法について Google が管理したり予測したりすることはできません。そのため、Google は、すべての参加者に対し、オープンで自由に変更できるデバイスの開発を推奨していますが、それを義務付けようとは思いません。LGPL ライブラリを使用すると、制約が増える可能性があります。具体的な懸念事項を以下に示します。

  • 端的に言えば、LGPL では、アプリソースの配布や、書面によるソースの提供、あるいは、LGPL ライセンス ベース ライブラリと動的にリンクさせてライブラリの手動更新や置き換えをユーザーに許可することが求められます。Android ソフトウェアは通常、静的システム イメージとしてリリースされるため、このような要件を遵守しようとすると、デバイス メーカーの設計に制約が課されることになります。たとえば、読み取り専用のフラッシュ ストレージ上にあるライブラリをユーザーが置き換えることは困難です。
  • LGPL では、ユーザーによる編集と、そのような編集をデバッグするためのリバース エンジニアリングを許可することが義務付けられています。ほとんどのデバイス メーカーは、このような規約に拘束されることを望んでいません。
  • 歴史的に、LGPL ライブラリは、配布過程の下流に位置するデバイス メーカーやアプリ デベロッパーにとって、コンプライアンスに関するさまざまな問題を引き起こす要因となってきました。このような問題についてエンジニアに熟知してもらうには、大変な労力と時間が必要になります。デバイス メーカーによるライセンスの遵守をできる限り容易にすることが、Android 開発を充実させるうえで不可欠です。

Google がコードに関して Apache 2.0 を優先するのは、上記のような問題があるためです。ただし、LGPL や他のライセンスを批判する意図はありません。Google は、すべてのフリー ライセンスやオープンソース ライセンス、ならびに他の企業や団体のライセンス採用方針を尊重しています。Apache 2.0 を採用しているのは、Google の目標に適していると判断したためです。