O que é SafetyNet

Fazer Root no seu aparelho Android oferece acesso a uma variedade de novas possibilidades no sistema Android. Mas alguns aplicativos como Netflix, PokemonGo e Snapchat podem não gostar muito disso.

O Google usa o sistema chamado de SafetyNet para detectar se seu dispositivo está rooteado ou não e bloqueia o acesso a esses recursos. O Google não é o único a bloquear o acesso Root, ao a pelo menos não gostar dele, muitos aplicativos de terceiros também não funcionarão em dispositivos Android rooteados, como citamos acima.

O que é SafetyNet

Os dispositivos Android oferecem uma ” API SafetyNet ” , que faz parte do Google Play Services instalada em dispositivos Android aprovados pelo Google. Esta API “fornece acesso aos serviços do Google que o ajudam a avaliar a segurança e a segurança de um dispositivo Android”, de acordo com o Google. Se você é um desenvolvedor Android, você pode chamar essa API em seu aplicativo para verificar se o dispositivo em que você está executando foi adulterado, ou seja, se alguém fez Root ou mudou alguma coisa nele.

Esta API SafetyNet foi projetada para verificar se um dispositivo foi adulterado – seja ele rooteado por um usuário, esteja executando uma Custom ROM (ROM personalizada) ou tenha sido infectado com malware de baixo nível, por exemplo.

Os dispositivos que são fornecidos com a Play Store da Google e outros aplicativos instalados devem passar no teste do Android, o “Compatibility Test Suite”. Fazer Root em um dispositivo ou instalar uma Custom ROM impede que um dispositivo seja “compatível com CTS”. É assim que a API SafetyNet pode dizer se você fez Root – ele apenas verifica a compatibilidade CTS. Da mesma forma, se você receber um dispositivo Android que nunca veio com os aplicativos do Google – como alguns enviados da China ou comprado em algum camelô – não será considerado “compatível com CTS”, mesmo que você não tenha Root.

Para obter essa informação, a Google Play Services baixa um programa chamado “snet” e o executa em segundo plano no seu dispositivo. O programa coleta dados do seu dispositivo e o envia para o Google regularmente. O Google usa essas informações para uma variedade de propósitos, como para obter uma imagem do ecossistema Android mais amplo para determinar se o software do seu dispositivo foi ou não adulterado. O Google não explica exatamente o que o snet está procurando, mas é provável que o snet verifique se a partição do sistema foi modificada do estado de fábrica.

Algo muito parecido acontece com o Dm-Verity, na inicialização do Android, e você saber mais sobre isso em nosso artigo exclusivo:

Você pode verificar o status do SafetyNet do seu dispositivo baixando um aplicativo como o exemplo SafetyNet Helper ou SafetyNet Playground. O aplicativo irá perguntar ao serviço SafetyNet do Google sobre o status do seu dispositivo e mostrar a resposta do Google.

Para mais detalhes técnicos, leia esta postagem no blog escrita por John Kozyrakis (em inglês), um estrategista técnico da Cigital, uma empresa de segurança de software. Ele cavou na SafetyNet e explica mais sobre como funciona.

SafetyNet é obrigatório?

O SafetyNet é opcional para desenvolvedores de aplicativos, e os desenvolvedores podem optar por usá-lo ou não. O SafetyNet apenas impede que um aplicativo funcione com Root ou com sistema modificado, se o desenvolvedor de um aplicativo não quiser que ele funcione em dispositivos rooteados ou modificados, basta implementa a chamada.

A maioria dos aplicativos não verificará a API da SafetyNet. Mesmo um aplicativo que verifique a API SafetyNet – como os aplicativos de teste acima – não parará de funcionar se eles receberem uma resposta que seu aparelho foi modificado. O desenvolvedor do aplicativo tem que verificar a API SafetyNet e fazer com que o aplicativo se recuse a funcionar se descobrir que o software do seu dispositivo foi modificado. O próprio aplicativo Android Pay do Google é um bom exemplo disso em ação.

Outros relatos mostram que o aplicativo da Netflix, se detectado modificação no Android, como Root, não é mais encontrado para instalação na Play Store, caso o usuário opte por instalar de outras fontes, o mesmo funciona, porém relatos de usuários dizem que a qualidade do stream fica horrível.

O Android Pay não funcionará em dispositivos com Root

A solução de pagamento móvel do Android Pay da Google não funciona em todos os dispositivos Android rooteados. Tente iniciar, e você verá apenas uma mensagem dizendo “O Android Pay não pode ser usado. O Google não consegue verificar se o seu dispositivo ou o software que está sendo executado é compatível com Android.”

Não se trata apenas de rootear, é claro – executar uma ROM personalizada também o afetaria. A API SafetyNet afirmará que não é compatível com Android se você estiver usando uma ROM personalizada.

Lembre-se, a API não detecto somente Root. Se o seu dispositivo foi infectado por algum malware no nível do sistema com a habilidade de espionar o Android Pay e outros aplicativos, a API SafetyNet também evitaria que o Android Pay funcione, o que é bom.

Rotear seu dispositivo quebra o modelo de segurança normal do Android. O Android Pay normalmente protege seus dados de pagamento usando os recursos de sandboxing do Android, mas os aplicativos podem sair da caixa de proteção em um dispositivo rooteado

O Google não tem como saber o quão seguro o Android Pay seria em um dispositivo específico se ele estiver rooteado ou executando uma ROM personalizada desconhecida, então eles o bloqueiam. Um engenheiro do Android Pay explicou o problema no fórum XDA Developers(artigo em inglês) se tiver curiosidade em ler mais.

Outras aplicativos também podem detectar Root

O SafetyNet é apenas uma maneira de um aplicativo verificar se ele está sendo executado em um dispositivo rooteado. Por exemplo, os dispositivos Samsung incluem um sistema de segurança chamado KNOX. Se você fez root no seu dispositivo, a segurança KNOX é acusada. O Samsung Pay, o próprio aplicativo de pagamentos de celular da Samsung, se recusará a funcionar em dispositivos rooteados. A Samsung está usando KNOX para isso, mas também pode usar o SafetyNet.

Da mesma forma, muitos aplicativos de terceiros impedirão que você os use, e nem todos usam o SafetyNet. Eles podem apenas verificar a presença de aplicativos e processos root conhecidos em um dispositivo.

É difícil encontrar uma lista atualizada de aplicativos que não funcionam quando um dispositivo está rooteado. No entanto, o RootCloak fornece várias listas. Essas listas podem ser desatualizadas, mas elas são as melhores que podemos encontrar. Muitos são bancários e outros aplicativos de pagamento móvel, que bloqueiam o acesso em telefones rooteados na tentativa de proteger suas informações bancárias de serem capturadas por outros aplicativos.

Os aplicativos para serviços de transmissão de vídeo também podem se recusar a funcionar em um dispositivo rooteado como uma espécie de medida DRM.

Alguns aplicativos conseguem burlar o SafetyNet

O Google está jogando um jogo de gato e rato com a SafetyNet, atualizando-o constantemente em uma tentativa de ficar à frente das pessoas que o contornam. Por exemplo, o desenvolvedor Android Chainfire criou um novo método de rooteamento de dispositivos Android sem modificar a partição do sistema, conhecida como “Root sem sistema”. A SafetyNet inicialmente não detectou tais dispositivos como sendo adulterada e o Android Pay funcionou – mas o SafetyNet foi atualizado para detectar esse novo método de rooteamento. Isso significa que o Android Pay não funciona mais com o método Root sem sistema.

Dependendo de como um aplicativo verifica o acesso ao Root, você poderá enganá-lo. Por exemplo, existem métodos para fazer Root de alguns dispositivos Samsung sem tropeçar a segurança KNOX, o que permitiria que você continuasse usando o Samsung Pay.

No caso de aplicativos que apenas buscam aplicativos Root em seu sistema, existe um  módulo Xposed Framework denominado RootCloak  que, de alguma forma, engana o sistema de verificação dos aplicativos. Isso funciona com aplicativos como DirecTV GenieGo, Best Buy CinemaNow e Filmes da Flixster, que normalmente não funcionam em dispositivos rooteados. No entanto, se esses aplicativos foram atualizados para usar o SafetyNet do Google, eles não seriam tão fáceis de enganar.


A maioria dos aplicativos continuará funcionando normalmente depois de fazer Root no seu dispositivo. Os aplicativos de pagamento móvel são a grande exceção, assim como alguns outros aplicativos bancários e financeiros. Os serviços de transmissão de vídeos pagos às vezes tentam impedir você de assistir seus vídeos também, como a já citada Netflix.

Se um aplicativo que você precisa não funciona no seu dispositivo rooteado, você pode sempre desratizar seu dispositivo para usá-lo. O aplicativo deve funcionar depois de retornar seu dispositivo para seu estado de fábrica, original e seguro.