
開発者サービスがインストールされてないGratina 4G KYF31でIFTTTアプリを走らせるとこのようなエラー
Android端末ユーザーを7年?ほどやってるが,「開発者サービス」( “Google Play Services” )という言葉は聞くもののよく理解していなかった。「Androidアプリ開発者を助けるライブラリ」などというあまりよくわからない説明しか見てなかった。だが最近開発者サービスがインストールされてないGratina 4G KYF31をいじるようになって,もう少しは理解しなくてはならなくなった。
Google自身による公式の情報を探したかったが, “What is the exact functionality of Google Play Services & Google Services Framework (gapps)? – Android Enthusiasts Stack Exchange” ぐらいしか素人にも分かるものは見当たらなかった。Google Mobile Services (GMS) というのは,Googleが提供しているモバイルデバイス向けのGoogle,YouTube, Chromeブラウザ,マップ,等の基本アプリ群と,それらが使用するAPIである。APIを実現するのは通常ライブラリだが,それもアプリとして提供され,開発者サービスはその一つだと理解したほうがよさそう。GMSを構成するアプリ群は俗に “GApps” と呼ばれているようだ。
APIを実現するアプリは,「ライブラリ・アプリ」とでも呼べばいいようなものだが,開発者サービスアプリのようにAndroid機にインストールはされていてもユーザが直接操作することのないものだけでなく,例えばPlayストアアプリのようにAPIを提供しつつ,一般ユーザが実際に直接操作する対象であるようなものもある。どう呼ぶのが適切かわからないが,ここでは便宜的に「GMSライブラリ・アプリ」と呼ぶことにする。日本語の文書であれ英語のそれであれ,これらを総括的に「開発者サービス」( “Play Services” )と呼ぶことはよくなされているようだ。
多くのAndroidアプリがGMSライブラリ・アプリに依存しているため,それらがインストールされていない素のGratinaでは,そのままではそういったアプリを走らせることはできない。
Android自身(正確にはAndroid Open Source Project (AOSP) )はOSSであっても,GMSはそうではない( “While the Android Open Source Project (AOSP) provides common, device-level functionalities such as email and calling, GMS is not part of AOSP. GMS is only available through a license with Google and delivers a holistic set of popular apps and cloud-based services.” )。GMSはGoogleのプロプライエタリなプロダクトであり,Androidアプリ開発者にGMSを使わせることで,GoogleはAndroidのエコシステムの手綱を握ってる,ということのようだ。”What is the exact functionality of Google Play Services & Google Services Framework (gapps)?” では,Doze状態でバッテリ消費を抑えつつクラウドからメッセージを受けるには, Googleが提供している Firebase Cloud Messaging (FCM)を利用するしかない,という話を紹介している。ということはGMSに依存しなくてはならない。
GMSライブラリ・アプリは以下からなる:
- 開発者サービス “Google Play Services” (
com.google.android.gms
) — 以下以外の多くのサービス - フレームワーク “Google Services Framework” (
com.google.android.gsf
) — 主にクラウドメッセージング(あとcom.google.android.gsf.login
によるGoogleアカウント管理?) - Playストア “Google Play Store” (
com.android.vending
) — アプリ内課金,ライセンス管理,Playプロテクト
Androidは公式のPlayストアだけでなく,多くのサードパーティーのアプリストアがあるが,それらの間で扱ってるアプリ数に大幅な違いがあることがやっと理解できた。公式ストアはGMSに依存したアプリを扱っている。それを単純にコピーして蓄積しているだけと思われるサイト(例えばAPKMirror.com,APKPure.comなど)は原理的に扱うアプリ数は大差なくできる。
しかし,自社のFireデバイス向けのアプリストアAmazonアプリストアでは,Fireデバイス自身にGMSがインストールされていないため,GMSに依存しないアプリしか扱ってない。Amazonが自前でGMSの一部に相当するライブラリを用意して,アプリ開発者にはそれを使って書き直すよう依頼している( “Migrating An Existing App to the Amazon Appstore | Appstore Submission” )。アプリ開発者にとっては余計な手間が発生するのでそれをやる人は限られて,結果的にそうやって書き直されてAmazonアプリストアに収録されるアプリ数は少なくなる。Fireデバイスユーザとしてはそういう状況に不便を感じる人は当然いて,自分でインストールしようとする試みがなされる(例えば “Installing Google Framework/Playstore withou… | Amazon Fire” )。
似通った話で,現在HuaweiはGoogleからソフトウェア・ライセンスを受けることができない。そのためGMSを新たなそのAndroidモデルに搭載できない。( “Huawei wants to put Google apps in its own app store after Android block” なんかでは,「Androidのライセンスを受けられない」などという紛らわしい表現をしている箇所があるが,GMSのライセンスが受けられない,ということ。)Huawei App Galleryという自前のアプリストアを始めたようだが,やはり品揃えは薄いよう。
F-Droidは “FOSS (Free and Open Source Software)” なAndroidアプリを扱うレポジトリ。なのでGoogleのプロプライエタリな “Play Services” に依存するものは含められないとしている。なので,例えば,インスタントメッセージングのオープンプロトコルMatrixのクライアントRiotのAndroid版で,Playストアに収録されているものと,F-Droidにあるものが異なったりする。前者はGoogle Cloud Messagingを利用しているが,後者はしていない。後者はそのためより電池を消費するとのこと。
さて,GMS(の「ライブラリ・アプリ」)を部分的にしろ置き換えようとする,オープンソースのMicroG Projectというのがある。しかし,Signature Spoofingができないとインストールできないとのこと。そのためには,カスタムROMか,TWRPのようなカスタムリカバリが使える必要があるようで,実際に使用できるには敷居はかなり高い。
ちなみに,MicroGとよく組み合わせて使われる⇒同じようなコンテキストで語られることが多いのがOpen GApps(FAQs)。Android端末によくプリインストールされているGoogle謹製のアプリをまとめてインストールできるよう,その内容の多寡でいくつかのバンドルが用意されている。MircoGのように,Google製アプリをオープンソースソフトウェアで置き換えようとするようなものではない。MicroGがカバーしようとする部分とかぶっているが,その部分を除いてMicroGと併用する,というような使い方もできたかと(記憶があやふや)。カスタムROMなどで,カスタムリカバリからzipファイルを焼くことが想定されているので,一般ユーザーにはまず縁がないと言える。
「Androidの開発者サービス」への4件のフィードバック