Play Integrity Attestation Bypass (SafetyNet Replacement)
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
What Play Integrity Does
Play Integrity はアプリの attestation に対する Google の SafetyNet の後継です。アプリが API を呼び出すと、Google Play Services がソフトウェア/ハードウェアのシグナルを収集し、それを googleapis.com に暗号化して送信し、Google は署名・暗号化された JWT を返します。アプリはトークンをバックエンドに転送し、バックエンドは Google の公開鍵で署名を検証し、ペイロードを復号して、verdict フィールドに基づいてポリシーを適用します。
appIntegrity: APK のビルド/署名が一致(再パック/改ざんがないこと)。deviceIntegrity: 正規かつ認定されたデバイス、ブートローダーがロックされている、root/システム改ざんがないこと。accountDetails: Google Play 経由でのインストール。
よく確認される主要な verdict フラグ:
MEETS_BASIC_INTEGRITY: genuine Play Services によって生成されたトークン(エミュレータや改ざんされた輸送ではない)。MEETS_DEVICE_INTEGRITY: genuine/certified デバイス、ブートローダーがロック、root/システム改ざんなし。MEETS_STRONG_INTEGRITY:DEVICEに加え、すべてのパーティション(OS + vendor)での最近のセキュリティパッチ適用を要求。
Bypass Model
Google の JWT を偽造する代わりに、Google が評価するシグナルを偽装して、別の正当なデバイスプロファイルに一致させます。攻撃チェーンは次の通りです:
- ローカルチェックやPlay Services のプローブが Magisk/su を検出しないように root を隠す。
- genuine デバイスのものと入れ替えることで、Play Integrity が認定/ロックされたデバイスとして見るように key attestation certificate chain(
keybox.xml)を置き換える。 MEETS_STRONG_INTEGRITYを満たすために security patch level を偽装する。
Google は 悪用された keyboxes を失効させることで緩和しているため、keybox がブロックされたらローテーションが必要です。
Prerequisites & Tooling
- Root hiding: ReZygisk (or ZygiskNext). Disable Zygisk, enable Magisk Hide, install module, reboot.
- Key attestation spoofing: TrickyStore + Tricky Addon (Magisk modules).
- UI helper: KSU Web UI to drive TrickyStore.
- Validation: Play Integrity API Checker and Key Attestation APKs.
- Optional background on attestation key material: https://tryigit.dev/android-keybox-attestation-analysis
Achieve MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY
- Install modules & reboot: Flash TrickyStore and Tricky Addon in Magisk, reboot.
- Configure TrickyStore (via KSU Web UI): Select
TrickyStore→Select All→Deselect Unnecessary→ Save. - Inject a valid keybox: In
Keybox, choose Valid to download/apply a newkeybox.xml(vendor attestation credentials). This file underpins hardware key attestation and is now spoofed from a certified/locked device. - Verify: Run Play Integrity API Checker →
MEETS_BASIC_INTEGRITYandMEETS_DEVICE_INTEGRITYshould pass. In Key Attestation the bootloader appears locked because the attestation chain is replaced.
Achieve MEETS_STRONG_INTEGRITY (Patch-Level Spoof)
STRONG fails on outdated patch levels. TrickyStore can spoof a modern security patch date for all partitions:
- In TrickyStore, pick Set Security Patch → Get Security Patch Date → Save.
- Re-run Play Integrity API Checker;
MEETS_STRONG_INTEGRITYshould now pass.
Operational Notes
- Revocation risk: Hitting the API repeatedly with the same
keybox.xmlcan flag and block it. If blocked, replace with a fresh valid keybox. - Arms race: Publicly shared keyboxes burn fast; keep private copies and track community module updates (XDA/Telegram/GitHub) for new working chains.
- Scope: This bypass only spoofs attestation inputs; backend signature verification by Google still succeeds because the JWT itself is genuine.
References
- Play Integrity API: How It Works & How to Bypass It
- ReZygisk
- TrickyStore
- Tricky Addon
- KSU Web UI
- Play Integrity API Checker
- Key Attestation
- Android keybox attestation analysis
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。


