Gadgets技術ネタ

Root取得したAndroidでGoogle Payや銀行アプリなどを使う方法

Gadgets
※ 一部の外部リンクは広告を含む場合があります
スポンサーリンク

どんな記事?

Bootloader UnlockおよびRoot化したAndroidでSafetyNetやPlay Integrityのチェックをパスして、決済系アプリやチェックの厳しいアプリを使うための手順やノウハウをまとめました。特定機種向けではなく、汎用的な内容となっています。

Google Payに登録したSuica, PASMO, QUICPay、おサイフケータイに登録したiDなどで決済できることを確認しています。またSuicaとPASMOにはGoogle Pay経由、公式アプリ経由の両方でチャージできています。

Pixel 7でRootを取得するまでの手順は以下の記事をご覧ください。

決済アプリやサブスク、ソシャゲアプリを使うためにやること

大半のアプリはRootを取っただけでも使えるのですが、決済系アプリや動画配信サービスのアプリなどは起動することができないものも多くあります。またNetflixやKyashのようにPlay ストアで検索しても結果に表示されないものもあります。

そこでMagiskのパッケージ名を変更したりDenyListを構成したり、モジュールを用いてRoot状態を秘匿することである程度はチェックを回避することができます。

Magiskを隠す

デバイスに存在するパッケージの有無でRoot状態を判別するアプリからMagiskを秘匿するため、デフォルトのcom.topjohnwu.magiskというパッケージ名からランダム生成のパッケージ名に変更することができます。Magiskの設定 → Magiskアプリを隠す、を選択します。

アプリ名はこのままでいいでしょう。

しばらく待ちます。

Magisk再起動後にアプリのパッケージIDがランダムなものになっていれば成功です!

Zygiskを有効にする

ZygiskとはMagisk v24から実装された機能で、Zygoteというプロセスの中でMagiskの一部を実行するための仕組みです。v24以前でRiruなどのモジュールを使っていた方には、Riruが担っていた機能がMagisk本体に統合されたと表現すれば分かりやすいでしょうか。
現在は大半のモジュールがRiruからZygiskに移行していますので、難しいことを考えなくてもとりあえず有効にして大丈夫です。有効にしたら再起動しましょう。

DenyListの構成

Zygiskを有効にしたら、次にDenyListを構成します。少し紛らわしいのですが、「DenyListを適用」と「DenyListを構成」は別のものなので、「DenyListを適用」を有効にせず「DenyListを構成」だけ行います。

DenyListを適用してしまうとMagiskの適用対象からも外れてしまうため、Magiskモジュールなども動作対象外となってしまいます。DenyListを適用しなくても後述のモジュール「Shamiko」と「Universal SafetyNet Fix MOD」、そしてDenyListの組み合わせで回避できますので、Shamikoのインストールとセットだと思ってください。

DenyListにはMagiskによるRoot状態を秘匿したいアプリを登録します。基本的にはGoogle Play ストアや開発者サービス、Google Payなどの決済や銀行のアプリ、NetflixなどDRMを使う動画や音楽配信アプリ、ソーシャルゲームの大半などが対象ですが、Root権限を要求しないアプリなら登録しても害はありません。もし警告が出て起動しなかったり、一瞬だけ表示されて落ちる場合はDenyListに入っているか確認しましょう。
意外にもおサイフケータイ系のアプリ、SuicaやPASMOはDenyListに追加しなくても起動しましたが、もしエラーになるアプリがあったらDenyListを疑ってください。

DenyListに登録したあと該当アプリのタスクキル → 再起動で済むものもありますが、中には再起動が必要になるアプリもあるようです。

またDenyListに登録する必要はなくても、後述のLSPosedとDevOptsHideHide USB Debug Modeが必要だったり、Hide My ApplistでMagiskやRootを使うアプリを隠さないと動作しないアプリもあります

DenyListに追加する必要があるアプリ

  • Google Play ストア
  • Google Play 開発者サービス
  • Google Play プロテクトサービス
  • Google Pay

他にも以下のようなアプリはDenyListに追加する必要がありました。
LOFTとかイオンモールアプリみたいな クソ ゴミ うんち なアプリがRootチェックしてるの笑っちゃうよね……

  • LOFT
  • えきねっと
  • イオンモールアプリ
  • セブンイレブン
  • 住信SBIネット銀行
  • Starbucks
    アプリは起動できますが、クレカからのチャージでエラーになります

警告が出ますがそのまま使えるアプリもあります。

  • 楽天ポイントカード
  • Amazon Photos
    設定の下部に警告表示

Play Integrity Fix

以前はUniversal SafetyNet Fixを使っていましたが、最近だとPlay Integrity Fixを使えば問題なく使えています。以前は併用することになっていましたが、最近のバージョンからはUniversal SafetyNet Fixが不要になるためインストール時にUSNFを消す処理が走るようです。

Universal SafetyNet Fix MOD(今は不要)

2023年10月現在はUniversal SafetyNet Fixではなく、前項のPlay Integrity Fixを使うことでPlay Integrityをパスすることができます。以下、以前の解説も残しておきます。

決済系のアプリを使うときは特にSafetyNetのチェックを通過することが必要です。Universal SafetyNet FixというMagiskモジュールを使うことでSafetyNetを通すことができまました。

しかし現在はSafetyNetに替わるPlay Integrityという仕組みに変更が順次進んでおり、従来のUniversal SafetyNet FixではSafetyNetのチェックを通過することができなくなります(デバイスやOSのバージョンなどによりタイミングは異なります)。事実Android 13に更新したPixel 6で2022年8月頃からGoogle Payが使えなくなり、当然Pixel 7でもそのようになりました。

Universal SafetyNet Fixの最新版は2022年06月22日にリリースされたv2.3.1ですが、このバージョンではPlay Integrityをパスすることができず、Google Payなどは使用不可能になります。

そこでXDAのスレッドに投稿されたUniversal SafetyNet Fix MODを使うことで、現状では引き続きGoogle Payなどを使用することが可能になります。XDAより最新のものをダウンロードしてください。

Googleにより穴がふさがれてしまったため、MEETS_STRONG_INTEGRITYをパスすることはできなくなりました。

v2.4.0-MOD_2.0がリリースされています。

これによりMEETS_STRONG_INTEGRITYをパスすることが可能になりました!

追記(2023/02/10)

Universal SafetyNet Fix v2.3.1-MOD_3.0 がリリースされています。

2023/01更新およびPlayシステムアップデート後にSafetyNetやGoogle Payの認証が外れるときがあったのですが、これで解決するかな…?🤔

追記(2023/01/10)

Universal SafetyNet Fix 2.4.0にてPlay Integrity APIのチェックを通過できるようになりました。

Shamiko

ShamikoはDenyListと組み合わせて、従来のMagisk Hideと同等の効果を発揮します。モジュールをインストールするだけでOKですが、前述の通り「DenyListを適用」していると動作しないので要注意です。
ちなみにShamikoはオープンソースではないので、TelegramやXDAではその点を気にするユーザーもいるみたいです。

Hide My Applist

Hide My Applistは指定したアプリを、別の指定したアプリから隠すために使います。例えばGoogle Play ストアに対してYouTubeを隠すと、Google Play ストアからはYouTubeが未インストールのように見えるというわけです。
Magisk本体のようにパッケージ名をランダムにすることができないアプリやLSPosedモジュールを隠すことで、Root権限を使うアプリ(Fake LocationやStorage Isolationなど)をあたかも使っていないように見せかけることができます。

v2系で開発終了がアナウンスされていましたが現在は主にTelegramでv3系の開発が進んでおり、記事執筆時点では3.0.5 Betaが公開されています。

v2系を使っていてv3系にバージョンアップする場合、事前にHMAのMagiskモジュールをアンインストールする必要があります。さもないとブートループに陥ると書いてありました

LSPosed

後述の「DevOptsHide」や「Hide USB Debug Mode」を使用するために必要です。

LSPosedはAPKを改変することなくシステムとアプリの動作を変更できるモジュールのフレームワークです。カスタムROMと違い、異なるバージョンやROMでも動作し、モジュールをアンインストールするだけで元に戻すことができます。

riruではなくzygisk向けのものをダウンロードするよう注意してください。

DevOptsHide

指定したアプリに対して、開発者向けオプションを有効にしていることを秘匿します。Hide USB Debug Modeと組み合わせて使ったりします。

IAmNotADeveloper

こちらも開発者向けオプションを隠すモジュールです。こっちのほうが新しい。

Hide USB Debug Mode

指定したアプリに対して、USBデバッグを有効にしていることを秘匿します。DevOptsHideと組み合わせて使ったりします。

BootloaderSpoofer

Bootloaderの証明書の状態を偽装するようです。

You won’t pass MEETS_STRONG_INTEGRITY using this.

とのことですが、現状だと関係なさそうです。

SafetyNet / Play Integrity のチェック

前項までのモジュール(その他以外)を入れて設定を行った場合のSafetyNet APIとPlay Integrity APIのチェック結果を紹介します。チェックには下記のアプリを用いました。

チェック結果

この状態でGoogle Payなどが使えています。

YASNAC – SafetyNet Checker


Basic integrity: pass
CTS profile match: pass

Play Integrity API Checker

MEETS_DEVICE_INTEGRITY: pass
MEETS_BASIC_INTEGRITY: pass
MEETS_STRONG_INTEGRITY: fail

MEETS_DEVICE_INTEGRITYアプリは、Google Play 開発者サービスを搭載した Android デバイスで動作しています。このデバイスはシステム完全性チェックに合格し、Android の互換性要件を満たしています。

MEETS_BASIC_INTEGRITYアプリは、基本的なシステム完全性チェックに合格したデバイスで動作しています。このデバイスは Android の互換性要件を満たしておらず、Google Play 開発者サービスの実行を承認されていない可能性があります。たとえば、認識されていないバージョンの Android を搭載している、ブートローダーがロック解除されている、メーカーによる認定を受けていない、などの場合があります。

MEETS_STRONG_INTEGRITYアプリは、Google Play 開発者サービスを搭載した Android デバイスで動作しており、システム完全性の強力な保証(ハードウェア格納型のブート完全性保証など)が存在します。このデバイスはシステム完全性チェックに合格し、Android の互換性要件を満たしています。

まとめ

この記事はAndroid 13が動いているPixel 7で検証した結果を元に執筆しています。今後も変更があれば記事を更新するので、動作しなくなってしまった場合は確認してみてください。

コメント時の注意

◯◯というアプリが起動しませんというコメントが増えてきています。
アプリ名を言われただけでは特定できないものも多いので、コメント内にストアのリンクかパッケージ名を記入してください。
また必ずしも私の環境でチェックすることを保証するものではありませんし、チェックするにしてもこの記事で紹介している方法以外のことを試すつもりもありません。

私自身がゲームをしないので、ゲーム系アプリの検証はしませんのでご注意ください。
(サイズが大きく手間がかかることが多いので)

その他一般的なルールとして、自分でどんなことを試し、なにが駄目だったのか、期待する結果はどのような状態なのかをはっきりとさせてください。
起動しません動きませんではなく、正常に起動した場合どうなるのか、現状だと起動すらしないのか、あるいはエラーのダイアログが出て強制終了するのか、詳しく書かないとこちらで確認できません。
決済であればアプリでチャージが成功したかどうか、他端末で残高を読み取れたか、具体的に決済に成功したかどうかなど、詳しい情報が必要です。

ここはサポートフォーラムではなく、ただのブログの記事に過ぎません。
ルールが守られていない場合はコメントに対応しかねる場合があります。ご了承ください。

コメント

  1. ユサ より:

    ゆうちょ通帳アプリはだめですが他の方法はありますか?

    • かなで より:

      Pixel 7の2023/01アップデートにて、ゆうちょ通帳アプリの確認をしてみました。
      MagiskのDenyListとHide USB Debug Mode (+LSPosedの対象)にしただけで起動できました。
      もう一度お試しくださいませ。

  2. チウコ より:

    root化でおサイフケータイ系のアプリが正常に使用できますか?

    • かなで より:

      おサイフケータイおよびGoogle Payに「iD」「QUICPay」「Suica」「PASMO」「nanaco」「楽天Edy」を登録し、各公式アプリも入れていますがすべて使用できています。
      またPayPayなどのQRコード決済アプリも使えています。

    • 匿名 より:

      ありがとうございました!

  3. チウコ より:

    今やってみました、suicaできるのですが、IDはできません。

    • かなで より:

      iDというのは公式アプリのことでしょうか?
      それとも実際に決済をするときにエラーになりますか?

      クレカ会社によってはアプリが違うかもしれませんが、僕は以下のもので確認しました。
      https://play.google.com/store/apps/details?id=jp.id_credit_sp2.android&hl=ja&gl=US&pli=1

      使用端末やOSのバージョン、Root関連で入れているアプリなどを教えていただければ、もう少し分かるかもしれません。

  4. laogongniu より:

    Google Payのクレジットカード登録及びNFC決済は利用できるようになりました。助かりました!
    機種:OnePlus Ace pro
    OS: OxygenOS13.1 (Android 13)

    • かなで より:

      お役に立てたようで良かったです!

  5. 通りすがり より:

    safetynet-fix v2.4.0-MOD_1.3リリースされたので記事を更新していただけると助かります!

    • かなで より:

      コメントありがとうございます!
      時間あるときに記事更新させていただきますね!

  6. 匿名 より:

    galaxy S21 ultraを使っているのですが、NFCの機能がグレーアウトしておりオンに出来ません…
    SafetyNetもPlay Integrity APIも記事の通りに合格できています。
    アプリは起動するのですがNFCが使えないため非接触決済のみ使えない状態です。

    • かなで より:

      アンロック、あるいはRootを取った時点でNFCは使えていたのでしょうか?
      NFCそのものが無効になってしまうケースは私自身は経験したことがありません。
      またキャリア版なのかSIMフリー版なのかによっても変わってくると思いますので、もう少し情報がないとなんとも言えない状況です。

    • 匿名 より:

      アンロックした時点でグレーアウトしてたと思います。
      ドコモ版です。

    • かなで より:

      私はキャリア版のスマホはまったくと言っていいほど使っていないので、知見がなくお役に立てそうにありません。申し訳ないです…
      一般的な問題の切り分け方法としては、再ロックしてもかまわない環境なら再ロックしてNFCを確認してみる、などでしょうか。
      アンロック前には使えていたのなら、メーカーや機種によって何らかの制限がかかっているかもしれません。

    • かなで より:

      開発者向けのDiscordでこのような発言がありました。

      Galaxyは国内版でもBLU出来るしカスタムROM入れたりroot取れますが、Knoxと純正ROMではNFC死ぬのが難点。だそうです。

  7. かいるん より:

    ミラティブと言う配信アプリが不正端末検知してしまうのですが
    どうしたら回避できますか?

    • かなで より:

      ミラティブをインストールしてみましたが、私の環境では問題なく動作しています。
      そもそも起動しないのか、どこかのタイミングで警告ダイアログが出るのか、検知されてると判断した動作が分からないと調べられませんね…
      私の環境で動作しているということは、手順のどこかがうまくいっていないということになります。

  8. 匿名 より:

    中華xiaomi13proにEUロムを焼いてます。
    それでもおサイフケイタイが使えずにGpayも使えません。
    どうすればいいですか。

    • かなで より:

      Xiaomi 13 ProはそもそもFeliCaに対応していません。
      FeliCaは日本独自の規格ですので海外スマホでは使えません。
      国内に流通してるSIMフリーモデルですら使えないものはけっこうあります。

      おサイフケータイが使えないのはそのためです。
      ハードウェア的に未対応なので使えるようにする方法はありません。

  9. 匿名 より:

    三井住友カードが使えません。
    上記のやり方はやっているつもりなのですが…

    可能であればご教示願います。

    • かなで より:

      VPassというアプリですか?
      そうであればログイン or 新規登録の画面まで進めましたが、使えないというのは起動すらできないということでしょうか。
      普段使っているアプリではないので、もう少し細かく情報をいただければと思います。

  10. 匿名 より:

    CN版のxiaomi13proにEUロムを焼いてます。
    普通にGpayは使えますが、やはりfelicaがないためSuicaが使えません。
    なにか方法はありますか?

    • かなで より:

      残念ですがありません。
      FeliCa対応のスマホに買い換えてください。

      どうしても使いたいのならRakuten Miniみたいな小さくてFeliCa対応のスマホを併用するのも手だと思います。

  11. 匿名 より:

    私の環境でトーラムオンライン、NEWSTATEの2つのアプリが起動不可となってしまいます。
    恐らくMEETS_STRONG_INTEGRITYをパス出来ないことが原因だと思いますが、もし何か分かることがあれば教えて頂けると幸いです。

    • かなで より:

      私の環境でもトーラムオンラインは起動時の改竄チェックで引っかかってしまいました。
      (NEWSTATEについてはアプリサイズが大きいため未検証です)
      マイナポータルアプリはMEETS_STRONG_INTEGRITYをチェックしているアプリとして分かりやすいですが、先のゲームふたつもそれを見ている可能性は大いにあります。
      現状MEETS_STRONG_INTEGRITYを突破する手立てはないので、アンロックしていないデバイスでプレイする以外の方法はないかもしれません。
      先日バグを突いてMEETS_STRONG_INTEGRITYをパスする方法も公開されたのですがすぐに塞がれてしまいましたね…

  12. 匿名 より:

    久しぶりにAndroid触る際に大変参考になりました。ありがとうございます。
    1つ追加情報として、USNFmodの作者が後継として勧めていた「PlayIntegrityFix」をお伝えしておきます。
    https://github.com/chiteroman/PlayIntegrityFix

    • かなで より:

      情報ありがとうございます。
      僕も最近はPlay Integrity Fixを使っていまして、記事のほうが追いついていませんでした。
      のちほど反映しておきますね!

  13. 匿名 より:

    詳しい作業内容の紹介、ありがとうございます。
    こちらの記事に従って作業をした結果、三井住友銀行アプリ、Vpassアプリは無事に使えるようになりました。
    Googleウォレットも、VISAのタッチ決済も問題ないみたいです。
    ただ、Vポイントアプリだけが起動できません。
    起動させると、「セキュリティポリシーによりご利用の端末では本アプリは起動できません。」とのメッセージが出てログイン画面にも到達できません。
    対策がわかれば教えていただきたいです。

    • かなで より:

      記事がお役に立てたようで何よりです。
      VポイントアプリについてはV1.9.0へのバージョンアップによりチェックが厳しくなったというコメントが某掲示板にありました。
      原因がはっきり分かるわけではないのですが、DenyListなどに追加後一度アプリデータを消して起動し直して、それでも駄目な場合はもっと別の対策が必要になるかもしれません。
      Magisk alphaなど他の派生Magiskを使ってみるのもひとつの手です。
      ストックROMを使っているのかカスタムROMを使っているのかにもよるみたいですね。

  14. 匿名 より:

    Vpasアプリで質問を投げたのです。
    その後、いろいろ試しましたがやっぱりだめでした。
    データをワイプしての初期化(工場イメージを焼き直し)でもダメでした。
    それどころか、GoogleウォレットにVISAカードを登録できないようになってしまったです。
    Gooleウォレット周りに対策が入っているみたいです。
    困ったなぁ。。。

    • かなで より:

      昨晩の話ですが私のPixel 8 ProもMEETS_DEVICE_INTEGRITYが一時的に通らなくなり、結果としてGoogle Walletが使えなくなる事態になりました。
      近日中にPlay Integrity Fixの更新が来るみたいなので、それで改善されるといいなーと思っています。
      ちなみに現行のPlay Integrity Fixに自分でデバイスのFingerprintを用意してパスさせることもできます(私はそうしました)が、残念ながらブログのような公開場所で言及することができません。
      気になるようでしたらPlay Integrity FixのTelegramをご覧になってはいかがでしょうか?

  15. 匿名 より:

    >Play Integrity FixのTelegramをご覧になってはいかがでしょうか?
    いつ頃の投稿になりますか?
    マイナポータルアプリでログインしようとしたところどれを試してもroot化ではじかれるのでMEETS_DEVICE_INTEGRITYをPassできるようにして試してみたいなと思っているのですが…

    • かなで より:

      現時点で最新の14.2でもPassしないですか?
      今DEV版という形で独自のFingerprintを適用できるバージョンが公開されているので、それを使い /data/adb/pif.json に適切なものを設定するとDEVICEまでならPassできるはずです。
      残念ながらどのFingerprintならPassできるという情報までは持ち合わせていないので、僕もTelegramのログをその都度検索したり流れを追ったりしている状況です…たまにpif.jsonの内容を貼ったりしてる人がいるのでコピペしてみたりという感じで。
      https://dumps.tadiphone.dev/dumps こういうところで公開されているものもありますが、すぐにBANされてしまう可能性が高いので手持ちの古いデバイスから抜いてくるほうが確実かも?
      ちなみにマイナポータルはSTRONGをPassしないと起動できません。FeliCa関連を隠せば機能制限はありますがDEVICEまででも起動はできます。

  16. 匿名 より:

    >現時点で最新の14.2でもPassしないですか?
    Passしないです…アプリ起動はできますが、ログイン画面にてRoot化によるセキュリティ低下を理由に拒否されてしまいます。
    DEV版の使い方など解説されているページ等はございますか?

  17. 匿名 より:

    >現時点で最新の14.2でもPassしないですか?
    Passできないです。
    一度DEV版をインストールして、fingerprintを適用した後試してみたいと思います。

  18. こうき より:

    pif.jsonというのはbuild.propから取り出すと思うのですがPixel Flasherというソフトを使わないと作成できないのでしょうか?スマホのみで完結はしないのでしょうか?

    • かなで より:

      直接build.propを覗きに行ってもいいと思いますし、adb shellでデバイスに入って
      cd /sdcard/
      getprop | sed 's%\[\(.*\)\]: \[\(.*\)\]%\1=\2%g' > build.prop
      すれば /sdcard/build.prop に書き出されると思います。
      スマホのみだとRoot権限がいるかもしれませんね。
      XDAのPIFのスレッドもご覧ください。

タイトルとURLをコピーしました