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 no Google Play Console (para apps) ou no Google Play SDK Console (para SDKs). É necessário vincular seu projeto para acessar outras opções de configuração, recursos de teste, relatórios de 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 na nuvem 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 na nuvem ao Google Play, e a API Play Integrity será ativada para você.
No Console do Google Cloud, crie um novo projeto na nuvem ou escolha um projeto na nuvem 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 seu app. Para acessar recursos avançados e aumentos de cota, prossiga para a etapa de vinculação.
Vincular ao Google Play (recomendado)
Siga estas instruções para vincular seu projeto do Google Cloud ao app ou SDK.
Para apps e jogos no Google Play
Os apps distribuídos no Google Play precisam vincular o projeto na nuvem do Google Cloud no Google Play Console para ativar outros recursos e solicitar um aumento na cota diária da API.
- Abra o Google Play Console e selecione seu app.
- Acesse Protegido com o Google Play.
- Ao lado de API Play Integrity, selecione o botão Começar para acessar as Configurações da API Play Integrity.
- Clique no botão Vincular projeto do Cloud.
- Escolha o projeto na nuvem do Google Cloud que você quer usar com a API Play Integrity. Se a API Play Integrity ainda não estiver ativada para o projeto, ela será ativada automaticamente após a vinculação.
Para provedores de SDK no 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 de aos apps individuais que o usam, ativar outros recursos e solicitar um aumento na cota diária da API. O acesso ao Google Play SDK Console está sujeito aos 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 na nuvem.
- Escolha o projeto na nuvem do Google Cloud que você pretende usar com a API Play Integrity. Se ela ainda não estiver ativada para o projeto, será ativada automaticamente após a vinculação.
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 no total, vinculado ao número do projeto na nuvem associado. Se você prevê um volume maior, pode solicitar um aumento de cota.
| Ação | Cota diária | Observações |
|---|---|---|
| Solicitações de token | 10.000 | Compartilhado 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 aos 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 das 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 e o uso de dados do usuário.
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. É necessário vincular o projeto na nuvem do Google 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 as estratégias de repetição adequadas.
- Envie o formulário de solicitação de cota.
Para provedores de SDK no Play SDK Console
Para se qualificar para um aumento de cota, seu SDK precisa ser reivindicado no Google Play SDK Console, e seu projeto na nuvem precisa estar vinculado ao SDK. O acesso ao Google Play SDK Console está sujeito a critérios de qualificação.
Para solicitar um aumento:
- Vincule seu projeto na nuvem do Google Cloud no Google Play SDK Console.
- Preencha o formulário de suporte ao desenvolvedor.
Nos comentários abertos, forneça os detalhes do SDK, descreva seu caso de uso, o tipo de solicitações de API que você está fazendo (padrão, clássica ou ambas), com que frequência você faz solicitações e o 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 seu 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, incluindo as versões compatíveis do Unity, os métodos de instalação e a 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 o 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 do Google Play Integrity para Unity na lista e pressione Install.
Importar do GitHub
Baixe a 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 mais recentes.
Configurar o ambiente de desenvolvimento
Faça o download do plug-in do Play para Unreal Engine no repositório do GitHub.
Copie a pasta
GooglePlaypara dentro da pastaPluginsno projeto do Unreal Engine.Abra o projeto do Unreal Engine e clique em Edit → Plugins.
Pesquise Google Play e marque a caixa de seleção Ativado.
Reinicie o projeto de 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 na nuvem no Play Console ou no Play SDK Console, pode 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 |
|---|---|---|
| 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 Google Play no dispositivo. |
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. | |
| 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). |
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ê vinculou seu projeto na nuvem no Play Console ou no Play SDK Console, pode ativar o recebimento de mais informações.
Para fazer mudanças, acesse o Play Console e navegue até Protegido pelo Google Play. Ao lado de API Play Integrity, clique em Gerenciar. Clique em Mudar respostas, edite e salve as mudanças.
Informações do dispositivo
Os rótulos de dispositivo adicionais no veredito deviceIntegrity
informam mais sobre o ambiente do dispositivo em que o app está sendo executado.
Um único dispositivo vai retornar vários rótulos se atender aos critérios de cada um.
Você pode usar esses rótulos para criar uma estratégia de aplicação em 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.
O reconhecimento do dispositivo permite armazenar alguns dados personalizados de cada dispositivo específico que podem ser recuperados de forma confiável quando o app é instalado novamente no mesmo dispositivo.
Depois que você 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.
Nesse caso, o Google não pode fornecer 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, ..., 37 |
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 (menor) |
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 alta) |
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 do valor de bit em UTC, com precisão de ano e mês. A data de gravação de um bit de recall é atualizada sempre que o bit é definido como verdadeiro e é removida quando o bit é definido como falso. | ||
Detalhes do ambiente
O risco de acesso a apps informa se outros apps em execução 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 que você 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 estar mostrando 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 será avaliado se um requisito necessário estiver ausente. Nesse
caso, o campo appAccessRiskVerdict fica 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 os vereditos. Como alternativa, você pode gerenciar 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 Protegido com o Google Play.
- Ao lado de API Play Integrity, clique em Gerenciar.
- Em Solicitações clássicas, ao lado de Criptografia de resposta, clique em Editar.
Para mudar para chaves autogerenciadas:
- 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 as chaves gerenciadas pelo Google:
- Selecione Permitir que o Google gerencie minhas chaves de criptografia de resposta (recomendado).
- Clique em Salvar alterações.