Schemat pakietów metadanych aplikacji

Począwszy od Androida 14 instalator pakietów na Androida może pozyskiwać metadane dotyczące aplikacji (np. dotyczące bezpieczeństwa danych) na potrzeby funkcji platformy Androida, takich jak zaktualizowany monit o przyznanie dostępu do lokalizacji.

Te metadane możesz podać na 2 sposoby:

  • W przypadku aplikacji wstępnie załadowanej z obrazu systemu producenci urządzeń mogą udostępnić metadane na temat aplikacji, dodając do obrazu systemu plik XML z trwałym pakietem opisanym poniżej.

  • W przypadku instalowanych lub aktualizowanych aplikacji aby określić te metadane, instalatory aplikacji powinny przekazywać do metody setAppMetadata() obiekt PersistableBundle.

Trwały pakiet najwyższego poziomu składa się z tych par klucz-wartość. Każdy klucz jest opcjonalny, chyba że wskazano inaczej.

version (pole wymagane)
Numer wersji formatu metadanych aplikacji. Użyj 2 jako wartości dla tej wersji i long jako typu. Jeśli oczekiwane klucze lub typy treści AppMetadata ulegną zmianie, Android zmieni numer wersji.
safety_labels
Obiekt PersistableBundle, który określa etykiety bezpieczeństwa aplikacji.
system_app_safety_label
Obiekt PersistableBundle, który określa etykietę system-app-safety-label aplikacji. W przypadku aplikacji działających jako usługa systemowa używany jest pakiet system_app_safety_label zamiast pakietu safety_labels.
transparency_info
Obiekt PersistableBundle, który określa informacje o przejrzystości aplikacji.

Format etykiet bezpieczeństwa

Pakiet safety_labels zawiera te pary klucz-wartość:

version (pole wymagane)
Numer wersji formatu etykiet bezpieczeństwa. Dla tej wersji użyj 1 jako wartości i long jako typu.
data_labels
Obiekt PersistableBundle, który określa dane zbierane i udostępniane przez aplikację.
security_labels
Obiekt PersistableBundle, który określa metody usuwania i szyfrowania danych w aplikacji.
third_party_verification
Obiekt PersistableBundle, który określa sposób weryfikacji przez firmę zewnętrzną zasad bezpieczeństwa danych w aplikacji.

Gromadzenie i udostępnianie danych

Pakiet data_labels zawiera te pary klucz-wartość:

data_collected
Obiekt PersistableBundle, który określa typy danych zbieranych przez aplikację.
data_shared
Obiekt PersistableBundle, który określa typy danych udostępnianych przez aplikację.

Kategorie danych

Klucze data_collected i data_shared używają formatu pakietu data_category, który zawiera pary klucz-wartość widoczne na poniższej liście. Każdy klucz jest mapowany na obiekt PersistableBundle, który określa typy danych w konkretnej kategorii.

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

Typy danych

Każdy klucz w pakiecie data_category jest mapowany na inny pakiet w formacie data_type. Klucze, które określasz w formacie data_type, zależą od tego, co wybierzesz dla data_category.

Możliwe pary klucz-wartość (data_type) pojawią się na poniższych listach. Wartość każdego z tych kluczy to obiekt PersistableBundle, który opisuje sposoby użycia danych przez aplikację w przypadku określonego typu danych. Niektóre typy danych używają tylko jednego klucza.

Osobisty charakter

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

Finanse

  • card_bank_account
  • purchase_history
  • credit_score
  • other

Lokalizacja

  • approx_location
  • precise_location

E-maile i SMS-y

  • emails
  • text_messages
  • other

Zdjęcia i filmy

  • photos
  • videos

Dźwięk

  • sound_recordings
  • music_files
  • other

Miejsce na dane

files_docs

Zdrowie i fitness

  • health
  • fitness

Kontakty

contacts

Kalendarz

calendar

Identyfikatory

other

Wydajność aplikacji

  • crash_logs
  • performance_diagnostics
  • other

Działania w aplikacji

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

Wyszukiwanie i przeglądanie

web_browsing_history

Użycie danych

Pakiet data_usage zawiera te pary klucz-wartość:

purposes(wymagane)

Tablica liczb całkowitych, która określa konkretne powody zbierania lub udostępniania danych i korzysta z metody PersistableBundle putIntArray. Każdy pakiet wymaga co najmniej 1 z określonych poniżej celów.

  • 1: PURPOSE_APP_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS
  • 3: PURPOSE_DEVELOPER_COMMUNICATIONS
  • 4: PURPOSE_FRAUD_PREVENTION_BEZPIECZEŃSTWO
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional

Wartość logiczna. Określa, czy użytkownicy mogą włączyć lub wyłączyć zbieranie danych.

Uwaga: ustaw tę wartość tylko dla pakietów (data_category), które reprezentują zbieranie danych; nie ustawiaj jej na potrzeby udostępniania danych.

ephemeral

Wartość logiczna. Określa, czy aplikacja przetwarza dane tylko po stronie serwera w pamięci, a nie na dysku oraz czy aplikacja przechowuje dane nie dłużej niż jest to konieczne do obsługi konkretnego żądania przetwarzania danych.

Uwaga: ustaw tę wartość tylko dla pakietów (data_category), które reprezentują zbieranie danych; nie ustawiaj jej na potrzeby udostępniania danych.

Usuwanie i szyfrowanie danych

Pakiet security_labels zawiera pary klucz/wartość reprezentujące metody usuwania i szyfrowania danych w aplikacji:

is_data_deletable
Wartość logiczna. Określa, czy aplikacja pozwala użytkownikowi poprosić o usunięcie jego danych.
is_data_encrypted
Wartość logiczna. Określa, czy wszystkie dane użytkownika zbierane przez aplikację są szyfrowane podczas przesyłania.

Weryfikacja innych firm

Pakiet third_party_verification składa się z jednego klucza: url. Ten adres URL, przedstawiony jako wartość ciągu znaków, wskazuje witrynę zewnętrzną używaną do weryfikacji informacji o bezpieczeństwie danych w aplikacji.

Format etykiet bezpieczeństwa usług systemowych

W przypadku aplikacji działających jako usługa systemowa zamiast pakietu safety_labels używany jest pakiet system_app_safety_label, który zawiera te pary klucz-wartość:

url (wymagany)

  • Adres URL prowadzący do strony z informacjami o bezpieczeństwie aplikacji działającej jako usługa systemowa.
  • Użyj typu string.
  • Jeśli nie został podany, zamiast niego należy użyć adresu URL polityki prywatności.
  • Uwaga: sklep Google Play używa privacy_policy jako kreacji zastępczej.

Format informacji o przejrzystości

Pakiet transparency_info zawiera te pary klucz-wartość:

developer_info
Obiekt PersistableBundle, który określa informacje o deweloperze aplikacji.
app_info
Obiekt PersistableBundle, który określa informacje o aplikacji.

Informacje o deweloperze

Pakiet developer_info zawiera te pary klucz-wartość:

developer_#
Obiekt PersistableBundle, który identyfikuje dewelopera. Pole developer_info zawiera co najmniej 1 element developer_#, gdzie # jest liczbą całkowitą. np. developer_0, developer_1, developer_2 itd.

Deweloper

Pakiet developer_# zawiera te pary klucz-wartość:

name (wymagany)
Ciąg tekstowy z nazwą dewelopera.
email (wymagany)
Ciąg tekstowy zawierający adres e-mail dewelopera.
address (wymagany)
Ciąg tekstowy zawierający adres pocztowy dewelopera.
country_region (wymagany)
Ciąg tekstowy określający kraj lub region dewelopera.
website
Ciąg tekstowy określający stronę internetową dewelopera.

app_registry

  • Ciąg tekstowy określający sklep lub rejestr dewelopera.
  • Jeśli deweloper jest też zarejestrowany w sklepie lub innym rejestrze, wartością powinna być nazwa pakietu na Androida w sklepie lub adres URL rejestru.
  • Dozwolonych jest wiele wpisów dla wielu sklepów.
  • W przypadku Google Play użyj com.android.vending.
  • Pomiń ten atrybut, jeśli deweloper to pakiet SDK wymieniony na platformie Google Play SDK Index.
  • Jeśli deweloper nie jest zarejestrowany w żadnym sklepie z aplikacjami ani w żadnym rejestrze, pomiń ten atrybut.

app_registry_id

  • Ciąg tekstowy zawierający identyfikator dewelopera określonego w elemencie app_registry.
  • Jeśli deweloper jest również zarejestrowany w sklepie lub innym rejestrze, wartością powinna być jego tożsamość w tym sklepie lub rejestrze.
  • Dozwolonych jest wiele wpisów dla wielu sklepów.
  • W przypadku deweloperów zarejestrowanych w Google Play ta wartość musi być adresem URL strony dewelopera (np. https://play.google.com/store/apps/dev?id=5700313618786177705 to adres URL strony dewelopera Google LLC).
  • Jeśli deweloper jest deweloperem pakietu SDK wymienionym na platformie Google Play SDK Index, użyj adresu URL tego pakietu SDK w Google Play SDK Index (np. https://play.google.com/sdks/details/com-google-android-gms-play-services-ads to adres URL Google Play SDK Index pakietu Google Play SDK Index (GMA).
  • Jeśli deweloper jest zarejestrowany w innym sklepie lub rejestrze, można podać adres URL sklepu z aplikacjami lub inny identyfikator.
  • Jeśli deweloper nie jest zarejestrowany w żadnym sklepie z aplikacjami, ten atrybut można pominąć.

Informacje o aplikacji

Pakiet app_info zawiera te pary klucz-wartość:

title (wymagany)
Ciąg tekstowy zawierający tytuł aplikacji.
description (wymagany)
Ciąg tekstowy określający przeznaczenie aplikacji w zrozumiałym dla człowieka bloku tekstu w języku angielskim.
contains_ads (wymagany)
Wartość logiczna określająca, czy aplikacja wyświetla jakiekolwiek reklamy.

privacy_policy (wymagany)

  • Ciąg tekstowy zawierający atrybut adresu URL z linkiem do polityki prywatności, który określa, w jaki sposób obchodzimy się z danymi użytkownika.
  • Wymagane w przypadku aplikacji do przesyłania danych użytkownika.
  • Jeśli aplikacja nie zawiera tego linku, zakłada się, że aplikacja nie obsługuje danych użytkownika.
category (wymagany)

Ciąg tekstowy zawierający jedną z tych kategorii aplikacji, która najlepiej opisuje jej główne przeznaczenie:

  • Android (tylko w przypadku komponentu AOSP)*
  • Sztuka i projektowanie
  • Samochody i inne pojazdy
  • Uroda
  • Książki i źródła
  • Firma
  • Komiksy
  • Komunikacja
  • Randki
  • Edukacja
  • Rozrywka
  • Wydarzenia
  • Finanse
  • Jedzenie i picie
  • Gra
  • Zdrowie i fitness
  • Dom
  • Instalator (tylko w przypadku sklepu z aplikacjami lub innego instalatora)*
  • Biblioteki i materiały demonstracyjne
  • Styl życia
  • Mapy i nawigacja
  • Medycyna
  • Muzyka i dźwięk
  • Wiadomości i czasopisma
  • Dla rodziców
  • Personalizacja
  • Zdjęcia
  • Produktywność
  • Bezpieczeństwo*
  • Zakupy Google
  • Społecznościowe
  • Sport
  • Narzędzia
  • Podróże i informacje lokalne
  • Aktualizator (tylko dla domyślnej bezprzewodowej aplikacji do aktualizacji urządzenia)*
  • Edytory i odtwarzacze wideo
  • pogodę.
contact_info
Obiekt PersistableBundle zawierający informacje kontaktowe aplikacji (poniżej).

Informacje kontaktowe

Pakiet contact_info zawiera te pary klucz-wartość:

email (wymagany)
Ciąg tekstowy określający adres e-mail aplikacji.
website
Ciąg tekstowy określający stronę internetową aplikacji.