Esta página explica como configurar seu app, jogo ou SDK para usar a API Play Integrity. Para integrar a API, você precisa ter um projeto do Google Cloud, que é necessário para começar a fazer solicitações. Em seguida, vincule seu projeto do Google Cloud ao Google Play Console (para apps) ou ao Google Play SDK Console (para SDKs). É necessário vincular seu projeto para acessar outras opções de configuração, recursos de teste, relatórios da API e solicitar um aumento na cota diária de solicitações.
Ativar a API Play Integrity
Todo app ou SDK que chama a API Play Integrity precisa ter um projeto do Google Cloud para usar a API e monitorar o uso. Essa é a primeira etapa obrigatória para todas as integrações. É possível ativar a API Play Integrity no console do Google Cloud ou pular diretamente para a vinculação do projeto do Cloud ao Google Play e a API Play Integrity será ativada para você.
No Console do Google Cloud, crie um projeto do Cloud ou escolha um projeto atual que você queira usar com a API Play Integrity.
- Navegue até APIs e serviços.
- Selecione Ativar APIs e serviços.
- Pesquise API Play Integrity.
- Clique em Ativar.
Agora você pode integrar a API Play Integrity ao app. Para acessar recursos avançados e aumentos de cota, siga para a etapa de vinculação.
Vincular ao Google Play (recomendado)
Vincule seu app ou SDK ao Google Play seguindo estas instruções.
Para apps e jogos no Google Play
Os apps distribuídos no Google Play precisam vincular o projeto do Google Cloud no Google Play Console para ativar recursos extras e solicitar um aumento na cota diária de API.
- Abra o Google Play Console e selecione seu app.
- Navegue até Testar e lançar > Integridade do app.
- Em API Play Integrity, clique em Vincular um projeto do Cloud.
- Escolha o projeto do Google Cloud que você planeja usar com a API Play Integrity. Se ela ainda não estiver ativada para o projeto, será ativada automaticamente após a vinculação.
Para provedores de SDK no Google Play SDK Console
Os provedores de SDK que usam o Google Play SDK Console podem vincular o projeto do Google Cloud para atribuir o uso da API ao SDK, em vez dos apps individuais que o usam, ativar recursos extras e solicitar um aumento na cota diária da API. O acesso ao Google Play SDK Console está sujeito a critérios de qualificação.
- Abra o Google Play SDK Console e selecione seu SDK.
- Navegue até Integridade do SDK.
- Em API Play Integrity, clique em Vincular um projeto do Cloud.
- Escolha o projeto do Google Cloud que você planeja usar com a API Play Integrity. Se ela ainda não estiver ativada, isso vai acontecer automaticamente ao vincular.
Entender os limites de uso da API Play Integrity
Seu app ou SDK tem um limite diário padrão de 10.000 solicitações totais, vinculadas ao número do projeto do Cloud associado. Se você prevê um volume maior, peça um aumento de cota.
| Ação | Cota diária | Observações |
|---|---|---|
| Solicitações de token | 10.000 | Compartilhada entre solicitações clássicas e preparações de token padrão |
| Descriptografias de token nos servidores do Google | 10.000 | Compartilhada entre solicitações clássicas e padrão |
Aumentar o número diário máximo de solicitações
O aumento da cota está sujeito a critérios de qualificação. Os aumentos de cota se aplicam à geração de tokens do lado do cliente e às chamadas de descriptografia do lado do servidor. O processamento de solicitações pode levar até uma semana. Recomendamos monitorar o uso da API Play Integrity no console do Google Cloud e definir alertas de cota para evitar interrupções no serviço.
Mesmo com uma cota maior, continue limitando as solicitações clássicas a ações pouco frequentes e de alto valor para preservar a bateria do usuário e o uso de dados.
Para apps e jogos no Google Play
Para se qualificar para um aumento de cota, o app precisa estar disponível no Google Play além de outros canais de distribuição. Vincule seu projeto do Google Cloud ao app no Play Console. As solicitações de cota de projetos desvinculados serão rejeitadas.
Para solicitar um aumento:
- Vincule o projeto relevante do Google Cloud no Play Console.
- Verifique se você implementou corretamente a lógica da API, incluindo estratégias de repetição adequadas.
- Envie o formulário de solicitação de cota.
Para provedores de SDK no Google Play SDK Console
Para se qualificar para um aumento de cota, seu SDK precisa ser reivindicado no Google Play SDK Console, e seu projeto do Cloud precisa estar vinculado a ele. O acesso ao Google Play SDK Console está sujeito a critérios de qualificação.
Para solicitar um aumento:
- Vincule seu projeto do Google Cloud ao Google Play SDK Console.
- Preencha o formulário de suporte do Google Play SDK Console.
Na seção de comentários abertos, descreva seu caso de uso, o tipo de solicitações de API que você está fazendo (padrão, clássica ou ambas), a frequência com que você faz solicitações e o número máximo diário de solicitações que você quer.
Integrar a API Play Integrity ao app
Para integrar a API Play Integrity ao app ou SDK, siga um dos procedimentos abaixo, dependendo do ambiente de desenvolvimento usado:
Kotlin ou Java
A biblioteca Android mais recente da API Play Integrity está disponível no
repositório Maven do Google. Adicione a seguinte dependência ao arquivo
build.gradle do app:
implementation 'com.google.android.play:integrity:1.6.0'
Unity
As seções a seguir descrevem como integrar e configurar a API Google Play Integrity para projetos do Unity, abordando versões compatíveis do Unity, métodos de instalação e configuração do ambiente.
Versões compatíveis do Unity
- Todas as versões 2019.x, 2020.x e mais recentes têm suporte.
- Se você usar o Unity 2018.x, há suporte para a versão 2018.4 ou mais recente.
- O Unity 2017.x e versões anteriores não têm suporte.
Configurar seu ambiente de desenvolvimento
OpenUPM-CLI
Se a CLI do OpenUPM estiver instalada, você poderá instalar o registro do OpenUPM com o seguinte comando:
openupm add com.google.play.integrityOpenUPM
Abra as configurações do gerenciador de pacotes. Para isso, selecione a opção do menu do Unity Edit > Project Settings > Package Manager.
Adicione o OpenUPM como um registro com escopo à janela do gerenciador de pacotes:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integritySelecione a opção do menu do Unity Window > Package Manager para abrir o menu do gerenciador de pacotes.
Defina o menu suspenso de escopo do administrador para selecionar My Registries.
Selecione o pacote Plug-in Google Play Integrity para Unity na lista de pacotes e pressione Instalar.
Importar do GitHub
Faça o download da versão mais recente do
.unitypackageno GitHub.Importe o arquivo
.unitypackageselecionando a opção de menu Assets > Import package > Custom Package do Unity e importando todos os itens.
Unreal Engine
As seções a seguir descrevem como integrar e configurar a API Google Play Integrity para projetos do Unreal Engine.
Versões compatíveis do Unreal Engine
O plug-in é compatível com o Unreal Engine 5.0 e todas as versões subsequentes.
Configurar seu ambiente de desenvolvimento
Faça o download do plug-in do Google Play para Unreal Engine no repositório do GitHub.
Copie a pasta
GooglePlaydentro da pastaPluginsno seu projeto do Unreal Engine.Abra seu projeto do Unreal Engine e clique em Editar → Plug-ins.
Pesquise Google Play e marque a caixa de seleção Ativado.
Reinicie o projeto do jogo e acione um build.
Abra o arquivo
Build.csdo projeto e adicione o móduloPlayIntegrityaPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
Nativo
Siga o guia de configuração nativa. Para mais detalhes, consulte a documentação de referência da API nativa da Play Integrity.
Configurar respostas da API (opcional)
A resposta da API inclui vereditos padrão retornados em cada solicitação. Se você vinculou seu projeto do Cloud ao Play Console ou ao Play SDK Console, é possível personalizar a resposta da API para incluir mais informações.
Vereditos de integridade padrão
Os vereditos de integridade abaixo são retornados na resposta da API Play Integrity por padrão:
| Campo de resposta | Valor | Descrição |
|---|---|---|
| Integridade do dispositivo | MEETS_DEVICE_INTEGRITY |
O app está sendo executado em um dispositivo Android genuíno e certificado. No Android 13 e versões mais recentes, há uma prova com suporte de hardware de que o carregador de inicialização do dispositivo está bloqueado e o SO Android carregado é uma imagem certificada do fabricante do dispositivo. |
| Vazio (um valor em branco) | O app está sendo executado em um dispositivo que tem sinais de ataque, como hooks de API, ou comprometimentos do sistema, como acesso root, ou o app não está sendo executado em um dispositivo físico (como um emulador rejeitado pelas verificações de integridade do Google Play). | |
| Detalhes da conta do Google Play | LICENSED |
O usuário tem titularidade do app. Em outras palavras, o usuário instalou ou atualizou o app no dispositivo pelo Google Play. |
UNLICENSED |
O usuário não tem a titularidade do app. Isso acontece quando, por exemplo, o usuário transfere o app por sideload ou não o adquire do Google Play. | |
UNEVALUATED |
Os detalhes de licenciamento não foram avaliados porque um requisito está ausente. Isso pode acontecer por vários motivos, incluindo:
|
|
| Integridade do aplicativo | PLAY_RECOGNIZED |
O app e o certificado correspondem às versões distribuídas pelo Google Play. |
UNRECOGNIZED_VERSION |
O nome do certificado ou do pacote não corresponde aos registros do Google Play. | |
UNEVALUATED |
A integridade do aplicativo não foi avaliada. Um requisito necessário está ausente, por exemplo, o dispositivo não é confiável o suficiente. |
Google Play Games para PC
Se você distribuir o app para o Google Play Games para PC, o recebimento de um identificador extra no veredito de integridade do dispositivo será ativado automaticamente:
| Campo de resposta | Identificador | Descrição |
|---|---|---|
| Integridade do dispositivo | MEETS_VIRTUAL_INTEGRITY |
O app está sendo executado em um emulador Android com o Google Play Services. O emulador foi aprovado nas verificações de integridade do sistema e atende aos principais requisitos de compatibilidade do Android. |
Vereditos de integridade opcionais
Se você tiver vinculado seu projeto do Cloud no Play Console ou no Play SDK Console, poderá ativar o recebimento de informações adicionais.
Para fazer mudanças, acesse o Play Console e navegue até Teste e lançamento > Integridade do app. Ao lado de API Play Integrity, clique em Configurações. Clique em Mudar respostas, edite e salve as mudanças.
Informações do dispositivo
Os identificadores adicionais do dispositivo no veredito deviceIntegrity
informam mais sobre o ambiente do dispositivo em que o app está sendo executado.
Um único dispositivo retorna vários identificadores se atender aos critérios de cada um deles.
É possível usar esses rótulos para criar uma estratégia de aplicação por níveis. Por exemplo, você pode confiar mais em um dispositivo que retorna três rótulos
(MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY e
MEETS_BASIC_INTEGRITY) do que em um que retorna apenas um
(MEETS_BASIC_INTEGRITY).
Os atributos do dispositivo informam a versão do SDK do Android do SO Android no dispositivo. No futuro, ele poderá ser estendido com outros atributos de dispositivo.
A atividade recente do dispositivo retorna um nível que varia de LEVEL_1 (baixo número de solicitações) a LEVEL_4 (alto número de solicitações). Níveis altos de atividade podem indicar que um dispositivo está sendo usado para gerar tokens em excesso para distribuição abusiva a dispositivos não confiáveis.
Com a recuperação de dispositivo, é possível armazenar alguns dados personalizados por dispositivo com aparelhos específicos, que podem ser recuperados de forma confiável quando o app for instalado novamente no mesmo dispositivo.
Depois de ativar as informações opcionais, a resposta da API vai incluir novos campos e respostas no veredito:
| Campo de resposta | Identificador | Descrição | |
|---|---|---|---|
| Integridade do dispositivo | MEETS_BASIC_INTEGRITY |
O app está sendo executado em um dispositivo que é aprovado nas verificações básicas de integridade do sistema. O carregador de inicialização do dispositivo pode estar bloqueado ou desbloqueado, e o
estado de inicialização pode ser verificado ou não. O dispositivo pode não ser certificado, e, nesse caso, o Google não pode oferecer garantias de segurança, privacidade ou compatibilidade de apps. No Android 13 e versões mais recentes, o veredito
MEETS_BASIC_INTEGRITY exige que a
raiz de confiança do atestado seja fornecida pelo Google. |
|
MEETS_STRONG_INTEGRITY |
O app está sendo executado em um dispositivo Android genuíno e certificado
com uma atualização de segurança recente.
|
||
| Atributos do dispositivo | sdkVersion: 19, 20, ..., 36 |
A versão do SDK do SO Android em execução no dispositivo.
O número retornado é mapeado para
Build.VERSION_CODES. |
|
| Vazio (um valor em branco) | A versão do SDK não é avaliada porque um requisito necessário está ausente. Nesse caso, o campo sdkVersion não está definido. Portanto, o campo deviceAttributes está vazio.
Isso pode acontecer porque:
|
||
| Solicitações de token de integridade da API padrão neste dispositivo na última hora por app | Solicitações de token de integridade da API clássica neste dispositivo na última hora por app | ||
| Atividade recente do dispositivo | LEVEL_1 (mínimo) |
10 ou menos | 5 ou menos |
LEVEL_2 |
Entre 11 e 25 | Entre 6 e 10 | |
LEVEL_3 |
Entre 26 e 50 | Entre 11 e 15 | |
LEVEL_4 (mais alto) |
Mais de 50 | Mais de 15 | |
UNEVALUATED |
A atividade recente do dispositivo não foi avaliada. Isso pode acontecer porque:
|
||
| Reconhecimento do dispositivo | values: bitFirst, bitSecond, bitThird |
Esses são os valores de bits que você definiu no passado para o dispositivo específico. Você decide o significado de cada bit. Os três valores de bit são falsos por padrão. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird |
Essas são as datas de gravação de valores de bits em UTC, precisas até o ano e o mês. A data de gravação de um bit de recall é atualizada sempre que o bit é definido como "true" e removida quando ele é definido como "false". | ||
Detalhes do ambiente
O risco de acesso a apps informa se outros apps estão em execução e podem ser usados para capturar a tela, mostrar sobreposições ou controlar o dispositivo. Os serviços de acessibilidade verificados conhecidos pelo Google Play são excluídos automaticamente desse veredito.
O veredito do Play Protect informa se o Google Play Protect está ativado no dispositivo e se ele encontrou malware conhecido.
Depois de ativar as informações opcionais, a resposta da API vai incluir novos campos e respostas no veredito:
| Campo de resposta | Valor | Descrição |
|---|---|---|
| Veredito de risco de acesso ao app | KNOWN_INSTALLED |
Os apps são instalados pelo Google Play ou pré-carregados na partição do sistema pelo fabricante do dispositivo. |
KNOWN_CAPTURING |
Apps instalados pelo Google Play ou pré-carregados no dispositivo estão em execução e podem ser usados para ler ou capturar entradas e saídas do app solicitante. Por exemplo, apps de gravação de tela. | |
KNOWN_CONTROLLING |
Apps instalados pelo Google Play ou pré-carregados no dispositivo estão em execução e podem ser usados para controlar o dispositivo e as entradas e saídas do app solicitante. Por exemplo, apps de controle remoto. | |
KNOWN_OVERLAYS |
Apps instalados pelo Google Play ou pré-carregados no dispositivo estão em execução e podem mostrar sobreposições no app solicitante. | |
UNKNOWN_INSTALLED |
Outros apps estão instalados e não foram instalados pelo Google Play ou pré-carregados na partição do sistema pelo fabricante do dispositivo. | |
UNKNOWN_CAPTURING |
Outros apps estão em execução (não instalados pelo Google Play ou pré-carregados no dispositivo) e podem ser usados para ler ou capturar entradas e saídas do app solicitante. Por exemplo, apps de gravação de tela. | |
UNKNOWN_CONTROLLING |
Outros apps estão em execução (não instalados pelo Google Play ou pré-carregados no dispositivo) e podem ser usados para controlar o dispositivo e as entradas e saídas do app solicitante. Por exemplo, apps de controle remoto. | |
UNKNOWN_OVERLAYS |
Outros apps estão em execução (não instalados pelo Google Play ou pré-carregados no dispositivo) e podem estar mostrando sobreposições no app solicitante. | |
| Vazio (um valor em branco) | O risco de acesso a apps não é avaliado se um requisito necessário estiver ausente. Nesse caso, o campo appAccessRiskVerdict está vazio. Isso pode acontecer por vários motivos, incluindo:
|
|
| Veredito do Play Protect | NO_ISSUES |
O Play Protect está ativado e não encontrou problemas de apps no dispositivo. |
NO_DATA |
O Play Protect está ativado, mas nenhuma verificação foi realizada ainda. O dispositivo ou o app da Play Store pode ter sido redefinido recentemente. | |
POSSIBLE_RISK |
O Play Protect está desativado. | |
MEDIUM_RISK |
O Play Protect está ativado e encontrou apps potencialmente nocivos instalados no dispositivo. | |
HIGH_RISK |
O Play Protect está ativado e encontrou apps perigosos instalados no dispositivo. | |
UNEVALUATED |
O veredito do Play Protect não foi avaliado. Um requisito necessário está ausente, por exemplo, o dispositivo não é confiável o suficiente. |
Definir as configurações de solicitações clássicas (opcional)
Pule esta seção se você quiser fazer apenas solicitações de API padrão.
Por padrão, o Google Play gerencia a criptografia de respostas, ou seja, seu back-end chama o servidor do Google para descriptografar veredictos. Se preferir, gerencie as chaves por conta própria para descriptografar localmente no seu ambiente de servidor seguro.
Permitir que o Google gerencie sua criptografia de resposta (recomendado)
Recomendamos permitir que o Google gere e gerencie chaves para proteger a segurança do app. O back-end vai chamar o servidor do Google Play para descriptografar e verificar as respostas.
Gerenciar suas próprias chaves de criptografia
Para descriptografar localmente no seu próprio ambiente de servidor seguro, faça o download das chaves de criptografia no Play Console ou no Play SDK Console. Seu app precisa estar disponível no Google Play para usar esse recurso.
Antes de mudar sua estratégia de gerenciamento de criptografia de resposta no Play Console, verifique se o servidor está configurado corretamente para descriptografar e verificar os tokens de integridade nos servidores do Google Play para evitar interrupções.
Alternar entre chaves de criptografia gerenciadas pelo Google e autogerenciadas
- Abra o Play Console e selecione seu app .
- Acesse Testar e lançar > Integridade do app.
- Ao lado de API Play Integrity, clique em Configurações.
- Em Solicitações clássicas, ao lado de Criptografia de resposta, clique em Editar.
Para mudar para chaves gerenciadas por você:
- Selecione Gerenciar e fazer o download das minhas próprias chaves de criptografia de resposta e faça upload da sua chave pública.
- Clique em Salvar para baixar automaticamente as chaves criptografadas.
- Atualize seu servidor de back-end seguro para descriptografar localmente usando essas chaves.
Para mudar para chaves gerenciadas pelo Google:
- Selecione Permitir que o Google gerencie minhas chaves de criptografia de resposta (recomendado).
- Clique em Salvar alterações.