SafetyNet vs Play Integrity API: come superarlo con il root (2026)
SafetyNet è stato ritirato nel 2024 e Play Integrity API l’ha sostituito. Ecco come superare MEETS_DEVICE_INTEGRITY e le app bancarie di base con Magisk e Shamiko nel 2026.
Indice
- Una breve storia: da SafetyNet a Play Integrity
- I tre verdetti di Play Integrity spiegati
- MEETS_DEVICE_INTEGRITY
- MEETS_BASIC_INTEGRITY
- MEETS_STRONG_INTEGRITY
- Strumenti di bypass: Magisk Hide, Shamiko e TrickyStore
- Passo per passo: superare Play Integrity per le app bancarie di base
- Passaggio 1: abilita Zygisk in Magisk
- Passaggio 2: installa Shamiko
- Passaggio 3: installa il modulo Play Integrity Fix
- Passaggio 4: aggiorna il fingerprint di PIF con uno funzionante
- Passaggio 5: configura la DenyList per le tue app
- Passaggio 6: verifica con Play Integrity API Checker
- Passaggio 7: prova ogni app bancaria singolarmente
- Quando le app non funzionano anche con il verdetto superato
- App bancarie per regione: cosa funziona oggi su Android con root
- Bangladesh
- India
- Pakistan
- Regno Unito e UE
- Cosa comporta davvero STRONG_INTEGRITY a livello TEE
- Cosa non consigliamo mai
- Quando rivolgersi a un professionista
L’API SafetyNet, che la community del root Android conosceva da un decennio, è stata ufficialmente ritirata da Google all’inizio del 2024 e sostituita da Play Integrity API. Ogni guida scritta prima del 2024 è ormai obsoleta e nei vecchi thread dei forum circolano ancora molte informazioni sbagliate. Questa guida è la procedura pratica e aggiornata al 2026: cosa è cambiato, cosa significano davvero i tre verdetti di Play Integrity, quali strumenti di bypass funzionano nel 2026 e le istruzioni passo per passo, compresi i comandi Magisk specifici. È pensata per utenti avanzati che hanno già un dispositivo con root e devono far funzionare le app bancarie e di pagamento.
Una breve storia: da SafetyNet a Play Integrity
SafetyNet (2014-2024) era l’API di attestazione dei dispositivi di Google. Restituiva due campi booleani: ctsProfileMatch (il dispositivo corrisponde a un profilo noto del Compatibility Test Suite?) e basicIntegrity (il dispositivo supera i controlli di integrità di base, come lo stato di bootloader bloccato?). Le app bancarie la chiamavano tramite Google Play Services, ricevevano i due booleani e si rifiutavano di funzionare se uno dei due era falso. I metodi di bypass si sono evoluti nel corso del decennio: prima MagiskHide, poi Zygisk + DenyList dopo il ritiro di MagiskHide in Magisk 24, poi Shamiko in aggiunta per un occultamento più efficace.
Play Integrity API (2023-oggi) è la sostituzione ufficiale. La cronologia del ritiro:
- Giugno 2023: Play Integrity API viene lanciata come sostituto preferito
- Da metà 2023 a inizio 2024: le app iniziano a migrare da SafetyNet a Play Integrity
- Gennaio 2024: SafetyNet viene ufficialmente deprecata; le nuove risposte dell’API non sono più garantite
- Entro metà 2026: quasi tutte le principali app bancarie e di pagamento usano ormai solo Play Integrity
Play Integrity restituisce tre verdetti invece di due booleani e usa l’attestazione hardware delle chiavi per il livello più rigoroso, il che la rende fondamentalmente più difficile da aggirare con metodi solo software.
I tre verdetti di Play Integrity spiegati
Ogni controllo di Play Integrity restituisce tre valori booleani:
MEETS_DEVICE_INTEGRITY
Il livello base. Significa che il dispositivo esegue Android non modificato, ha Google Play Services installato e supera i controlli di compatibilità di base. Aggirabile su dispositivi con root con gli strumenti attuali (Magisk + Zygisk + DenyList + Shamiko + modulo Play Integrity Fix). Circa il 60% delle app richiede questo verdetto per funzionare normalmente.
MEETS_BASIC_INTEGRITY
Un controllo più severo che include ulteriori verifiche dell’ambiente: integrità dei file di sistema, stato atteso di Google Play Services, alcuni controlli sullo stato di debug. Per lo più aggirabile su dispositivi con root, ma più sensibile alla configurazione dei moduli. Circa il 30% delle app richiede questo verdetto oltre a DEVICE_INTEGRITY. La maggior parte delle app bancarie richiede entrambi.
MEETS_STRONG_INTEGRITY
Il livello più rigoroso. Usa l’attestazione delle chiavi supportata dall’hardware: il TEE (Trusted Execution Environment) del dispositivo firma una risposta che può essere verificata fino al certificato radice del produttore. Funziona anche con il bootloader bloccato, perché le chiavi sono protette dal secure element. Non può essere aggirato con gli attuali metodi software su un dispositivo con bootloader sbloccato, perché lo sblocco rompe la catena di verified boot su cui si basano le chiavi del TEE.
Circa il 10-20% delle app richiede STRONG_INTEGRITY:
- Pagamenti contactless con Google Wallet in alcune regioni
- Diverse neobanche (Revolut, Wise, N26 in alcune regioni)
- Alcune app governative di identità (passaporti digitali, documento elettorale)
- App sanitarie con requisiti di conformità rigorosi
- Alcune app di lavoro fornite dal datore di lavoro e protette da MDM
Se le tue app essenziali richiedono STRONG_INTEGRITY, il root è incompatibile con queste app e nessun workaround attuale cambia le cose.
Strumenti di bypass: Magisk Hide, Shamiko e TrickyStore
Per aggirare Play Integrity nel 2026 su un dispositivo con root, tre strumenti principali lavorano insieme:
| Strumento | Cosa fa | Ambito del bypass | Difficoltà di configurazione | Rischio di rilevamento |
|---|---|---|---|---|
| Magisk DenyList (integrata) | Nasconde lo stato root alle app elencate tramite hook di Zygisk | Solo MEETS_DEVICE_INTEGRITY, da sola | Facile: è integrata in Magisk | Basso per le app di base; insufficiente contro un rilevamento bancario serio |
| Shamiko (modulo LSPosed) | Aggiunge un occultamento aggressivo sopra la DenyList: nasconde Zygisk stesso e i processi delle app alle query di sistema | MEETS_DEVICE + BASIC per circa l’80% delle app bancarie, insieme a PIF | Facile: si installa dai moduli di Magisk | Basso; lavora in modo invisibile con la DenyList |
| Play Integrity Fix (PIF) | Falsifica il fingerprint del dispositivo inviato ai server di attestazione di Google con uno che oggi risulta valido | Necessario perché qualsiasi bypass dei verdetti funzioni nel 2026 | Facile: installa il modulo ed esegui il comando di aggiornamento automatico | Medio; dipende dalla freschezza del fingerprint |
| TrickyStore | Falsifica le risposte di attestazione hardware delle chiavi a livello di keystore; può superare le app che controllano la coerenza del key store | Aggiunge un altro 5-10% di app più severe all’insieme aggirabile | Difficile: richiede la configurazione manuale dell’elenco di chiavi per ogni dispositivo | Più alto; alcune app rilevano le risposte falsificate da TrickyStore |
| Magisk Hide (legacy) | Rimosso da Magisk 24+: sostituito da DenyList + Zygisk | N/D: non cercarlo nel Magisk attuale | N/A | N/A |
Passo per passo: superare Play Integrity per le app bancarie di base
Presuppone che tu abbia già:
- Bootloader sbloccato
- Magisk installato tramite boot.img patchato
- Root funzionante verificato in Magisk Manager
Se non hai ancora tutto questo, leggi prima la nostra guida allo sblocco del bootloader e il confronto Magisk vs KernelSU vs APatch.
Passaggio 1: abilita Zygisk in Magisk
Apri l’app Magisk → Settings (icona a forma di ingranaggio) → abilita l’interruttore Zygisk. Riavvia.
Dopo il riavvio, torna nelle Settings di Magisk e abilita Enforce DenyList.
Passaggio 2: installa Shamiko
Scarica l’ultimo zip di Shamiko dalle release ufficiali di LSPosed/LSPosed su GitHub. Nell’app Magisk → scheda Modules → tocca l’icona + → seleziona lo zip di Shamiko → installa. Riavvia.
Dopo il riavvio, verifica che Shamiko sia caricato: app Magisk → scheda Modules → Shamiko deve comparire nell’elenco e risultare abilitato.
Passaggio 3: installa il modulo Play Integrity Fix
Scarica l’ultimo zip di PIF dalle release GitHub di chiteroman/PlayIntegrityFork (o dal fork attualmente mantenuto: controlla i thread XDA dei Recognized Developer per le indicazioni aggiornate).
App Magisk → Modules → + → installa lo zip di PIF → riavvia.
Passaggio 4: aggiorna il fingerprint di PIF con uno funzionante
Il fingerprint dentro PIF deve corrispondere a un dispositivo noto che oggi supera Play Integrity. Il modulo PIF include uno script di aggiornamento automatico. Apri un’app terminale (va bene Termux) ed esegui:
su -c sh /data/adb/modules/playintegrityfix/action.sh Scarica l’ultimo fingerprint funzionante mantenuto dalla community e lo applica. Riavvia.
Passaggio 5: configura la DenyList per le tue app
App Magisk → Configure DenyList → cerca ogni app bancaria, di pagamento o che controlla Play Integrity che ti serve usare. Tocca l’interruttore accanto a ciascuna app per abilitare l’occultamento. Le voci dei sottoprocessi di solito si attivano in automatico.
App comuni da aggiungere:
- La tua app bancaria principale (HDFC, SBI, Bank of America, Lloyds, ecc.)
- App di mobile money (bKash, GCash, M-Pesa, JazzCash)
- App di pagamento (Google Pay, PayPal, Venmo, Cash App)
- App di brokeraggio (Robinhood, Zerodha, Groww)
- App governative (DigiLocker, Aadhaar, app NHS)
- App di streaming con DRM (Netflix, Disney+, Amazon Prime: controllano Play Integrity per HD/4K)
Passaggio 6: verifica con Play Integrity API Checker
Installa Play Integrity API Checker dal Play Store (esistono più versioni: prova quella di gkkang o quella mantenuta dal team LSPosed).
Aprila. Tocca Check. Cerca:
- MEETS_DEVICE_INTEGRITY: dovrebbe essere true
- MEETS_BASIC_INTEGRITY: dovrebbe essere true
- MEETS_STRONG_INTEGRITY: sarà false su un dispositivo con bootloader sbloccato, ed è normale
Se DEVICE e BASIC restituiscono entrambi true, il bypass funziona a livello di verdetto. La maggior parte delle app bancarie e di pagamento ora funzionerà normalmente.
Passaggio 7: prova ogni app bancaria singolarmente
Apri le app una alla volta. Verifica che superino la schermata iniziale e ti lascino accedere. Se un’app non funziona:
- Verifica che l’app sia abilitata nella DenyList
- Riesegui il comando di aggiornamento automatico di PIF per aggiornare il fingerprint
- Riavvia
- Se continua a non funzionare, quell’app potrebbe usare ulteriori rilevamenti oltre a Play Integrity: prova TrickyStore come livello aggiuntivo, oppure accetta che l’app sia incompatibile con la tua configurazione root attuale
Quando le app non funzionano anche con il verdetto superato
Alcune app usano ulteriori vettori di rilevamento oltre alla Play Integrity API ufficiale:
- Scansione diretta dei file: cercano
/system/bin/su, i percorsi dei binari di Magisk o i percorsi noti di installazione dei moduli. Soluzione: abilita l’occultamento dei file equivalente a MagiskHide di Magisk (integrato nelle versioni recenti). - Ispezione del namespace dei processi: controllano
/proc/self/statuse simili per cercare firme degli hook di Zygisk. Soluzione: Shamiko gestisce la maggior parte dei casi. - Sfide di attestazione TEE indipendenti da Play Integrity. Soluzione: TrickyStore per alcune app; impossibile per altre.
- Blocklist specifiche dell’app mantenute dallo sviluppatore, che includono nomi di pacchetto noti legati al root. Soluzione: rinomina l’app Magisk da Settings → Hide the Magisk app, dandole un nome che non somigli a Magisk.
App bancarie per regione: cosa funziona oggi su Android con root
Il comportamento delle app bancarie varia moltissimo da regione a regione, perché ogni banca sceglie il proprio livello di rigore nei controlli di integrità. In base alle segnalazioni dei clienti nei mercati BD/IN/PK/UK fino al 2026:
Bangladesh
- bKash: funziona con Magisk + Shamiko + PIF per la maggior parte degli utenti; ogni tanto serve aggiornare il fingerprint dopo gli aggiornamenti di Google
- Nagad: funziona con lo stesso stack; un po’ più sensibile alla freschezza del fingerprint
- Rocket (DBBL): funziona con lo stack standard
- App di City Bank, BRAC Bank, EBL, Dutch-Bangla Bank: la maggior parte funziona con lo stack standard; controlla dopo ogni aggiornamento di Play Integrity
- Pagamenti contactless specifici della banca: in genere richiedono STRONG_INTEGRITY; non aggirabili su dispositivi con root
India
- Google Pay (Tez): UPI funziona con lo stack standard; il pagamento contactless (nelle regioni supportate) richiede STRONG_INTEGRITY
- PhonePe, Paytm: UPI funziona con lo stack standard
- HDFC, ICICI, SBI YONO, Axis Mobile: la maggior parte funziona; HDFC e Axis sono un po’ più severe e per certe funzioni possono richiedere TrickyStore
- App di brokeraggio (Zerodha Kite, Groww, Upstox): funzionano con lo stack standard
- App mAadhaar di Aadhaar: funziona per la maggior parte delle funzioni; quelle biometriche possono richiedere una configurazione di occultamento aggiuntiva
Pakistan
- JazzCash, Easypaisa: entrambe funzionano con lo stack standard per la maggior parte degli utenti
- HBL Mobile, UBL Digital, Meezan Bank Mobile: la maggior parte funziona; Meezan è la più severa delle tre
- NayaPay, SadaPay (neobanche): variabile; controlla prima di affidarti al root per queste
Regno Unito e UE
- La maggior parte delle app delle banche tradizionali (Lloyds, Barclays, HSBC, Santander, NatWest): funzionano con lo stack standard a metà 2026
- Neobanche (Revolut, Wise, N26, Monzo): Revolut e Wise sono notoriamente severe e in alcuni flussi richiedono spesso STRONG_INTEGRITY; Monzo e Starling di solito sono più tolleranti
- Equivalenti Apple/Google per il pagamento contactless: richiedono STRONG_INTEGRITY; non aggirabili
Questo elenco riflette la situazione al momento della stesura e cambia con regolarità. Prova sempre le tue app specifiche prima di affidarti al root per un uso finanziario urgente.
Cosa comporta davvero STRONG_INTEGRITY a livello TEE
Un rapido contesto tecnico per utenti avanzati su perché STRONG_INTEGRITY è fondamentalmente non aggirabile su dispositivi con bootloader sbloccato.
I dispositivi Android moderni includono un Trusted Execution Environment (TEE): un processore sicuro separato, con memoria e sistema operativo propri, isolato dal sistema Android principale. Il TEE contiene chiavi crittografiche uniche del dispositivo, provisionate in fabbrica e firmate dall’autorità di certificazione radice del produttore.
Quando un’app richiede STRONG_INTEGRITY, la richiesta passa dal TEE, che firma una risposta usando queste chiavi provisionate in fabbrica. La risposta include lo stato corrente di verified boot: una catena di hash che dimostra che il bootloader è bloccato e che le partizioni boot, system e vendor corrispondono a quanto firmato dal produttore.
Quando sblocchi il bootloader, il TEE aggiorna il proprio stato di verified boot in “yellow” (chiavi installate dall’utente) o “orange” (nessun verified boot). Il TEE continuerà a firmare le risposte STRONG_INTEGRITY, ma la risposta includerà esplicitamente lo stato sbloccato. Le app che richiedono STRONG_INTEGRITY controllano questo campo e si rifiutano di funzionare quando lo stato è diverso da green (bootloader bloccato, catena di boot firmata dal produttore).
Un bypass software non può falsificare tutto questo, perché il TEE firma con chiavi a cui il sistema operativo principale non ha accesso. TrickyStore può intercettare la chiamata al keystore prima che raggiunga il TEE e sostituire una risposta “buona” registrata in precedenza da un dispositivo simile, cosa che funziona per alcune app che non convalidano correttamente l’origine hardware della risposta, ma le app che la convalidano (quelle più severe) rileveranno la sostituzione.
Gli unici modi affidabili per superare STRONG_INTEGRITY:
- Eseguire un boot.img del firmware stock con il bootloader di nuovo bloccato. Alcuni dispositivi (Pixel, certi modelli OnePlus) permettono di ribloccare il bootloader dopo aver flashato immagini firmate dal produttore. Questo ripristina STRONG_INTEGRITY, ma si perde il root.
- Usare un secondo dispositivo senza root per il piccolo numero di app che richiedono STRONG_INTEGRITY.
Non esiste una terza opzione nascosta. Il TEE è progettato proprio per impedirla.
Cosa non consigliamo mai
- Eseguire più moduli di bypass di Play Integrity contemporaneamente senza un motivo preciso: spesso entrano in conflitto e rompono più app di quante ne sistemino.
- Usare fork casuali di PIF da fonti sconosciute. Attieniti al fork principale mantenuto e controlla i thread XDA per l’indicazione attuale.
- Affidarti al bypass per transazioni finanziarie di alto valore. Usa un dispositivo di riserva senza root per importi che non puoi permetterti di perdere e leggi i termini di servizio della tua banca sulla responsabilità per le frodi con dispositivi con root.
- Abilitare il root per il Play Store stesso. Il Play Store non deve stare nella DenyList: farlo può rompere funzioni del Play Store senza alcun vantaggio.
Quando rivolgersi a un professionista
Se una specifica app bancaria non funziona più dopo l’installazione del root e hai già provato lo stack standard, scrivici su WhatsApp o Telegram. Abbiamo configurazioni già verificate e funzionanti per la maggior parte delle banche principali nei mercati BD, IN, PK, UK, US e UE e di solito riusciamo a far funzionare un’app in una sessione remota di 30-60 minuti. Vedi il nostro servizio di rooting Android per cosa è incluso.
Per i dettagli a livello di modulo dietro DenyList e Shamiko, la nostra guida ai moduli Magisk copre lo stack attuale di occultamento di Play Integrity e quali fork sono ancora mantenuti.
Domande frequenti
Che differenza c’è tra SafetyNet e Play Integrity API?
SafetyNet era la precedente API di attestazione dei dispositivi di Google, usata da app bancarie e di pagamento per rilevare dispositivi Android con root, modificati o emulati. Google ha ritirato ufficialmente SafetyNet all’inizio del 2024 e l’ha sostituita con Play Integrity API, che fornisce tre verdetti di integrità (DEVICE_INTEGRITY, BASIC_INTEGRITY, STRONG_INTEGRITY) invece della singola coppia ctsProfileMatch + basicIntegrity di SafetyNet. Play Integrity è più difficile da aggirare con il root perché il verdetto STRONG_INTEGRITY usa un’attestazione hardware delle chiavi che non si può falsificare via software.
Posso superare Play Integrity API su Android con root nel 2026?
MEETS_DEVICE_INTEGRITY e MEETS_BASIC_INTEGRITY: sì. Con Magisk + Zygisk + DenyList + Shamiko + modulo Play Integrity Fix configurati correttamente, circa l’80-90% delle app bancarie e di pagamento funziona normalmente su un dispositivo con root. MEETS_STRONG_INTEGRITY: quasi mai, perché richiede uno stato di boot attestato dall’hardware, che lo sblocco del bootloader compromette alla base. Il 10-20% di app che richiedono STRONG_INTEGRITY (alcune neobanche, certe app governative, Google Wallet per i pagamenti contactless in alcune regioni) non si può far funzionare con il root con nessun metodo attuale.
Qual è il miglior modulo per aggirare Play Integrity: Shamiko o TrickyStore?
Shamiko è più semplice da configurare e funziona per la maggior parte delle app bancarie più comuni. TrickyStore è più aggressivo: falsifica le risposte di chiavi con attestazione hardware e può far passare certe app che Shamiko non supera, ma ha un rischio di rilevamento più alto con le app che ricontrollano la coerenza del key store. Consigliamo di partire da Shamiko + Play Integrity Fix e aggiungere TrickyStore solo per le app specifiche che falliscono con Shamiko da solo. Usare entrambi insieme senza una configurazione corretta può far fallire più app che usarne uno solo.
Perché i metodi di bypass di Play Integrity smettono di funzionare ogni pochi mesi?
Google aggiorna la logica di rilevamento di Play Integrity più o meno ogni trimestre e ogni aggiornamento di solito rompe almeno una tecnica di bypass. La community risponde in giorni o settimane con fingerprint e versioni dei moduli aggiornati. Il ciclo è questo: Google rilascia un aggiornamento del rilevamento → dal 90 al 99% delle configurazioni di bypass smette di funzionare → la community pubblica la correzione in 1-4 settimane → il bypass torna a funzionare. Metti in conto da 1 a 2 settimane per trimestre in cui le tue app bancarie potrebbero rifiutarsi temporaneamente di funzionare e tieni pronto un telefono di riserva senza root o un boot.img del firmware stock per le operazioni urgenti.
Le app bancarie rilevano Magisk anche con Shamiko abilitato?
Alcune sì. Shamiko nasconde i nomi dei processi di Magisk e gli hook di Zygisk alle app che controllano Zygisk, ma le app che usano ulteriori vettori di rilevamento (controllo dello stato di SELinux, ricerca di /system/bin/su, scansione del disco per binari root noti, confronto di incongruenze in /proc) possono comunque rilevare il root attraverso quei canali. Il modulo Play Integrity Fix si occupa del lato della risposta del verdetto; il rilevamento a livello della singola app è un problema separato e varia da app ad app. Per l’80% delle app basta Shamiko + PIF. Per il restante 20% servono soluzioni specifiche per app (oppure accettare che l’app non si possa usare su un dispositivo con root).
È sicuro usare la mia app bancaria con la DenyList di Magisk configurata?
Dal punto di vista della sicurezza tecnica sì: la DenyList non indebolisce la cifratura, il certificate pinning o la sicurezza di sessione dell’app bancaria. Nasconde soltanto lo stato root di Magisk ai controlli ambientali dell’app. La tua sessione bancaria è cifrata e autenticata esattamente come lo sarebbe su un dispositivo con firmware stock. Dal punto di vista contrattuale, i termini di servizio della tua banca potrebbero vietare di usare la loro app su un dispositivo con root: leggili prima di affidarti all’app per transazioni di alto valore e tieni presente che, se avviene una transazione fraudolenta e la banca scopre lo stato root, potrebbe rifiutarsi di rimborsarti. Per un uso bancario quotidiano di basso valore il compromesso è ragionevole; per le transazioni di alto valore valuta un secondo dispositivo senza root.