Il rooting del tuo dispositivo Android ti dà accesso a una più ampia varietà di app e un accesso più profondo al sistema Android. Ma alcune app, come Android Pay di Google -Non funzionerà affatto su un dispositivo rooted.
Google utilizza qualcosa chiamato SafetyNet per rilevare se il tuo dispositivo è rootato o meno e blocca l'accesso a tali funzionalità. Google non è nemmeno l'unico, anche molte app di terze parti non funzioneranno dispositivi Android con root , sebbene possano verificare la presenza di root in altri modi.
SafetyNet: come Google sa che hai eseguito il root del tuo telefono Android
RELAZIONATO: Stanco di farti rubare la carta di credito? Usa Apple Pay o Android Pay
I dispositivi Android offrono un " API SafetyNet , "Che fa parte di Google Play Services layer installato su dispositivi Android approvati da Google. Questa API "fornisce l'accesso ai servizi Google che ti aiutano a valutare la salute e la sicurezza di un dispositivo Android", secondo Google. Se sei uno sviluppatore Android, puoi chiamare questa API nella tua app per verificare se il dispositivo su cui stai eseguendo è stato manomesso.
Questa API SafetyNet è progettata per verificare se un dispositivo è stato manomesso, ad esempio se è stato rootato da un utente, esegue una ROM personalizzata o è stato infettato da malware di basso livello.
I dispositivi forniti con Google Play Store e altre app installate devono superare la "Suite di test di compatibilità" Android di Google. Il rooting di un dispositivo o l'installazione di una ROM personalizzata impedisce a un dispositivo di essere "compatibile con CTS". Questo è il modo in cui l'API SafetyNet può sapere se sei rootato: verifica semplicemente la compatibilità CTS. Allo stesso modo, se ottieni un dispositivo Android che non è mai stato fornito con le app di Google, come uno di quei tablet da $ 20 spediti direttamente da una fabbrica in Cina, non sarà considerato affatto "compatibile con CTS", anche se non lo hai rootato .
Per ottenere queste informazioni, Google Play Services scarica un programma denominato "snet" e lo esegue in background sul dispositivo. Il programma raccoglie i dati dal tuo dispositivo e li invia a Google regolarmente. Google utilizza queste informazioni per una serie di scopi, dall'ottenere un'immagine del più ampio ecosistema Android per determinare se il software del tuo dispositivo è stato manomesso o meno. Google non spiega esattamente cosa stia cercando snet, ma probabilmente snet controlla se la partizione di sistema è stata modificata dallo stato di fabbrica.
Puoi controllare lo stato SafetyNet del tuo dispositivo scaricando un'app come Esempio di Helper SafetyNet o Parco giochi SafetyNet . L'app chiederà al servizio SafetyNet di Google lo stato del tuo dispositivo e ti comunicherà la risposta che riceve dal server di Google.
Per ulteriori dettagli tecnici, leggi questo post del blog scritto da John Kozyrakis, uno stratega tecnico presso Cigital, una società di sicurezza del software. Ha approfondito SafetyNet e spiega di più su come funziona.
Dipende dall'app
SafetyNet è facoltativo per gli sviluppatori di app e gli sviluppatori di app possono scegliere di usarlo o meno. SafetyNet impedisce il funzionamento di un'app solo se lo sviluppatore di un'app non desidera che funzioni su dispositivi rooted.
La maggior parte delle app non controllerà affatto l'API SafetyNet. Anche un'app che controlla l'API SafetyNet, come le app di prova sopra, non smetterà di funzionare se riceve una risposta negativa. Lo sviluppatore dell'app deve controllare l'API SafetyNet e fare in modo che l'app si rifiuti di funzionare se scopre che il software del tuo dispositivo è stato modificato. L'app Android Pay di Google ne è un buon esempio in azione.
Android Pay non funzionerà sui dispositivi con root
La soluzione di pagamento mobile Android Pay di Google non funziona affatto sui dispositivi Android con root. Prova ad avviarlo e vedrai solo un messaggio che dice "Impossibile utilizzare Android Pay. Google non è in grado di verificare che il tuo dispositivo o il software in esecuzione su di esso sia compatibile con Android. "
Non si tratta solo di fare il tifo, ovviamente - eseguire una ROM personalizzata ti metterebbe anche in conflitto con questo requisito. L'API SafetyNet affermerà che non è "compatibile con Android" se utilizzi una ROM personalizzata con cui il dispositivo non è stato fornito.
RELAZIONATO: Il caso contro il root: perché i dispositivi Android non vengono rootati
Ricorda, questo non rileva solo il rooting. Se il tuo dispositivo fosse stato infettato da malware a livello di sistema con la possibilità di spiare Android Pay e altre app, l'API SafetyNet impedirebbe anche il funzionamento di Android Pay, il che è positivo.
Il rooting del dispositivo interrompe il normale modello di sicurezza di Android. Android Pay normalmente protegge i tuoi dati di pagamento utilizzando le funzioni di sandbox di Android, ma le app possono uscire dalla sandbox su un dispositivo rooted . Google non ha modo di sapere quanto sarebbe sicuro Android Pay su un particolare dispositivo se è rootato o esegue una ROM personalizzata sconosciuta, quindi lo bloccano. Un ingegnere di Android Pay ha spiegato il problema sul forum degli sviluppatori XDA se sei curioso di leggere di più.
Altri modi in cui le app possono rilevare root
SafetyNet è solo uno dei modi in cui un'app può verificare se è in esecuzione su un dispositivo rooted. Ad esempio, i dispositivi Samsung includono un sistema di sicurezza denominato KNOX. Se esegui il root del tuo dispositivo, la sicurezza KNOX viene attivata. Samsung Pay, l'app per i pagamenti mobili di Samsung, si rifiuterà di funzionare sui dispositivi rooted. Samsung sta usando KNOX per questo, ma potrebbe anche usare SafetyNet.
Allo stesso modo, molte app di terze parti ti impediranno di utilizzarle e non tutte usano SafetyNet. Potrebbero semplicemente verificare la presenza di app e processi di root noti su un dispositivo.
È difficile trovare un elenco aggiornato di app che non funzionano quando un dispositivo è rootato. Tuttavia, RootCloak fornisce parecchi elenchi . Questi elenchi potrebbero non essere aggiornati, ma sono i migliori che possiamo trovare. Molte sono app bancarie e altre app di portafoglio mobile, che bloccano l'accesso sui telefoni con root nel tentativo di proteggere le tue informazioni bancarie dall'acquisizione da parte di altre app. Le app per i servizi di streaming video possono anche rifiutarsi di funzionare su un dispositivo rooted come una sorta di misura DRM, tentando di impedire la registrazione di un flusso video protetto.
Alcune app possono essere ingannate
Google sta giocando a un gioco al gatto e al topo con SafetyNet, aggiornandolo costantemente nel tentativo di stare al passo con le persone che lo aggirano. Ad esempio, lo sviluppatore Android Chainfire ha creato un nuovo metodo per eseguire il rooting dei dispositivi Android senza modificare la partizione di sistema, noto come "root senza sistema". Inizialmente SafetyNet non ha rilevato tali dispositivi come manomessi e Android Pay ha funzionato, ma alla fine SafetyNet è stato aggiornato per rilevare questo nuovo metodo di rooting. Ciò significa Android Pay non lavora più insieme a root senza sistema.
RELAZIONATO: Dimentica le ROM lampeggianti: usa Xposed Framework per modificare il tuo Android
A seconda di come un'app verifica l'accesso root, potresti essere in grado di ingannarlo. Ad esempio, ci sono metodi per eseguire il root di alcuni dispositivi Samsung senza far scattare la sicurezza KNOX, il che consentirebbe di continuare a utilizzare Samsung Pay.
Nel caso di app che controllano solo le app di root sul tuo sistema, c'è un file Xposed Framework modulo denominato RootCloak che secondo come riferito ti consente di indurli a lavorare comunque. Funziona con app come DirecTV GenieGo, Best Buy CinemaNow e Movies di Flixster, che normalmente non funzionano su dispositivi rooted. Tuttavia, se queste app venissero aggiornate per utilizzare SafetyNet di Google, non sarebbero così facili da ingannare in questo modo.
La maggior parte delle app continuerà a funzionare normalmente una volta eseguito il root del dispositivo. Le app di pagamento mobile sono la grande eccezione, così come alcune altre app bancarie e finanziarie. I servizi di streaming video a pagamento a volte tentano di impedirti di guardare anche i loro video.
Se un'app di cui hai bisogno non funziona sul tuo dispositivo rooted, puoi sempre annullare il root del dispositivo per utilizzarla. L'app dovrebbe funzionare dopo aver riportato il dispositivo allo stato di fabbrica protetto.
Credito immagine: Danny Choo su Flickr