追記: 2018/4/4
まとめ記事をポストしました。最新情報についてはこちらをご参照ください。
XDA Developersの記事で、Googleが非認証端末でのGoogle Apps (Playストアをはじめとする基本的アプリ群)の使用をブロックし始めたと報じられました。(XDA Developersをもとにした日本語記事はこちら)
- Google now blocks GApps on uncertified devices, but lets custom ROM users be whitelisted (XDA Developers)
- Google、非認証デバイスでGAppsのブロックを開始。カスタムROMはホワイトリストに登録可能 (Dream Seed)
ひと言でいうと、以下の二つの条件を満たす端末からGoogleアカウントへのサインインが行えなくなる、ということです。この結果、Playストアが使えなくなりますので、アプリのインストールや更新が非常にめんどうになり、端末使用時の利便性が著しく損なわれます。
非認証端末であること
Googleが定義するCTS (Compatibility Test Suite)にパスしていない端末や、カスタムROMがインストールされている端末などが該当します。
2018/3/16以降にビルドされたファームウェアがインストールされていること
Googleがどのようにしてビルド日時の判定を行なっているかは、今のところ不明のようです。(上記、XDA Developersの記事では、ビルドのフィンガープリントプロパティを用いているようだ、との記述あり。)
ちなみに、本題とはあまり関係ありませんが、ビルド番号からビルドの日付を取得するには以下のURLが便利です。
さて、ブロックされる条件はわかったのですが、どうすればいいのでしょうか?
まず、手もとの端末が認証済みかを確認しましょう。確認する方法はとても簡単です。Playストアを起動して設定メニューを選択してください。一番下に端末の認証状態が表示されます。(下図)
認証済みでしたか? おめでとうございます! これ以上読み進めていただく必要はありません。ほかのもっと楽しいサイトを訪れましょう!
残念ながら「認証されていません」と表示されてしまいましたか? もし、カスタムROMなどの改造ファームウェアをインストールしていない状態であれば、端末自体が認証されていない、ということになりますね。この場合はどうしたらいいのでしょうね? 端末メーカーに認証を取得するよう働きかけるか、今後のファームウェアアップデートをあきらめるか、になるのでしょうか。
カスタムROMをインストールしている場合は対応策があり、下記のいずれかを実行することでGoogle Appsのブロックを回避できるようです。
Android IDをGoogleに登録
こちらが公式の対応策です。上記、GoogleのWebサイト上でAndroid IDを登録します。これによって、該当するAndroid IDを持つシステムではGoogle Appsを使えるようにするものです。
Android IDを確認するには、Android端末を母艦端末(FreeBSDマシンなど)に接続して、以下のコマンドを実行します。
adb shell settings get secure android_id
登録できるAndroid IDは、一つのGoogleアカウントにつき最大100個までとなっています。したがって、頻繁にファクトリリセット(端末のワイプ)とカスタムROMのフラッシュを繰り返すような使い方では、100個使い切らないように気を付ける必要があります。
Titanium Backup Proには、ファクトリリセット前のAndroid IDを復元する機能があります。しかし、復元がうまくいかないことがありますので注意が必要です。(少なくとも、Dirty Unicorns 12 (Oreo 8.1)をフラッシュした後は復元できませんでした。)
Android Developers Blogの記事で、OreoではAndroid IDがデバイス単位からアプリ、ユーザ単位のIDに変更になったことなどが述べられており、これが関係していそうな気がします。(参考: Changes to Device Identifiers in Android O)
Magiskをインストール
別の対応策として、上記Android Policeの記事で述べられている方法です。非公式な方法ですが、Magiskをインストールする副作用(?)として、認証済み端末にする(見せかける)ことができます。
最後にご参考として、手もとにある端末(Galaxy Nexus, Nexus 7 (2013), Nexus 6, Jelly Pro)の状況をまとめて示しておきます。
端末 ファームウェア 端末情報、認証状態 Galaxy Nexus Unlegacy Android 7.1.2 (Nougat) + Magisk Nexus 7 (2013) AICP 13.1 (Oreo) + Magisk Nexus 6 Dirty Unicorns 12 (Oreo) + Magisk Jelly Pro Stock (Nougat) Jelly Proは非認証端末だったんですね…。近々Oreoにアップデートする計画があるときいていますけれど、どうなるのかなあ…。
いまのところのまとめとしては、この四つの端末のいずれもGoogleアカウントへのサインインはブロックされていません。いずれでも、Playストアも問題なく使えています。
参考文献
- Google now blocks GApps on uncertified devices, but lets custom ROM users be whitelisted, https://www.xda-developers.com/google-blocks-gapps-uncertified-devices-custom-rom-whitelist/
- Google、非認証デバイスでGAppsのブロックを開始。カスタムROMはホワイトリストに登録可能, https://www.dream-seed.com/weblog/news/google-block-gapps-uncertified-device
- Changes to Device Identifiers in Android O, https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html
- Google is starting to block GApps on ‘uncertified’ devices, but you can register an exemption for ROMs, https://www.androidpolice.com/2018/03/25/google-starting-block-gapps-uncertified-devices-can-register-exemption-roms/