Honor Magic 3 Pro+ (中国版) で FCM 経由の通知を受け取る (adb 簡易版)

はじめに

2021年8月に中国で発売された Honor Magic 3 Pro+。Huawei から独立後、初の Magic シリーズです。

グローバル投入も予告され、そちらには Huawei は導入できない Google Mobile Services (GMS) も搭載されると予告されました。
Huawei は米国の制裁を受け、GMS 搭載端末を販売できず、中国版端末もグローバル版端末も、GMS のサイドロードですらかなり厳しく制限していました。

Huawei に限らず中国向け端末は基本的に GMS はデフォルト非搭載です。ただし、Huawei 以外のメーカーはサイドロードはほぼ制限しておらず、Play Store の apk だけなんとか入手できれば問題なく GMS が使えるようになることが多いです。
以上より、Huawei から独立した Honor の提供する Magic 3 シリーズの中国版は、他メーカーの中国端末と同じように、GMS のサイドロードは容易なのではという期待を持っていました。

しかし現実は甘くなく、サイドロードは Huawei 時代と同じように厳しく、かなり難解な手順を経なければなりません。
また、そうしてやっとの思いで導入した GMS も、Firebase Cloud Messaging (FCM) の通知に非対応で、FCM Push Notifications を利用しているアプリの通知は待てど暮らせど届きません。

通知問題も先人たちの知恵でいくつか回避方法が見つかっていますが、今回は、adb コマンド一発で通知が来るようになる方法をご紹介します。
なお、Mate 40 Pro あたりの機種の方法の応用のため、Magic 3 Pro+ に限らず、最近の Huawei 機種でも動く可能性があります。

私の方では、Twitter / Gmail の通知を確認しました。

事前に把握しておくべきこと

無理やり有効にするので、すべての通知がタイムリーに届く保証はありません。
また、私の方で把握しているデメリットは記載しますが、それ以外にも様々な不都合が生じる可能性があります。
完全に自己責任で行ってください。

ちなみに、現在把握しているデメリットは下記のとおりです。

Play Store が利用不可能になる (Aurora Store 等での代用を推奨します)
・通知が来ない、遅いことがある (Huawei / Honor に限らず、中国向け端末に GMS を入れたときにありがちな症状です。バッテリー最適化周りの調整で少しマシになります。)

なお、メリットとしては adb 以外のツールが不要なこと、adb さえあればとにかくかんたんなこと、また、それに伴い元の状態(作業前の状態)に戻すことが非常に容易なことです。
先述しましたが、通知を復活させる方法はいくつかあるので、まずはこの方法で試してみるのも良いかと思います。

それでは、方法について説明します。

事前準備

・対象の端末で GMS をセットアップしておく (方法は問いません)
・adb で対象のデバイスに入れるようにしておく
  → 変な adb の入れ方を教えているサイトが多いので、adb を導入していない方は、ぜひ OREFOLDER さまの記事を参考にしてください。非常にスタンダードな導入方法です。

手順

adb が使える環境で下記コマンドを実行します。adb へのパスが通っていないようであれば、`adb` は適宜置き換えてください。

adb shell pm disable-user --user 0 com.google.android.gsf

上記がエラーなく実行できれば、PC を使った作業は完了です。USB ケーブルは外しても大丈夫です。

その後、設定アプリからアプリの一覧を開き、右上メニューから「システムプロセスを表示」的なメニューを選択(英語設定で使っているので、日本語翻訳は違う可能性があります)し、検索窓に "google" と入力します。

画像1

その後、出てきた "Google Services Framework" を選択し、Force Stop (強制停止?) ボタンが押せるようであれば押して強制停止します。
下記のスクリーンショットはすでに作業後で押せなくなっています。

画像2

ここまで来たら作業完了です。なんと説明よりもまえがきのほうが長くなってしまいました。端末を再起動すれば通知が来るようになっているかと思います!

FAQ

通知が届きません
この作業をする前に入っていたアプリだと届かないかもしれません。再インストールなどすると良いかもです。

作業前の状態に戻りたいです
以下の画面で Enable (有効化) を押せばよいです。(矢印の示すボタンとは違います。)あとは念の為端末再起動。

画像3

最後に

結局キモは "GSF を無効にすること" なので、adb 以外で無効にしてもよいです。
一時的に有効にしたいようなシチュエーションが多いようであれば、一度設定すれば端末内で有効・無効が完結する IceBox などのアプリを利用するのもおすすめです。

またはカスタム GSF を利用する方法や、GSF のバックグラウンド動作を appops で停止させる方法などもあるようなので、今回の方法がうまく行かなかったり、満足できない方はぜひそちらの方法も検討してみてください!

この方法で動いたよ的な報告もぜひぜひ Twitter @chiisama14 までお寄せください!こちらの記事にて紹介させていただければと思います!

この記事が気に入ったらサポートをしてみませんか?