Esquema para pacotes de metadados do app

No Android 14 e versões mais recentes, o instalador do pacote do Android pode ingerir metadados sobre um app, como práticas de segurança de dados, para uso em recursos da Plataforma Android, como 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 do sistema com o pacote persistente descrito abaixo.

  • Para apps sendo instalados ou atualizados, Para especificar esses metadados, a permissão do aplicativo instaladores devem transmitir um objeto PersistableBundle para o 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 para isso. versão atual e long como o tipo. Se forem esperadas chaves ou tipos de conteúdo de AppMetadata. 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 a propriedade system-app-safety-label. Para apps que atuam como um serviço do sistema, os O pacote system_app_safety_label é usado em vez do pacote safety_labels.
transparency_info
Um objeto PersistableBundle que especifica a transparência do app mais recentes.

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 para isso. versão atual e long como o tipo.
data_labels
Um objeto PersistableBundle que especifica os dados que o app coleta e compartilhamentos.
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 a 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 que o app compartilhamentos.

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 para cada uma dessas chaves é um objeto PersistableBundle que descreve práticas de uso de dados do app para esse tipo específico. 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 compartilhando dados e usa PersistableBundle putIntArray . Pelo menos uma das finalidades abaixo é obrigatória para cada feixe.

  • 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 coleta de dados.

Observação : defina esse valor apenas para Pacotes data_category que representam a coleta de dados. não definir para o 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 definir para o compartilhamento de dados.

Práticas de exclusão e criptografia de dados

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

is_data_deletable
Valor booleano. Especifica se o app permite ou não que o usuário solicite no app para excluir os dados dos usuários.
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 em vez do pacote safety_labels e contém o seguinte pares de chave-valor:

url (obrigatório)

  • URL que aponta para uma página com informações de segurança do app que está atuando 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 será usado como alternativa.
  • Observação: a Google Play Store usa privacy_policy como substituto.

Formato de 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 app desenvolvedor.
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 a chave-valor a seguir: pares:

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 a loja ou o registro do desenvolvedor.
  • Se o desenvolvedor também estiver registrado em uma loja ou outro registro, o valor deve ser o nome do pacote Android da loja ou o URL do registro.
  • São permitidas 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 o seguinte: .
  • Se um desenvolvedor não estiver registrado em nenhuma app store ou registro, omita este .

app_registry_id

  • É uma string que indica o ID do desenvolvedor para o app_registry indicado.
  • Se o desenvolvedor também estiver registrado em uma loja ou outro registro, o valor deve ser a identidade da loja ou do registro.
  • São permitidas várias entradas para várias 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 estiver 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 SDK do Google Mobile Ads (GMA).
  • Se o desenvolvedor estiver registrado em outra loja ou registro, uma app store É possível fornecer o URL ou outro identificador.
  • 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 indica a finalidade do app em um blob de texto legível por humanos 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 tratados.
  • Obrigatório para apps que transmitem dados do usuário.
  • Se o app não tiver esse link, presume-se que o app não contém para lidar com dados do usuário.
category (obrigatório)

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

  • Android (apenas para um componente AOSP)*
  • Arte e design
  • Carros e veículos
  • Beleza
  • Livros e referências
  • Negócios
  • Quadrinhos
  • Comunicações
  • Encontros
  • Educação
  • Entretenimento
  • Eventos
  • Finanças
  • Alimentos e bebidas
  • Jogo
  • Saúde e fitness
  • Casa e lar
  • Instalador (apenas 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
  • Paternidade
  • Personalização
  • Fotografia
  • Produtividade
  • Segurança*
  • Compras
  • Social
  • Esportes
  • Ferramentas
  • Viagens e lugares
  • Updater, apenas 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 da 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.