160
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Huaweiから学ぶ、AndroidのOS開発やライセンス

Last updated at Posted at 2019-09-27

はじめに

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つの組み合わせだったんですね。

流れをまとめると、こんな画像になるでしょうか。
Android2.png

(※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をお使いの方は、「これはどのフェーズで作られたものなんだ!?」と妄想すると楽しいかもしれません。
また、オープンソースを勉強するにあたって、良い題材になるとも思います!

160
80
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
160
80

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?