A partire da Android 14, il programma di installazione dei pacchetti Android può importare i metadati relativi a un'app, ad esempio le pratiche di sicurezza dei dati, da usare 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 dei dispositivi possono fornire metadati relativi all'app aggiungendo un file XML all'immagine di sistema con il bundle memorizzabile descritto di seguito.
Per le app da installare o aggiornare, per specificare questi metadati, i programmi di installazione delle app devono passare un oggetto
PersistableBundle
al metodosetAppMetadata()
.
Il bundle di primo livello permanente è costituito dalle seguenti coppie chiave/valore. Se non diversamente specificato, ogni chiave è facoltativa.
version
(campo obbligatorio)- Il numero di versione del formato dei metadati dell'app. Utilizza
2
come valore per questa versione corrente elong
come tipo. Se le chiavi o i tipi di contenuti previsti diAppMetadata
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 bundlesystem_app_safety_label
al posto del bundlesafety_labels
. transparency_info
- Un oggetto
PersistableBundle
che specifica le informazioni sulla trasparenza dell'app.
Formato delle etichette di sicurezza
Il bundle safety_labels
contiene le seguenti coppie chiave-valore:
version
(campo obbligatorio)- Il numero di versione del formato delle etichette di sicurezza. Usa
1
come valore per questa versione corrente elong
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 relative alla sicurezza dei dati dell'app vengono verificate da una terza parte.
Dati raccolti e condivisi
Il bundle 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 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 bundle data_category
è 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 coppie chiave/valore data_type
sono riportate nei seguenti elenchi. Il valore di ciascuna 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 solo una 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
Calendario
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 bundle data_usage
contiene le seguenti coppie chiave/valore:
purposes
(obbligatorio)-
Un array di numeri interi che rappresenta i motivi specifici per la raccolta o la condivisione dei dati e utilizza il metodo
PersistableBundle
putIntArray
. Per ogni bundle è obbligatorio almeno uno degli scopi definiti di seguito.1
: PURPOSE_APP_FUNCTIONALITY2
: SCOPO_ANALYTICS3
: PURPOSE_Developer_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_SECURITY5
: SCOPO_ADVERTISING6
: SCOPO_PERSONALIZZAZIONE7
: 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 bundle
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 sul lato server in memoria, non su disco, e se conserva i dati non più di quanto necessario per gestire la richiesta di elaborazione dati specifica.
Nota: imposta questo valore solo per i bundle
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 sono criptati in transito.
Verifica di terze parti
Il bundle third_party_verification
è costituito da una singola 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 indirizza a una pagina contenente informazioni sulla sicurezza per l'app che agisce come servizio di sistema.
- Usa
string
come tipo. - Se non è stato fornito, l'URL delle norme sulla privacy deve essere utilizzato come riserva.
- Nota: il Google Play Store utilizza
privacy_policy
come riserva.
Formato delle informazioni sulla trasparenza
Il bundle 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 bundle developer_info
contiene le seguenti coppie chiave/valore:
developer_#
- Un oggetto
PersistableBundle
che identifica lo sviluppatore. L'elementodeveloper_info
contiene uno o piùdeveloper_#
, dove#
è un numero intero. Ad esempiodeveloper_0
,developer_1
,developer_2
e così via.
Sviluppatore
Il bundle 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 registry dello sviluppatore.
- Se lo sviluppatore è registrato anche in uno store o in un altro registry, il valore deve essere il nome del pacchetto Android dello store o l'URL del registry.
- Sono consentite più voci per più negozi.
- Per Google Play, utilizza
com.android.vending
. - Se lo sviluppatore è un SDK elencato in Google Play SDK Index, ometti questo attributo.
- Se uno sviluppatore non è registrato in nessuno 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 è registrato anche in un archivio o in un altro registry, il valore deve essere l'identità del registro o dell'archivio.
- Sono consentite più voci per più negozi.
- Per gli sviluppatori registrati a 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 dell'SDK Google Mobile Ads (GMA)).
- Se lo sviluppatore è registrato in un altro store o registry, può essere fornito l'URL di uno store o un altro identificatore.
- Se uno sviluppatore non è registrato in nessuno store, questo attributo può essere omesso.
Informazioni delle app
Il bundle app_info
contiene le seguenti coppie chiave/valore:
title
(obbligatorio)- Una stringa che indica il titolo dell'app.
description
(obbligatorio)- Una stringa che dichiara lo scopo dell'app in un blocco di testo leggibile in inglese.
contains_ads
(obbligatorio)- Un valore booleano che dichiara se l'app visualizza annunci.
privacy_policy
(obbligatorio)
- Una stringa contenente 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
- Attività commerciale
- Fumetti
- Comunicazioni
- Incontri
- Istruzione
- 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
- Updater (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 bundle 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 dell'app.