Schéma pour les bundles de métadonnées d'application

À 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éthode setAppMetadata().

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 et long comme type. Si les clés ou les types de contenu attendus de AppMetadata 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 bundle system_app_safety_label est utilisé à la place du bundle safety_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 et long 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_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

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ément developer_info contient un ou plusieurs éléments developer_#, 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.