À partir d'Android 14, le programme d'installation du package Android peut ingérer des métadonnées sur une application, telles que les pratiques en matière de sécurité des données, à utiliser dans les fonctionnalités de la plate-forme Android, telles que l'invite d'autorisation d'accéder à la position mise à jour.
Il existe deux façons de fournir ces métadonnées:
Pour une application préchargée sur l'image système, les fabricants d'appareils peuvent fournir des métadonnées sur l'application en ajoutant à l'image système un fichier XML avec le bundle persistant décrit ci-dessous.
Pour les applications en cours d'installation ou de mise à jour, pour spécifier ces métadonnées, les programmes d'installation d'applications doivent transmettre un objet
PersistableBundle
à la méthodesetAppMetadata()
.
Le bundle persistant de premier niveau se compose des paires clé/valeur suivantes. Sauf indication contraire, chaque clé est facultative.
version
(obligatoire)- Le numéro de version du format des métadonnées de l'application. Utilisez
2
comme valeur pour cette version actuelle etlong
comme type. Si les clés ou les types de contenu attendus deAppMetadata
changent, Android modifie le numéro de version. safety_labels
- Un objet
PersistableBundle
qui spécifie les libellés de sécurité de l'application. system_app_safety_label
- Un objet
PersistableBundle
qui spécifie le label-system-app-safety-label de l'application. Pour les applications agissant en tant que services système, le bundlesystem_app_safety_label
est utilisé à la place du bundlesafety_labels
. transparency_info
- Un objet
PersistableBundle
qui spécifie les informations de transparence de l'application.
Format des libellés de sécurité
Le bundle safety_labels
contient les paires clé/valeur suivantes :
version
(obligatoire)- Le numéro de version du format des libellés de sécurité. Utilisez
1
comme valeur pour cette version actuelle etlong
comme type. data_labels
- Un objet
PersistableBundle
qui spécifie les données que l'application collecte et partage. security_labels
- Un objet
PersistableBundle
qui spécifie les pratiques de suppression et de chiffrement des données de l'application. third_party_verification
- Un objet
PersistableBundle
qui spécifie comment les pratiques de l'application en matière de sécurité des données sont validées par un tiers.
Données collectées et partagées
Le bundle data_labels
contient les paires clé/valeur suivantes :
data_collected
- Un objet
PersistableBundle
qui spécifie les types de données que l'application collecte. data_shared
- Un objet
PersistableBundle
qui spécifie les types de données que l'application partage.
Catégories de données
Les clés data_collected
et data_shared
utilisent le format de bundle data_category
, qui contient les paires clé/valeur présentées dans la liste suivante. Chaque clé est mappée à un objet PersistableBundle
qui spécifie les types de données d'une certaine catégorie.
personal
financial
location
email_text_message
photo_video
audio
storage
health_fitness
contacts
calendar
identifiers
app_performance
actions_in_app
search_and_browsing
Types de données
Chaque clé du bundle data_category
est mappée à un autre bundle qui utilise le format data_type
. Les clés que vous spécifiez au format data_type
dépendent de ce que vous choisissez pour une data_category
.
Les possibles paires clé-valeur data_type
apparaissent dans les listes suivantes. La valeur de chacune de ces clés est un objet PersistableBundle
qui décrit les pratiques en matière de consommation des données de l'application pour ce type de données particulier. Certains types de données n'utilisent qu'une seule clé.
Personnel
name
email_address
physical_address
phone_number
race_ethnicity
political_or_religious_beliefs
sexual_orientation_or_gender_identity
personal_identifiers
other
Finance
card_bank_account
purchase_history
credit_score
other
Localisation
approx_location
precise_location
E-mails et messages
emails
text_messages
other
Photos et vidéos
photos
videos
Audio
sound_recordings
music_files
other
Espace de stockage
files_docs
Santé et remise en forme
health
fitness
Contacts
contacts
Agenda
calendar
Identifiants
other
Performances de l'application
crash_logs
performance_diagnostics
other
Actions dans l'application
user_interaction
in_app_search_history
installed_apps
user_generated_content
other
Recherche et navigation
web_browsing_history
Consommation des données
Le bundle data_usage
contient les paires clé/valeur suivantes :
purposes
(obligatoire)-
Tableau d'entiers qui représente des raisons spécifiques de collecter ou de partager des données et qui utilise la méthode
PersistableBundle
putIntArray
. Au moins l'un des objectifs définis ci-dessous est requis pour chaque lot.1
: PURPOSE_APP_FUNCTIONALITY2
: PURPOSE_ANALYTICS3
: PURPOSE_DEVELOPER_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_SECURITY5
: PURPOSE_ADVERTISING6
: PURPOSE_PERSONALIZATION7
: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional
-
Valeur booléenne. Indique si les utilisateurs peuvent activer ou désactiver la collecte des données.
Remarque : Définissez cette valeur uniquement pour les bundles
data_category
qui représentent la collecte de données. Ne la définissez pas pour le partage de données. ephemeral
-
Valeur booléenne. Indique si l'application traite les données côté serveur uniquement en mémoire, et non sur disque, et si elle ne conserve pas les données plus longtemps que nécessaire pour répondre à la demande de traitement des données.
Remarque : Définissez cette valeur uniquement pour les bundles
data_category
qui représentent la collecte de données. Ne la définissez pas pour le partage de données.
Pratiques de suppression et de chiffrement des données
Le bundle security_labels
contient des paires clé/valeur qui représentent les pratiques de suppression et de chiffrement des données de l'application:
is_data_deletable
- Valeur booléenne. Indique si l'application permet ou non à l'utilisateur de demander à l'application de supprimer ses données utilisateur.
is_data_encrypted
- Valeur booléenne. Indique si toutes les données utilisateur collectées par l'application sont chiffrées en transit.
Service de validation tiers
Le bundle third_party_verification
se compose d'une seule clé, url
. Cette URL, représentée par une valeur de chaîne, spécifie le site Web tiers utilisé pour vérifier les informations sur la sécurité des données de l'application.
Format des libellés de sécurité du service système
Pour les applications agissant en tant que service système, le bundle system_app_safety_label
est utilisé à la place du bundle safety_labels
et contient les paires clé/valeur suivantes:
url
(obligatoire)
- URL qui redirige vers une page contenant des informations de sécurité pour l'application qui agit en tant que service système.
- Utilisez
string
comme type. - Si elle n'a pas été fournie, l'URL des règles de confidentialité doit être utilisée en remplacement.
- Remarque: Le Google Play Store utilise
privacy_policy
comme solution de remplacement.
Format des informations sur la transparence
Le bundle transparency_info
contient les paires clé/valeur suivantes :
developer_info
- Un objet
PersistableBundle
qui spécifie des informations sur le développeur d'applications. app_info
- Un objet
PersistableBundle
qui spécifie des informations sur l'application.
Informations sur le développeur
Le bundle developer_info
contient les paires clé/valeur suivantes :
developer_#
- Un objet
PersistableBundle
qui identifie le développeur. L'élémentdeveloper_info
contient un ou plusieurs élémentsdeveloper_#
, où#
est un entier. Exemples :developer_0
,developer_1
,developer_2
, etc.
Développeur
Le bundle developer_#
contient les paires clé/valeur suivantes:
name
(obligatoire)- Chaîne indiquant le nom du développeur.
email
(obligatoire)- Chaîne indiquant l'adresse e-mail du développeur.
address
(obligatoire)- Chaîne indiquant l'adresse postale du développeur.
country_region
(obligatoire)- Chaîne indiquant le pays ou la région du développeur.
website
- Chaîne indiquant le site Web du développeur.
app_registry
- Chaîne indiquant le magasin ou le registre du développeur.
- Si le développeur est également enregistré dans un magasin ou dans un autre registre, la valeur doit correspondre au nom du package Android du magasin ou à l'URL du registre.
- Plusieurs magasins sont autorisés.
- Pour Google Play, utilisez
com.android.vending
. - Si le développeur est un SDK répertorié dans le Google Play SDK Index, ne renseignez pas cet attribut.
- Si le développeur n'est enregistré sur aucune plate-forme de téléchargement d'applications ni dans aucun registre, omettez cet attribut.
app_registry_id
- Chaîne indiquant l'ID du développeur pour le
app_registry
indiqué. - Si le développeur est également enregistré dans un magasin ou un autre registre, la valeur doit correspondre à l'identité de son magasin ou de son registre.
- Plusieurs magasins sont autorisés.
- Pour les développeurs inscrits à Google Play, cette valeur doit être l'URL de la page du développeur (par exemple, https://play.google.com/store/apps/dev?id=5700313618786177705 est l'URL de Google LLC pour les développeurs).
- Si le développeur est un développeur de SDK répertorié dans le Google Play SDK Index, utilisez l'URL Google Play SDK Index du SDK (par exemple, https://play.google.com/sdks/details/com-google-android-gms-play-services-ads est l'URL Google Play SDK Index du SDK Google Mobile Ads (GMA).
- Si le développeur est enregistré sur une autre plate-forme ou un autre registre, une URL de plate-forme de téléchargement d'applications ou un autre identifiant peuvent être fournis.
- Si un développeur n'est enregistré sur aucune plate-forme de téléchargement d'applications, cet attribut peut être omis.
Informations des applications
Le bundle app_info
contient les paires clé/valeur suivantes :
title
(obligatoire)- Chaîne indiquant le titre de l'application.
description
(obligatoire)- Chaîne indiquant la finalité de l'application dans un blob de texte lisible en anglais.
contains_ads
(obligatoire)- Valeur booléenne indiquant si l'application affiche des annonces.
privacy_policy
(obligatoire)
- Chaîne contenant un attribut d'URL avec un lien vers les règles de confidentialité qui expliquent comment les données utilisateur sont traitées.
- Obligatoire pour les applications qui transmettent des données utilisateur.
- Si l'application ne contient pas ce lien, nous partons du principe qu'elle ne gère pas les données utilisateur.
category
(obligatoire)Chaîne contenant l'une des catégories d'applications suivantes, décrivant le mieux l'objectif principal de l'application:
- Android (uniquement pour un composant AOSP)*
- Art et design
- Voitures et véhicules
- Beauté
- Livres et références
- Pro
- BD
- Communication
- Rencontres
- Éducation
- Divertissement
- Événements
- Finance
- Alimentation et boissons
- Jeux
- Santé et remise en forme
- Maison et intérieur
- Programme d'installation (uniquement pour une plate-forme de téléchargement d'applications ou un autre programme d'installation)*
- Bibliothèques et démos
- Contenu "style de vie"
- Cartes et navigation
- Médecine
- Musique et audio
- Actualités et magazines
- Éducation des enfants
- Personnalisation
- Photographie
- Productivité
- Sécurité*
- Shopping
- Réseaux sociaux
- Sport
- Outils
- Voyages et infos locales
- Outil de mise à jour (uniquement pour l'application de mise à jour Over The Air (OTA) par défaut d'un appareil)*
- Lecteurs et éditeurs vidéo
- Météo
contact_info
- Un objet
PersistableBundle
qui inclut les coordonnées de l'application (ci-dessous).
Coordonnées
Le bundle contact_info
contient les paires clé/valeur suivantes :
email
(obligatoire)- Chaîne indiquant l'adresse e-mail de l'application.
website
- Chaîne indiquant le site Web de l'application.