No Android 14 e versões mais recentes, o instalador do pacote do Android pode processar metadados sobre um app, por exemplo, práticas de segurança de dados, para uso em recursos da plataforma Android, como o prompt de permissão de localização atualizado.
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 do sistema 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étodosetAppMetadata()
.
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
(Campo obrigatório)- O número da versão do formato de metadados do app. Use
2
como o valor da versão atual elong
como o tipo. Se as chaves ou os tipos de conteúdo esperados daAppMetadata
mudarem, o Android vai mudar o número da versão. safety_labels
- Um objeto
PersistableBundle
que especifica os safety-labels do app. system_app_safety_label
- Um objeto
PersistableBundle
que especifica o system-app-safety-label do app. Para apps que atuam como um serviço do sistema, o pacotesystem_app_safety_label
é usado em vez do pacotesafety_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
(Campo 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 elong
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_FUNCTIONALITY2
: PURPOSE_ANALYTICS3
: PURPOSE_DEVELOPER_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_SECURITY5
: PURPOSE_ADVERTISING6
: PURPOSE_PERSONALIZATION7
: 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)
- Um 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 foi fornecido, o URL da Política de Privacidade precisa 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. Odeveloper_info
contém um ou maisdeveloper_#
, 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 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.
- É possível inserir várias entradas 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 o
app_registry
declarado. - Se o desenvolvedor também estiver registrado em uma loja ou outro registro, o valor precisará ser a identidade dessa loja ou do registro.
- É possível inserir várias entradas 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 do SDK. Por exemplo, https://play.google.com/sdks/details/com-google-android-gms-play-services-ads é o URL do SDK Index do Google Play do 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, detalhando como os dados do usuário são processados.
- Obrigatório para apps que transmitem dados do usuário.
- Se o app não contém 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 (apenas para um componente AOSP)*
- Arte e design
- Carros e veículos
- Beleza
- Livros e referências
- Empresa
- Histórias em quadrinhos
- Comunicação
- 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
- Saúde
- Música e áudio
- Jornais e revistas
- Criar os filhos
- Personalização
- Fotografia
- Produtividade
- Segurança*
- Compras
- 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
- Clima
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.