Schema per i bundle di metadati delle app

A partire da Android 14, il programma di installazione di pacchetti Android può importare i metadati relativi a un'app, ad esempio le misure di sicurezza dei dati, da utilizzare nelle funzionalità della piattaforma Android, ad esempio la richiesta di autorizzazione di accesso alla posizione aggiornata.

Esistono due modi per fornire questi metadati:

  • Per un'app precaricata nell'immagine di sistema, i produttori di dispositivi possono fornire metadati relativi all'app aggiungendo un file XML all'immagine di sistema con il bundle permanente descritto di seguito.

  • Per le app in fase di installazione o aggiornamento, per specificare questi metadati, i installatori di app devono passare un oggetto PersistableBundle al metodo setAppMetadata().

Il bundle persistente di primo livello è costituito dalle seguenti coppie chiave-valore. Se non diversamente specificato, ogni chiave è facoltativa.

version (obbligatorio)
Il numero di versione del formato dei metadati dell'app. Utilizza 2 come valore per questa versione corrente e long come tipo. Se le chiavi o i tipi di contenuti previsti di AppMetadata cambiano, Android cambierà il numero di versione.
safety_labels
Un oggetto PersistableBundle che specifica le etichette di sicurezza dell'app.
system_app_safety_label
Un oggetto PersistableBundle che specifica l'etichetta system-app-safety-label dell'app. Per le app che fungono da servizio di sistema, viene utilizzato il bundle system_app_safety_label anziché il bundle safety_labels.
transparency_info
Un oggetto PersistableBundle che specifica le informazioni sulla trasparenza dell'app.

Formato etichette di sicurezza

Il pacchetto safety_labels contiene le seguenti coppie chiave-valore:

version (obbligatorio)
Il numero di versione del formato delle etichette di sicurezza. Utilizza 1 come valore per questa versione corrente e long come tipo.
data_labels
Un oggetto PersistableBundle che specifica i dati raccolti e condivisi dall'app.
security_labels
Un oggetto PersistableBundle che specifica le prassi di eliminazione e crittografia dei dati dell'app.
third_party_verification
Un oggetto PersistableBundle che specifica in che modo le pratiche di sicurezza dei dati dell'app vengono verificate da una terza parte.

Dati raccolti e condivisi

Il pacchetto data_labels contiene le seguenti coppie chiave/valore:

data_collected
Un oggetto PersistableBundle che specifica i tipi di dati raccolti dall'app.
data_shared
Un oggetto PersistableBundle che specifica i tipi di dati condivisi dall'app.

Categorie di dati

Entrambe le chiavi data_collected e data_shared utilizzano il formato di bundle data_category, che contiene le coppie chiave/valore mostrate nell'elenco che segue. Ogni chiave è mappata a un oggetto PersistableBundle che specifica i tipi di dati per una determinata categoria.

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

Tipi di dati

Ogni chiave nel pacchetto data_category viene mappata a un bundle diverso che utilizza il formato data_type. Le chiavi specificate nel formato data_type dipendono da ciò che scegli per un data_category.

Le possibili data_type coppie chiave/valore vengono visualizzate nei seguenti elenchi. Il valore per ognuna di queste chiavi è un oggetto PersistableBundle che descrive le pratiche di utilizzo dei dati dell'app per quel particolare tipo di dati. Alcuni tipi di dati utilizzano una sola chiave.

Personali

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

Servizi finanziari

  • card_bank_account
  • purchase_history
  • credit_score
  • other

Posizione

  • approx_location
  • precise_location

Email e messaggi

  • emails
  • text_messages
  • other

Foto e video

  • photos
  • videos

Audio

  • sound_recordings
  • music_files
  • other

Spazio di archiviazione

files_docs

Salute e fitness

  • health
  • fitness

Contatti

contacts

Calendar

calendar

Identificatori

other

Rendimento app

  • crash_logs
  • performance_diagnostics
  • other

Azioni nell'app

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

Ricerca e navigazione

web_browsing_history

Utilizzo dati

Il pacchetto data_usage contiene le seguenti coppie chiave/valore:

purposes(obbligatorio)

Un array di numeri interi che rappresenta motivi specifici per la raccolta o la condivisione dei dati e utilizza il metodo PersistableBundle putIntArray. Per ogni bundle è obbligatorio almeno una delle finalità definite di seguito.

  • 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

Valore booleano. Specifica se gli utenti possono attivare o disattivare la raccolta dei dati.

Nota : imposta questo valore solo per i pacchetti data_category che rappresentano la raccolta dei dati; non impostarlo per la condivisione dei dati.

ephemeral

Valore booleano. Specifica se l'app elabora i dati solo lato server in memoria, non su disco, e se conserva i dati non più a lungo del necessario per gestire la richiesta di elaborazione dati specifica.

Nota : imposta questo valore solo per i pacchetti data_category che rappresentano la raccolta dei dati; non impostarlo per la condivisione dei dati.

Pratiche di eliminazione e crittografia dei dati

Il bundle security_labels contiene coppie chiave/valore che rappresentano le pratiche di eliminazione e crittografia dei dati dell'app:

is_data_deletable
Valore booleano. Specifica se l'app consente all'utente di richiedere all'app di eliminare i propri dati utente.
is_data_encrypted
Valore booleano. Specifica se tutti i dati utente raccolti dall'app vengono criptati in transito.

Verifica di terze parti

Il bundle third_party_verification è costituito da un'unica chiave, url. Questo URL, rappresentato come valore stringa, specifica il sito web di terze parti utilizzato per verificare le informazioni sulla sicurezza dei dati dell'app.

Formato delle etichette di sicurezza dei servizi del sistema

Per le app che fungono da servizio di sistema, viene utilizzato il bundle system_app_safety_label al posto del bundle safety_labels e contiene le seguenti coppie chiave-valore:

url (obbligatorio)

  • URL che rimanda a una pagina contenente informazioni sulla sicurezza per l'app che agisce come servizio di sistema.
  • Utilizza string come tipo.
  • Se non è stato fornito, deve essere utilizzato l'URL delle norme sulla privacy come riserva.
  • Nota: il Google Play Store utilizza privacy_policy come riserva.

Formato delle informazioni sulla trasparenza

Il pacchetto transparency_info contiene le seguenti coppie chiave-valore:

developer_info
Un oggetto PersistableBundle che specifica informazioni sullo sviluppatore dell'app.
app_info
Un oggetto PersistableBundle che specifica informazioni sull'app.

Informazioni sviluppatore

Il pacchetto developer_info contiene le seguenti coppie chiave/valore:

developer_#
Un oggetto PersistableBundle che identifica lo sviluppatore. developer_info contiene uno o più developer_#, dove # è un numero intero. Ad esempio developer_0, developer_1, developer_2 e così via.

Sviluppatore

Il pacchetto developer_# contiene le seguenti coppie chiave-valore:

name (obbligatorio)
Una stringa che riporta il nome dello sviluppatore.
email (obbligatorio)
Una stringa che indica l'indirizzo email dello sviluppatore.
address (obbligatorio)
Una stringa che indica l'indirizzo postale dello sviluppatore.
country_region (obbligatorio)
Una stringa che indica il paese o la regione dello sviluppatore.
website
Una stringa che indica il sito web dello sviluppatore.

app_registry

  • Una stringa che indica l'archivio o il registro dello sviluppatore.
  • Se lo sviluppatore è registrato anche in uno store o in un altro registro, il valore deve essere il nome del pacchetto Android dell'archivio o l'URL del registry.
  • Sono consentite più voci per più negozi.
  • Per Google Play, usa com.android.vending.
  • Se lo sviluppatore è un SDK elencato in Google Play SDK Index, ometti questo attributo.
  • Se uno sviluppatore non è registrato in alcun store o registry, ometti questo attributo.

app_registry_id

  • Una stringa che indica l'ID dello sviluppatore per il valore app_registry indicato.
  • Se lo sviluppatore è anche registrato in un archivio o in un altro registro, il valore deve essere la sua identità dell'archivio o del registro.
  • Sono consentite più voci per più negozi.
  • Per gli sviluppatori registrati su Google Play, questo valore deve essere l'URL della pagina sviluppatore (ad esempio, https://play.google.com/store/apps/dev?id=5700313618786177705 è l'URL dello sviluppatore Google LLC).
  • Se lo sviluppatore è uno sviluppatore di SDK elencato in Google Play SDK Index, utilizza l'URL Google Play SDK Index dell'SDK (ad esempio, https://play.google.com/sdks/details/com-google-android-gms-play-services-ads è l'URL Google Play SDK Index dell'SDK Google Mobile Ads (GMA).
  • Se lo sviluppatore è registrato in un altro store o registro, è possibile fornire un URL dello store o un altro identificatore.
  • Se uno sviluppatore non è registrato in nessuno store, questo attributo può essere omesso.

Informazioni delle app

Il pacchetto app_info contiene le seguenti coppie chiave/valore:

title (obbligatorio)
Una stringa che riporta il titolo dell'app.
description (obbligatorio)
Una stringa che indica lo scopo dell'app in un blob di testo leggibile in inglese.
contains_ads (obbligatorio)
Un valore booleano che dichiara se l'app mostra annunci.

privacy_policy (obbligatorio)

  • Una stringa che contiene un attributo URL che rimanda alle norme sulla privacy che descrive nel dettaglio come vengono gestiti i dati utente.
  • Obbligatorio per le app che trasmettono dati utente.
  • Se l'app non contiene questo link, si presume che non gestisca i dati utente.
category (obbligatorio)

Una stringa contenente una delle seguenti categorie di app che descrive meglio lo scopo principale dell'app:

  • Android (solo per un componente AOSP)*
  • Arte e design
  • Auto e veicoli
  • Bellezza
  • Libri e consultazione
  • Economia
  • Fumetti
  • Comunicazioni
  • Incontri
  • Informativa
  • Intrattenimento
  • Eventi
  • Finanza
  • Cibo e bevande
  • Giochi
  • Salute e benessere
  • Casa e arredamento
  • Programma di installazione (solo per uno store o un altro programma di installazione)*
  • Librerie e demo
  • Lifestyle
  • Mappe e navigazione
  • Medicina
  • Musica e audio
  • Notizie e riviste
  • Educazione dei figli
  • Personalizzazione
  • Fotografia
  • Produttività
  • Sicurezza*
  • Shopping
  • Social
  • Sport
  • Strumenti
  • Viaggi e informazioni locali
  • Autore aggiornamento (solo per l'app di aggiornamento over-the-air (OTA) predefinita di un dispositivo)*
  • Editor video e video player
  • Meteo
contact_info
Un oggetto PersistableBundle che include le informazioni di contatto per l'app (di seguito).

Dati di contatto

Il pacchetto contact_info contiene le seguenti coppie chiave/valore:

email (obbligatorio)
Una stringa che indica l'indirizzo email dell'app.
website
Una stringa che indica il sito web per l'app.