Esquema para pacotes de metadados do app

A partir do Android 14, o instalador do pacote do Android pode ingerir metadados sobre um app, por exemplo, práticas de segurança de dados, para uso em recursos da Plataforma Android, como a solicitação de permissão de localização atualizada.

Há duas maneiras de fornecer esses metadados:

  • Para um app pré-carregado na imagem do sistema, os fabricantes de dispositivos podem fornecer metadados sobre o app adicionando um arquivo XML à imagem com o pacote persistente descrito abaixo.

  • Para apps que estão sendo instalados ou atualizados, para especificar esses metadados, os instaladores de apps precisam transmitir um objeto PersistableBundle para o método setAppMetadata().

O pacote de nível superior persistente consiste nos pares de chave-valor a seguir. A menos que o contrário seja especificado, cada chave é opcional.

version (obrigatório)
O número da versão do formato de metadados do app. Use 2 como o valor da versão atual e long como o tipo. Se as chaves ou os tipos de conteúdo esperados de AppMetadata mudarem, o Android vai mudar o número da versão.
safety_labels
Um objeto PersistableBundle que especifica os rótulos de segurança do app.
system_app_safety_label
Um objeto PersistableBundle que especifica o system-app-safety-label do app. Para apps que funcionam como um serviço do sistema, o pacote system_app_safety_label é usado em vez do pacote safety_labels.
transparency_info
Um objeto PersistableBundle que especifica as informações de transparência do app.

Formato dos rótulos de segurança

O pacote safety_labels contém os seguintes pares de chave-valor:

version (obrigatório)
O número da versão do formato de rótulos de segurança. Use 1 como o valor da versão atual e long como o tipo.
data_labels
Um objeto PersistableBundle que especifica os dados que o app coleta e compartilha.
security_labels
Um objeto PersistableBundle que especifica as práticas de exclusão e criptografia de dados do app.
third_party_verification
Um objeto PersistableBundle que especifica como as práticas de segurança dos dados do app são verificadas por terceiros.

Dados coletados e compartilhados

O pacote data_labels contém os seguintes pares de chave-valor:

data_collected
Um objeto PersistableBundle que especifica os tipos de dados coletados pelo app.
data_shared
Um objeto PersistableBundle que especifica os tipos de dados compartilhados pelo app.

Categorias de dados

As chaves data_collected e data_shared usam o formato de pacote data_category, que contém os pares de chave-valor mostrados na lista a seguir. Cada chave é mapeada para um objeto PersistableBundle que especifica os tipos de dados de uma categoria específica.

  • personal
  • financial
  • location
  • email_text_message
  • photo_video
  • audio
  • storage
  • health_fitness
  • contacts
  • calendar
  • identifiers
  • app_performance
  • actions_in_app
  • search_and_browsing

Tipos de dados

Cada chave no pacote data_category é mapeada para um pacote diferente que usa o formato data_type. As chaves especificadas no formato data_type dependem do que você escolhe para uma data_category.

Os possíveis pares de chave-valor data_type aparecem nas listas a seguir. O valor de cada uma dessas chaves é um objeto PersistableBundle que descreve as práticas de uso de dados do app para esse tipo específico de dados. Alguns tipos de dados usam apenas uma chave.

Pessoais

  • name
  • email_address
  • physical_address
  • phone_number
  • race_ethnicity
  • political_or_religious_beliefs
  • sexual_orientation_or_gender_identity
  • personal_identifiers
  • other

Finanças

  • card_bank_account
  • purchase_history
  • credit_score
  • other

Local

  • approx_location
  • precise_location

E-mail e mensagens de texto

  • emails
  • text_messages
  • other

Fotos e vídeos

  • photos
  • videos

Áudio

  • sound_recordings
  • music_files
  • other

Armazenamento

files_docs

Saúde e fitness

  • health
  • fitness

Contatos

contacts

Agenda

calendar

Identificadores

other

Desempenho do app

  • crash_logs
  • performance_diagnostics
  • other

Ações no app

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

Pesquisa e navegação

web_browsing_history

Uso de dados

O pacote data_usage contém os seguintes pares de chave-valor:

purposes(obrigatório)

Uma matriz de números inteiros que representa motivos específicos para coletar ou compartilhar dados e usa o método PersistableBundle putIntArray. Pelo menos uma das finalidades abaixo é necessária para cada pacote.

  • 1: PURPOSE_APP_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS
  • 3: PURPOSE_DEVELOPER_COMMUNICATIONS
  • 4: PURPOSE_FRAUD_PREVENTION_SECURITY
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional

Valor booleano. Especifica se os usuários podem ativar ou desativar a coleta de dados.

Observação : defina esse valor apenas para pacotes data_category que representam a coleta de dados. Não o defina para compartilhamento de dados.

ephemeral

Valor booleano. Especifica se o app processa os dados do lado do servidor apenas na memória, e não no disco, e se o app retém os dados por mais tempo que o necessário para atender à solicitação específica de processamento de dados.

Observação : defina esse valor apenas para pacotes data_category que representam a coleta de dados. Não o defina para compartilhamento de dados.

Práticas de exclusão e criptografia de dados

O pacote security_labels contém pares de chave-valor que representam as práticas de exclusão e criptografia de dados do app:

is_data_deletable
Valor booleano. Especifica se o app permite ou não que o usuário solicite a exclusão dos dados dele.
is_data_encrypted
Valor booleano. Especifica se todos os dados do usuário coletados pelo app são criptografados em trânsito.

Verificação de terceiros

O pacote third_party_verification consiste em uma única chave, url. Esse URL, representado como um valor de string, especifica o site de terceiros usado para verificar as informações de segurança dos dados do app.

Formato dos rótulos de segurança de serviços do sistema

Para apps que atuam como um serviço do sistema, o pacote system_app_safety_label é usado no lugar do pacote safety_labels e contém os seguintes pares de chave-valor:

url (obrigatório)

  • URL que aponta para uma página com informações de segurança do app que está agindo como um serviço do sistema.
  • Use string como o tipo.
  • Se ele não tiver sido fornecido, o URL da Política de Privacidade deverá ser usado como substituto.
  • Observação: a Google Play Store usa privacy_policy como substituto.

Formato das informações de transparência

O pacote transparency_info contém os seguintes pares de chave-valor:

developer_info
Um objeto PersistableBundle que especifica informações sobre o desenvolvedor do app.
app_info
Um objeto PersistableBundle que especifica informações sobre o app.

Informações do desenvolvedor

O pacote developer_info contém os seguintes pares de chave-valor:

developer_#
Um objeto PersistableBundle que identifica o desenvolvedor. O developer_info contém um ou mais developer_#, em que # é um número inteiro. Por exemplo, developer_0, developer_1, developer_2 e assim por diante.

Desenvolvedor

O pacote developer_# contém os seguintes pares de chave-valor:

name (obrigatório)
É uma string que indica o nome do desenvolvedor.
email (obrigatório)
É uma string que indica o endereço de e-mail do desenvolvedor.
address (obrigatório)
Uma string que indica o endereço de correspondência do desenvolvedor.
country_region (obrigatório)
É uma string que indica o país ou a região do desenvolvedor.
website
É uma string que indica o site do desenvolvedor.

app_registry

  • Uma string que indica o repositório ou o registro do desenvolvedor.
  • Se o desenvolvedor também estiver registrado em uma loja ou outro registro, o valor precisará ser o nome do pacote Android da loja ou o URL do registro.
  • São permitidas entradas múltiplas para diversas lojas.
  • Para o Google Play, use com.android.vending.
  • Se o desenvolvedor for um SDK listado no SDK Index do Google Play, omita esse atributo.
  • Se um desenvolvedor não estiver registrado em nenhuma app store ou registro, omita esse atributo.

app_registry_id

  • Uma string que indica o ID do desenvolvedor para a app_registry declarada.
  • Se o desenvolvedor também estiver registrado em uma loja ou outro registro, o valor precisará ser a identidade do repositório ou do registro.
  • São permitidas entradas múltiplas para diversas lojas.
  • Para desenvolvedores registrados no Google Play, esse valor precisa ser o URL da página do desenvolvedor. Por exemplo, https://play.google.com/store/apps/dev?id=5700313618786177705 é o URL do desenvolvedor Google LLC.
  • Se o desenvolvedor for um desenvolvedor de SDK listado no SDK Index do Google Play, use o URL do SDK Index do Google Play. Por exemplo, https://play.google.com/sdks/details/com-google-android-gms-play-services-ads é o URL do SDK Index do Google Play para o SDK dos anúncios para dispositivos móveis do Google (GMA).
  • Se o desenvolvedor estiver registrado em outra loja ou registro, um URL da app store ou outro identificador poderá ser fornecido.
  • Se um desenvolvedor não estiver registrado em nenhuma app store, esse atributo poderá ser omitido.

Informações do app

O pacote app_info contém os seguintes pares de chave-valor:

title (obrigatório)
Uma string que indica o título do app.
description (obrigatório)
Uma string que declara a finalidade do app em um blob de texto legível em inglês.
contains_ads (obrigatório)
É um booleano que declara se o app exibe anúncios.

privacy_policy (obrigatório)

  • Uma string que contém um atributo de URL vinculado à Política de Privacidade que detalha como os dados do usuário são processados.
  • Obrigatório para apps que transmitem dados do usuário.
  • Se o app não tem esse link, presume-se que ele não processa dados do usuário.
category (obrigatório)

Uma string que contém uma das seguintes categorias de apps que melhor descreve a finalidade principal do app:

  • Android (somente para um componente AOSP)*
  • Arte e design
  • Carros e veículos
  • Beleza
  • Livros e referências
  • Executiva
  • Quadrinhos
  • Comunicações
  • Encontros
  • Educação
  • Entretenimento
  • Eventos
  • Finanças
  • Alimentos e bebidas
  • Jogo
  • Saúde e fitness
  • Casa e lar
  • Instalador (somente para uma app store ou outro instalador)*
  • Bibliotecas e demonstrações
  • Estilo de vida
  • Mapas e navegação
  • Medicina
  • Música e áudio
  • Jornais e revistas
  • Paternidade
  • Personalização
  • Fotografia
  • Produtividade
  • Segurança*
  • Shopping
  • Social
  • Esportes
  • Ferramentas
  • Viagens e lugares
  • Atualizador (somente para o app de atualização over the air (OTA) padrão de um dispositivo)*
  • Players e editores de vídeo
  • Previsão do tempo
contact_info
Um objeto PersistableBundle que inclui dados de contato do app (abaixo).

Dados de contato

O pacote contact_info contém os seguintes pares de chave-valor:

email (obrigatório)
Uma string que indica o endereço de e-mail do app.
website
Uma string que indica o site do app.