Schema für App-Metadaten-Bundles

Ab Android 14 kann das Installationsprogramm für Android-Pakete Metadaten zu einer App (z. B. Praktiken zur Datensicherheit) zur Verwendung in Funktionen der Android-Plattform wie der aktualisierten Berechtigungsaufforderung für die Standortermittlung aufnehmen.

Es gibt zwei Möglichkeiten, diese Metadaten bereitzustellen:

  • Für eine auf das System-Image geladene App können Gerätehersteller Metadaten zur App bereitstellen. Dazu fügen sie dem System-Image eine XML-Datei mit dem unten beschriebenen persistenten Bundle hinzu.

  • Bei Apps, die installiert oder aktualisiert werden, sollten App-Installationsprogramme ein PersistableBundle-Objekt an die Methode setAppMetadata() übergeben, um diese Metadaten anzugeben.

Das dauerhafte Bundle der obersten Ebene besteht aus den folgenden Schlüssel/Wert-Paaren. Sofern nicht anders angegeben, ist jeder Schlüssel optional.

version (erforderlich)
Die Versionsnummer des App-Metadatenformats. Verwenden Sie 2 als Wert für diese aktuelle Version und long als Typ. Wenn sich die erwarteten Schlüssel oder Inhaltstypen von AppMetadata ändern, ändert Android die Versionsnummer.
safety_labels
Ein PersistableBundle-Objekt, das die Sicherheitslabels der App angibt.
system_app_safety_label
Ein PersistableBundle-Objekt, das das system-app-safety-label der App angibt. Bei Anwendungen, die als Systemdienst fungieren, wird das Bundle system_app_safety_label anstelle des safety_labels-Bundles verwendet.
transparency_info
Ein PersistableBundle-Objekt, das die Transparenzinformationen der App angibt.

Format der Sicherheitslabels

Das safety_labels-Bundle enthält die folgenden Schlüssel/Wert-Paare:

version (erforderlich)
Die Versionsnummer des Sicherheitslabels-Formats. Verwenden Sie 1 als Wert für diese aktuelle Version und long als Typ.
data_labels
Ein PersistableBundle-Objekt, das die Daten angibt, die von der App erhoben und weitergegeben werden.
security_labels
Ein PersistableBundle-Objekt, das die Praktiken zum Löschen und Verschlüsseln von Daten der App angibt.
third_party_verification
Ein PersistableBundle-Objekt, das angibt, wie die Praktiken zur Datensicherheit der App von einem Drittanbieter überprüft werden.

Erhobene und weitergegebene Daten

Das data_labels-Bundle enthält die folgenden Schlüssel/Wert-Paare:

data_collected
Ein PersistableBundle-Objekt, das die Datentypen angibt, die von der Anwendung erfasst werden.
data_shared
Ein PersistableBundle-Objekt, das die von der App freigegebenen Datentypen angibt.

Datenkategorien

Sowohl für data_collected als auch für data_shared wird das Bundle-Format data_category verwendet, das die in der folgenden Liste aufgeführten Schlüssel/Wert-Paare enthält. Jeder Schlüssel ist einem PersistableBundle-Objekt zugeordnet, das die Datentypen für eine bestimmte Kategorie angibt.

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

Datentypen

Jeder Schlüssel im Bundle data_category ist einem anderen Bundle zugeordnet, das das Format data_type verwendet. Welche Schlüssel Sie im Format data_type angeben, hängt davon ab, was Sie für data_category auswählen.

Die möglichen data_type-Schlüssel/Wert-Paare werden in den folgenden Listen angezeigt. Der Wert für jeden dieser Schlüssel ist ein PersistableBundle-Objekt, das die Datennutzungspraktiken der App für den jeweiligen Datentyp beschreibt. Einige Datentypen verwenden nur einen Schlüssel.

Privat

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

Finanzen

  • card_bank_account
  • purchase_history
  • credit_score
  • other

Standort

  • approx_location
  • precise_location

E-Mails und SMS

  • emails
  • text_messages
  • other

Fotos und Videos

  • photos
  • videos

Audio

  • sound_recordings
  • music_files
  • other

Speicher

files_docs

Gesundheit und Fitness

  • health
  • fitness

Kontakte

contacts

Kalender

calendar

Kennungen

other

App-Leistung

  • crash_logs
  • performance_diagnostics
  • other

Aktionen in der App

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

Suchen und Surfen

web_browsing_history

Datennutzung

Das data_usage-Bundle enthält die folgenden Schlüssel/Wert-Paare:

purposes(erforderlich)

Ein Array von Ganzzahlen, das bestimmte Gründe für die Erhebung oder Weitergabe von Daten darstellt, und verwendet die Methode PersistableBundle putIntArray. Für jedes Bundle ist mindestens einer der unten definierten Zwecke erforderlich.

  • 1: PURPOSE_APP_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS
  • 3: KOMMUNIKATION (PURPOSE_DE eignet sich für Entwickler)
  • 4: PURPOSE_FRAUD_PREVENTION_SECURITY
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional

Boolescher Wert. Gibt an, ob Nutzer die Datenerhebung aktivieren oder deaktivieren können.

Hinweis: Legen Sie diesen Wert nur für data_category-Sets fest, die die Datenerhebung darstellen. Legen Sie ihn nicht für die Datenfreigabe fest.

ephemeral

Boolescher Wert. Gibt an, ob die Anwendung die Daten serverseitig nur im Arbeitsspeicher und nicht auf dem Laufwerk verarbeitet, und dass die Anwendung die Daten nicht länger aufbewahrt, als es für die Verarbeitung der jeweiligen Datenverarbeitungsanfrage erforderlich ist.

Hinweis: Legen Sie diesen Wert nur für data_category-Sets fest, die die Datenerhebung darstellen. Legen Sie ihn nicht für die Datenfreigabe fest.

Datenlöschung und Verschlüsselung

Das security_labels-Bundle enthält Schlüssel/Wert-Paare, die die Datenlöschungs- und Verschlüsselungsverfahren der Anwendung darstellen:

is_data_deletable
Boolescher Wert. Gibt an, ob Nutzer über die App das Löschen ihrer Nutzerdaten anfordern können.
is_data_encrypted
Boolescher Wert. Gibt an, ob alle von der Anwendung erhobenen Nutzerdaten bei der Übertragung verschlüsselt werden.

Drittanbieterüberprüfung

Das third_party_verification-Bundle besteht aus einem einzelnen Schlüssel, url. Diese URL, die als Stringwert dargestellt wird, gibt die Drittanbieter-Website an, die zur Überprüfung der Datensicherheitsinformationen der App verwendet wird.

Format der Sicherheitslabels für Systemdienste

Bei Anwendungen, die als Systemdienst fungieren, wird das system_app_safety_label-Bundle anstelle des safety_labels-Bundles verwendet und enthält die folgenden Schlüssel/Wert-Paare:

url (erforderlich)

  • URL, die auf eine Seite mit Sicherheitsinformationen für die App verweist, die als Systemdienst fungiert.
  • Verwenden Sie als Typ string.
  • Wenn sie nicht angegeben wurde, sollte die URL der Datenschutzerklärung als Fallback verwendet werden.
  • Hinweis: Im Google Play Store wird privacy_policy als Fallback verwendet.

Format der Transparenzinformationen

Das transparency_info-Bundle enthält die folgenden Schlüssel/Wert-Paare:

developer_info
Ein PersistableBundle-Objekt, das Informationen zum App-Entwickler angibt.
app_info
Ein PersistableBundle-Objekt, das Informationen zur App angibt.

Entwicklerinformationen

Das developer_info-Bundle enthält die folgenden Schlüssel/Wert-Paare:

developer_#
Ein PersistableBundle-Objekt, das den Entwickler identifiziert. developer_info enthält einen oder mehrere developer_#, wobei # eine Ganzzahl ist. Beispiel: developer_0, developer_1, developer_2 usw.

Entwickler

Das developer_#-Bundle enthält die folgenden Schlüssel/Wert-Paare:

name (erforderlich)
Ein String, der den Namen des Entwicklers enthält.
email (erforderlich)
Ein String, der die E-Mail-Adresse des Entwicklers angibt.
address (erforderlich)
Ein String mit der Postanschrift des Entwicklers.
country_region (erforderlich)
Ein String, der das Land oder die Region des Entwicklers angibt.
website
Ein String, der die Website des Entwicklers angibt.

app_registry

  • Ein String, der das Geschäft oder die Registry des Entwicklers angibt.
  • Wenn der Entwickler auch in einem Shop oder einer anderen Registry registriert ist, sollte der Wert der Android-Paketname des Stores oder die URL der Registry sein.
  • Mehrere Einträge für mehrere Geschäfte sind zulässig.
  • Verwende für Google Play com.android.vending.
  • Wenn der Entwickler ein SDK ist, das im Google Play SDK Index aufgeführt ist, lassen Sie dieses Attribut weg.
  • Wenn ein Entwickler in keinem App-Shop oder in keiner Registry registriert ist, lassen Sie dieses Attribut weg.

app_registry_id

  • Ein String, der die ID des Entwicklers für die angegebene app_registry angibt.
  • Wenn der Entwickler auch in einem Geschäft oder einer anderen Registry registriert ist, sollte der Wert die Identität des Geschäfts oder der Registry sein.
  • Mehrere Einträge für mehrere Geschäfte sind zulässig.
  • Für Entwickler, die bei Google Play registriert sind, muss dieser Wert die URL der Entwicklerseite sein. Beispiel: https://play.google.com/store/apps/dev?id=5700313618786177705 ist die URL des Entwicklers Google LLC.
  • Wenn der Entwickler ein SDK-Entwickler ist, der im Google Play SDK Index aufgeführt ist, verwenden Sie die Google Play SDK Index-URL des SDKs. Beispiel: https://play.google.com/sdks/details/com-google-android-gms-play-services-ads ist die URL für den Google Play SDK Index des Google Mobile Ads (GMA) SDK.
  • Wenn der Entwickler in einem anderen Store oder einer anderen Registry registriert ist, kann eine App-Shop-URL oder eine andere Kennung angegeben werden.
  • Wenn ein Entwickler in keinem App-Shop registriert ist, kann dieses Attribut weggelassen werden.

App-Info

Das app_info-Bundle enthält die folgenden Schlüssel/Wert-Paare:

title (erforderlich)
Ein String, der den Titel der App angibt.
description (erforderlich)
Ein String, der den Zweck der App in einem für Menschen lesbaren Text auf Englisch angibt.
contains_ads (erforderlich)
Ein boolescher Wert, der angibt, ob in der App Werbung eingeblendet wird.

privacy_policy (erforderlich)

  • Ein String mit einem URL-Attribut, das auf die Datenschutzerklärung verweist, in der beschrieben wird, wie Nutzerdaten verarbeitet werden.
  • Erforderlich für Apps, die Nutzerdaten übertragen.
  • Wenn die App diesen Link nicht enthält, wird davon ausgegangen, dass die App keine Nutzerdaten verarbeitet.
category (erforderlich)

Ein String, der eine der folgenden App-Kategorien enthält, die den Hauptzweck der App am besten beschreibt:

  • Android (nur für eine AOSP-Komponente)*
  • Kunst und Design
  • Autos und Fahrzeuge
  • Beauty
  • Bücher und Nachschlagewerke
  • Unternehmen
  • Comics
  • Kommunikation
  • Verabredung
  • Bildung
  • Unterhaltung
  • Veranstaltungen
  • Finanzen
  • Essen und Trinken
  • Spiel
  • Gesundheit und Fitness
  • Haus und Heim
  • Installationsprogramm (nur für App-Shops oder andere Personen, die die App installiert haben)*
  • Mediatheken und Demos
  • Lifestyle
  • Karten und Navigation
  • Medizin
  • Musik und Audio
  • Nachrichten und Zeitschriften
  • Eltern und Kind
  • Personalisierung
  • Fotografie
  • Produktivität
  • Sicherheit*
  • Shopping
  • Social
  • Sport
  • Tools
  • Reisen und Lokales
  • Updater (nur für die standardmäßige OTA-Update-App eines Geräts)*
  • Videoplayer und Editors
  • Wetter
contact_info
Ein PersistableBundle-Objekt, das Kontaktdaten für die App enthält (siehe unten).

Kontaktdaten

Das contact_info-Bundle enthält die folgenden Schlüssel/Wert-Paare:

email (erforderlich)
Ein String, der die E-Mail-Adresse der App angibt.
website
Ein String, der die Website für die App angibt.