はじめに
「Androidはオープンソース」ということは、多くの皆様がご存知だと思います。
ですが、Androidの開発元がどこで、どのようなライセンスで、どのように皆様のスマートフォンに搭載されているか、説明できる方は少ないと思います。
また、少し前に、Huaweiがアメリカに経済制裁を受けた影響で、「Huaweiのスマートフォンは今後、Androidが販売できない」のような『噂』が流れました。
ですが、そのような噂には間違いがあります。
今回は、Androidの成り立ちや開発、ライセンスについて、少し深堀りしていきたいと思います。
※指摘や修正依頼、大歓迎です!
AndroidのOS開発の流れ
Androidは以下の画像のような流れで開発され、ソースコードが公開されています。
次期バージョンをGoogleがクローズドソースとして開発
Androidの次期バージョンは、オープンソースとなる前に、まずGoogleによって、クローズドソースとして開発されます。
AOSPに公開
その後Googleによって、**Android Open Source Project (AOSP、Android オープンソースプロジェクト)**に、ソースコードが公開されます。
こちらの記事は、2019/9/3に、Android10のソースコードがAOSPに公開されたニュースになります。
ソースコードやリリースノートはこちら
また、この時点でのAndroidは時折、「素のAndroid」と呼ばれます。
素のAndroidには、必要最低限の機能とアプリのみ搭載されています。
この「素のAndroid」に搭載されているアプリは、主に以下のようなものがあります。
- アルバム
- 電卓
- カレンダー
- カメラ
- 時計
- 電話帳
- 電話
- Eメール
- ホーム
- IM
- メディアプレーヤー
- フォトアルバム
- SMS/MMS
そして、この「素のAndroid」のOSSライセンスは、「Apache 2.0」となっています。
参考:https://source.android.com/setup/start/licenses
Apache 2.0は非コピーレフトのライセンスなので、素のAndroidをカスタマイズしたとしても、カスタマイズ後のソースコードを公開する義務はありません。
Googleのアプリ追加
この「素のAndroid」について、気付いた方は気付いたかもしれませんが、この時点では、「Google Chrome」や「Google Map」「Google Play」など、Googleのアプリが追加されていません。
素のAndroidには、Googleのアプリが含まれないことになります。
では、Googleのアプリはどのように追加されるかというと、それは**Google Mobile Services (GMS)**という、Googleが提供するサービスによって追加されます。
これらのサービスは、Googleのライセンスによって提供されます。そしてGoogleの提供するアプリケーションは、オープンソースではありません。
※ちなみに、ここでいう「Google」は、Androidの開発版を開発していたGoogleとは分けて考えたほうが良さそうです。
GMSで含まれるアプリは、以下のようなものです。
- Google検索
- Google Chrome
- YouTube
- Google Play ストア
- Google Drive
- Gmail
- Google Map
- Google Photos
Googleは、「Google モバイルサービス(GMS)」を無料で、端末のメーカーにライセンス供与しています。
しかし、これは一定の基準が満たされた場合に限られます。
だいたいの端末は、これらのGMSによって、Googleのアプリケーションが追加されていますが、中にはそうではないスマートフォンもあります。
各メーカーが申請し、Googleが許可した場合のみ、Googleのアプリケーションが追加されるわけです。
自社の端末用にカスタマイズ
そして、「素のAndroid」をベースに、各スマートフォン開発会社は、自社の端末(スマートフォン)用に、Androidのカスタマイズやコードの追加を行います。
例えば私が愛用する、SamsungのGalaxy Note8は、「Sペン」という、付属ペンを使用してスマートフォンに文字や絵を描ける、という機能があります。
この機能は当然、他のメーカーのスマートフォンには搭載されていません。これはSamsungが、素のAndroidをカスタマイズし、機能追加を行ったということになります。
同じバージョンのAndroidだったとしても、メーカーやスマートフォンによって機能に差が生じるのはこのためです。
また、素のAndroidのライセンスはApache 2.0なので、このカスタマイズ内容をオープンソースとして公開する義務はありません。
(素のAndroidのライセンスを明示する必要はありますが)
各メーカーはこれらの作業を、行うことによって、Androidのスマートフォンのプリインストールを設定していきます。
みなさんが「Android」と思っていたものは、実は
- Android AOSP
- Google Mobile Services
- 各メーカーが独自に追加した機能
の3つの組み合わせだったんですね。
(※GMS→独自機能と書いてますが、正確にはこの順番じゃないかもしれません。平行かもしれない。イメージとして考えてください)
Huaweiの新端末
2019/09/19、Huaweiは「Mate 30」という新スマホを発表しました。
前述の問題から、「HuaweiからAndroidの新スマホは出ないのではないか」とも言われてましたが、決してそんな事はありませんでしたね。
https://japanese.engadget.com/2019/09/20/mate-30-google-play/
ですが、ここで面白い事実があります。
それは、「このMate 30には、Android OSを搭載するスマートフォンにかかわらず、Google Play Storeを含む各種Googleサービスが非搭載」ということです。
これまでの話が無かったら、「なぜ???」と思う方もいるかもしれません。
ですが、ここまで話を読んでくださった方なら、きっとわかると思います。それはつまり、
- Android AOSPはオープンソースだから、事情があってもHuaweiの新スマホに搭載できた
- でもGoogleのアプリケーションはGoogleへの申請が必要だから、経済制裁によって許可が下りなかった
- なので、Android搭載だけどGoogleのアプリケーションは非搭載になった
ということなのです。
ちなみに時々、「今はHuaweiもAndroidを搭載できるけど、将来的にはGoogleが制約を掛けて、Androidの搭載も出来なくなるかもしれない」という記事を見ますが、それは99.99999%ないと考えます。
なぜなら、オープンソースの定義で「個人やグループに対する差別の禁止」というものがあるからです。
仮にそんな事はあったら、それはオープンソースの原理原則を捻じ曲げることになります。
なので絶対無いです。きっと。
ですが、「Google Playストアが利用できない」という状況は、今後も継続するかもしれません。
Google Playストアには本来、素晴らしいAndroidアプリがたくさんありますので、「それらのアプリが利用できないスマートフォン」というのは、Huaweiにとって非常に痛手であることには変わりません。
そのため、Huaweiは現在、独自のストアを用意する、ということは噂されていますね。どうなることやら。
まとめ
以上、Androidとオープンソース、Googleの関係、ならびにHuaweiについて語りました。
普段Androidをお使いの方は、「これはどのフェーズで作られたものなんだ!?」と妄想すると楽しいかもしれません。
また、オープンソースを勉強するにあたって、良い題材になるとも思います!