中国国内向けファームウェア、いわゆる中国ROMを積んだAndroid端末で、Google Payの非接触決済が突然通らなくなる現象が8月1日ごろから相次いで報告されています。原因はGoogle Play開発者サービスの更新で、端末を中国向けの型番と判定するとタッチ決済の機能そのものを止める挙動が確認されました。輸入したvivoやXiaomiを普段使いしている人には他人事ではない話です。
財布は開くのに、店では通らない
厄介なのは、症状が見た目に出ないことです。Google Walletのアプリは今までどおり起動し、登録したカードも並んでいます。エラーの表示も出ません。異変に気づくのは、店頭の決済端末に端末をかざしたときです。処理が通らず、端末側には「このカードには対応していません」といった趣旨のメッセージが出ます。
報告者の1人は、前日まで問題なく使えていたvivo X200 Ultra(中国ROM)で決済に失敗し、履歴を見ると8月1日までは正常に処理されていたと説明しています。更新後は、Google Walletを開くたびに「タッチ決済の既定アプリにGoogle Payを設定してください」というポップアップが出るようになったという報告もあります。すでに既定に設定済みであってもです。
ログに残っていた「CN SKU」の3文字
原因の切り分けを進めたのは、XDA Forumsで報告を上げた開発者MarvinFS氏です。同氏がGoogle Play開発者サービスのログを追ったところ、決済を試みるたびに次の2行が記録されていました。
TapAndPay: deviceSupportsTokenization: CN SKU
TapAndPay: Disabling TapAndPay HCE service
1行目は、端末の型番(SKU)を中国向けと判定したという記録です。2行目は、その判定を受けてタッチ決済を担うHCE(Host Card Emulation)サービスを無効化したという記録になります。つまりアプリの不具合ではなく、決済機能を提供する側が意図的に機能を落としているように見える挙動でした。
発生の起点となったのは、バージョン26.28系のGoogle Play開発者サービスです。26.28.33へ更新された端末で症状が出たという報告が多く、それ以前の26.26系にとどまっている端末では影響が確認されていません。
中国ROMだけ、グローバル版は無事
対象になるのは、中国国内で購入または輸入された中国ROM搭載機に限られます。同じ機種でも、欧州など中国大陸以外で購入したグローバル版では問題が起きていません。
報告が上がっている機種には、vivo X200 Ultra、vivo X200 Pro(miniを含む)、vivo X300 Pro、vivo X300 Ultra、vivo X100 Ultra、vivo X Fold5、vivo X Fold3 Pro、OPPO Find N3、OPPO Find X9 Pro、Xiaomi 17 Ultra、Xiaomi 13 Pro、OnePlus Ace 6、OnePlus 15Tが挙がっています。特定の国に偏っているわけではなく、欧州やブラジルからも報告が届いています。中国から海外へ旅行や赴任で出ている人にも影響が及ぶ形です。
回避策は3つ、ただし手軽なのは1つだけ
コミュニティで共有された対処法は主に3通りです。
1つ目は、ADB経由でGoogle Play開発者サービスを26.26.62などの旧バージョンへ戻す方法です。ただしGoogle Walletが初期化されるためカードの再登録が必要で、しかも自動更新でいずれ元に戻ってしまいます。手間の割に持続しません。
2つ目は、Curve Payのような別のウォレットアプリを既定の決済手段に設定し、Google Walletを迂回する方法です。こちらはGoogle側の判定を回避できますが、サービスごとの制約や停止リスクをそのまま引き受けることになります。
3つ目が、実際に効いた手軽な方法です。XDA Forumsの利用者Just_Soul氏が見つけたもので、Google Playストアのベータ版プログラムから抜けるだけで復旧します。手順は、Google Playストアでプロフィールアイコンをタップし、設定から「全般」、「アカウントとデバイスの設定」へ進み、履歴の項目にある「ベータ版プログラムを終了」を実行するというものです。ベータ版に登録した覚えがない場合でも有効で、再起動後も復旧状態が保たれることが確認されています。
不具合か、それとも予行演習か
ベータ版から抜けるだけで直るということは、意図的な恒久措置ではなく、テスト中の挙動が誤って一般の端末へ配信された可能性が高いことを意味します。その後、XDA Forumsやredditには、Googleがサーバー側で修正したらしく特別な操作なしに復旧したという報告も出ています。
とはいえ、後味は微妙です。Googleは本件について公式なコメントを出していません。そして今回の一件は、Googleが中国ROM端末に限ってタッチ決済を止める仕組みを持っており、それが実際に動く状態にあることを図らずも示しました。中国ROM機を輸入して使う選択には、こうした挙動がいつ正式な仕様として降ってくるか分からないという不確実性が付きまといます。
まだ26.26系にとどまっている端末は、今のところ影響を受けていません。決済用途で中国ROM機に依存している場合は、しばらく状況を見ながら更新するのが無難でしょう。
まとめ
Google Play開発者サービスの26.28系への更新後、中国ROMを搭載したvivo、OPPO、Xiaomi、OnePlusなどの端末でGoogle Payの非接触決済が使えなくなる事象が発生しました。ログからは、中国向け型番と判定した端末のタッチ決済サービスを無効化する挙動が確認されています。Google Playストアのベータ版プログラムを終了すれば復旧し、その後Googleがサーバー側で対処したとみられる報告も出ています。Googleからの公式説明は現時点でありません。
