Play Integrity Attestation Bypass (SafetyNet Replacement)
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
O que Play Integrity faz
Play Integrity é o sucessor do SafetyNet do Google para app attestation. O app chama a API, o Google Play Services coleta sinais de software/hardware, envia-os criptografados para googleapis.com, e o Google retorna um JWT que é assinado e criptografado pelo Google. O app encaminha o token para seu backend, que valida a assinatura com a chave pública do Google, descriptografa o payload e aplica políticas com base nos campos de veredicto:
appIntegrity: coincidência de build/assinatura do APK (sem repack/modificações).deviceIntegrity: dispositivo genuíno & certificado, bootloader bloqueado, sem root/modificações no sistema.accountDetails: instalação via Google Play.
Flags-chave de veredicto comumente aplicadas:
MEETS_BASIC_INTEGRITY: token gerado pelo Play Services genuíno (não emulador/transporte manipulado).MEETS_DEVICE_INTEGRITY: dispositivo genuíno/certificado, bootloader bloqueado, sem root/modificações no sistema.MEETS_STRONG_INTEGRITY: requerDEVICEmais patches de segurança recentes em todas as partições (OS + vendor).
Modelo de Bypass
Em vez de forjar o JWT do Google, falsifique os sinais que o Google avalia para que correspondam a um perfil de dispositivo legítimo diferente. A cadeia de ataque:
- Esconder o root para que checagens locais e sondas do Play Services não detectem Magisk/su.
- Substituir a key attestation certificate chain (
keybox.xml) por uma vinda de um dispositivo genuíno para que o Play Integrity veja um dispositivo certificado/bootloader bloqueado. - Falsificar o security patch level para satisfazer
MEETS_STRONG_INTEGRITY.
O Google mitiga revogando keyboxes abusados; é necessário rotacionar quando um keybox é bloqueado.
Pré-requisitos & 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
Como atingir MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY
- Instale os módulos & reinicie: Flash TrickyStore e Tricky Addon no Magisk, reinicie.
- Configure o TrickyStore (via KSU Web UI): Selecione
TrickyStore→Select All→Deselect Unnecessary→ Save. - Injete um keybox válido: Em
Keybox, escolha Valid para baixar/aplicar um novokeybox.xml(credenciais de attestation do vendor). Este arquivo sustenta a key attestation de hardware e agora é falsificado a partir de um dispositivo certificado/bootloader bloqueado. - Verifique: Execute Play Integrity API Checker →
MEETS_BASIC_INTEGRITYeMEETS_DEVICE_INTEGRITYdevem passar. Em Key Attestation o bootloader aparece locked porque a cadeia de attestation foi substituída.
Como atingir MEETS_STRONG_INTEGRITY (Patch-Level Spoof)
STRONG falha em níveis de patch desatualizados. O TrickyStore pode falsificar uma data de security patch moderna para todas as partições:
- No TrickyStore, escolha Set Security Patch → Get Security Patch Date → Save.
- Reexecute o Play Integrity API Checker;
MEETS_STRONG_INTEGRITYagora deve passar.
Notas Operacionais
- Risco de revogação: Acionar a API repetidamente com o mesmo
keybox.xmlpode sinalizá-lo e bloqueá-lo. Se bloqueado, substitua por um keybox válido novo. - Corrida armamentista: Keyboxes compartilhados publicamente queimam rápido; mantenha cópias privadas e acompanhe atualizações de módulos da comunidade (XDA/Telegram/GitHub) para novas cadeias funcionando.
- Escopo: Este bypass apenas falsifica os inputs de attestation; a verificação de assinatura no backend pelo Google ainda succeed porque o próprio JWT é genuíno.
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
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.


