Configuração

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.

  1. Navegue até APIs e serviços.
  2. Selecione Ativar APIs e serviços.
  3. Pesquise API Play Integrity.
  4. 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.

  1. Abra o Google Play Console e selecione seu app.
  2. Navegue até Testar e lançar > Integridade do app.
  3. Em API Play Integrity, clique em Vincular um projeto do Cloud.
  4. 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.

  1. Abra o Google Play SDK Console e selecione seu SDK.
  2. Navegue até Integridade do SDK.
  3. Em API Play Integrity, clique em Vincular um projeto do Cloud.
  4. 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:

  1. Vincule o projeto relevante do Google Cloud no Play Console.
  2. Verifique se você implementou corretamente a lógica da API, incluindo estratégias de repetição adequadas.
  3. 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:

  1. Vincule seu projeto do Google Cloud ao Google Play SDK Console.
  2. 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.integrity

OpenUPM

  1. Abra as configurações do gerenciador de pacotes. Para isso, selecione a opção do menu do Unity Edit > Project Settings > Package Manager.

  2. 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.integrity
    
  3. Selecione a opção do menu do Unity Window > Package Manager para abrir o menu do gerenciador de pacotes.

  4. Defina o menu suspenso de escopo do administrador para selecionar My Registries.

  5. Selecione o pacote Plug-in Google Play Integrity para Unity na lista de pacotes e pressione Instalar.

Importar do GitHub

  1. Faça o download da versão mais recente do .unitypackage no GitHub.

  2. Importe o arquivo .unitypackage selecionando 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

  1. Faça o download do plug-in do Google Play para Unreal Engine no repositório do GitHub.

  2. Copie a pasta GooglePlay dentro da pasta Plugins no seu projeto do Unreal Engine.

  3. Abra seu projeto do Unreal Engine e clique em Editar → Plug-ins.

  4. Pesquise Google Play e marque a caixa de seleção Ativado.

  5. Reinicie o projeto do jogo e acione um build.

  6. Abra o arquivo Build.cs do projeto e adicione o módulo PlayIntegrity a PublicDependencyModuleNames:

    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:
  • O dispositivo não é confiável o suficiente.
  • O usuário não está conectado ao Google Play.
  • A versão do app instalada no dispositivo é desconhecida para o Google Play.
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.
  • No Android 13 e versões mais recentes, o veredito MEETS_STRONG_INTEGRITY exige MEETS_DEVICE_INTEGRITY e atualizações de segurança no último ano para todas as partições do dispositivo, incluindo um patch de partição do SO Android e um patch de partição do fornecedor.
  • No Android 12 e versões anteriores, o veredito MEETS_STRONG_INTEGRITY exige apenas uma prova de integridade de inicialização com suporte de hardware e não exige que o dispositivo tenha uma atualização de segurança recente. Portanto, ao usar o MEETS_STRONG_INTEGRITY, é recomendável considerar também a versão do SDK do Android no campo deviceAttributes.
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:
  • O dispositivo não é confiável o suficiente.
  • Havia problemas técnicos no dispositivo.
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:
  • O dispositivo não é confiável o suficiente.
  • A versão do app instalada no dispositivo é desconhecida para o Google Play.
  • Havia problemas técnicos no dispositivo.
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:
  • O dispositivo não é confiável o suficiente.
  • O formato do dispositivo não é um smartphone, tablet ou dobrável.
  • O dispositivo não está executando o Android 6 (nível 23 da API) ou mais recente.
  • A versão do app instalada no dispositivo é desconhecida para o Google Play.
  • A versão da Google Play Store no dispositivo está desatualizada.
  • Somente para jogos: a conta de usuário não tem uma licença do Google Play para o jogo.
  • Uma solicitação padrão foi usada com o parâmetro verdictOptOut.
  • Uma solicitação padrão foi usada com uma versão da biblioteca da API Play Integrity que ainda não oferece suporte ao risco de acesso a apps para solicitações padrão.
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

  1. Abra o Play Console e selecione seu app .
  2. Acesse Testar e lançar > Integridade do app.
  3. Ao lado de API Play Integrity, clique em Configurações.
  4. Em Solicitações clássicas, ao lado de Criptografia de resposta, clique em Editar.

Para mudar para chaves gerenciadas por você:

  1. Selecione Gerenciar e fazer o download das minhas próprias chaves de criptografia de resposta e faça upload da sua chave pública.
  2. Clique em Salvar para baixar automaticamente as chaves criptografadas.
  3. Atualize seu servidor de back-end seguro para descriptografar localmente usando essas chaves.

Para mudar para chaves gerenciadas pelo Google:

  1. Selecione Permitir que o Google gerencie minhas chaves de criptografia de resposta (recomendado).
  2. Clique em Salvar alterações.