應用程式中繼資料套件的結構定義

自 Android 14 起,Android 套件安裝程式可擷取應用程式的中繼資料 (例如資料安全性做法),以便用於 Android 平台功能,例如更新後的位置存取權提示。

提供這類中繼資料的方式有兩種:

  • 針對在系統映像檔上預先載入的應用程式,裝置製造商可以使用下列可永久性套件的系統映像檔,將 XML 檔案新增至系統映像檔,藉此提供應用程式的相關中繼資料。

  • 如果是安裝或更新的應用程式,應用程式安裝者應將 PersistableBundle 物件傳遞至 setAppMetadata() 方法。

最高級別的可持久化套裝組合包含下列鍵/值組合。 除非另有指定,否則每個鍵皆為選用。

version (必填)
應用程式中繼資料格式的版本號碼。使用 2 做為目前版本的值,使用 long 做為類型。如果預期的 AppMetadata 金鑰或內容類型變更,Android 就會變更版本號碼。
safety_labels
用於指定應用程式 safety-labelsPersistableBundle 物件。
system_app_safety_label
用於指定應用程式 system-app-safety-labelPersistableBundle 物件。如果應用程式是系統服務,則會使用 system_app_safety_label 套件,而非 safety_labels 套件。
transparency_info
用於指定應用程式資訊公開資訊PersistableBundle 物件。

安全性標籤格式

safety_labels 組合包含下列鍵/值組合:

version (必填)
安全性標籤格式的版本號碼。使用 1 做為目前版本的值,使用 long 做為類型。
data_labels
用於指定應用程式收集和分享資料PersistableBundle 物件。
security_labels
用於指定應用程式資料刪除與加密做法PersistableBundle 物件。
third_party_verification
用於指定應用程式的資料安全性做法如何由第三方驗證PersistableBundle 物件。

收集和分享的資料

data_labels 組合包含下列鍵/值組合:

data_collected
用於指定應用程式所收集資料類型的 PersistableBundle 物件。
data_shared
用於指定應用程式所分享資料類型的 PersistableBundle 物件。

資料類別

data_collecteddata_shared 鍵都使用 data_category 組合格式,其中包含下列清單中的鍵/值組合。每個鍵都會對應至一個為特定類別指定資料類型PersistableBundle 物件。

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

資料類型

data_category 組合中的每個鍵都會對應至使用 data_type 格式的不同組合。您在 data_type 格式中指定的鍵取決於您為 data_category 所做的選擇。

可用的 data_type 鍵/值組合會顯示在下列清單中。每一個鍵的值均為一個 PersistableBundle 物件,用於說明應用程式針對該特定資料類型的資料使用方式做法。某些資料類型僅使用一個鍵。

個人化

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

金融

  • card_bank_account
  • purchase_history
  • credit_score
  • other

位置

  • approx_location
  • precise_location

電子郵件和簡訊

  • emails
  • text_messages
  • other

相片和影片

  • photos
  • videos

音訊

  • sound_recordings
  • music_files
  • other

儲存空間

files_docs

健康與健身

  • health
  • fitness

聯絡人

contacts

日曆

calendar

ID

other

應用程式效能

  • crash_logs
  • performance_diagnostics
  • other

應用程式中的動作

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

搜尋與瀏覽

web_browsing_history

資料使用方式

data_usage 組合包含下列鍵/值組合:

purposes(必填)

整數陣列,代表特定收集或分享資料的原因,並使用 PersistableBundle putIntArray 方法。每個套件至少需要下列其中一項用途。

  • 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

布林值。指明使用者是否能選擇加入或退出資料收集。

附註: 僅針對代表資料收集的 data_category 組合設定此值;請勿設定用於資料共用。

ephemeral

布林值。指明應用程式是否只在記憶體 (而非磁碟) 上處理伺服器端資料,且應用程式保留資料的時間不超過特定資料處理要求所需時間。

附註: 僅針對代表資料收集的 data_category 組合設定此值;請勿設定用於資料共用。

資料刪除與加密做法

security_labels 組合包含代表應用程式資料刪除與加密做法的鍵/值組合:

is_data_deletable
布林值。指明應用程式是否可供使用者要求應用程式刪除自己的使用者資料。
is_data_encrypted
布林值。指明所有由應用程式收集的使用者資料,是否會在傳輸過程中加密。

第三方驗證

third_party_verification 組合含單一鍵 url。這個網址以字串值表示,指定用於驗證應用程式資料安全性資訊的第三方網站。

系統服務安全性標籤格式

若應用程式是做為系統服務,系統會使用 system_app_safety_label 套裝組合,而非 safety_labels 套件,並包含下列鍵/值組合:

url (必要)

  • 網址指向的頁面含有以系統服務運作的應用程式安全性資訊。
  • 使用 string 做為類型。
  • 如未提供,則應使用隱私權政策網址做為備用網址。
  • 注意:Google Play 商店會使用 privacy_policy 做為備用方案。

資訊公開資訊格式

transparency_info 組合包含下列鍵/值組合:

developer_info
用於指定應用程式開發人員相關資訊PersistableBundle 物件。
app_info
用於指定應用程式相關資訊PersistableBundle 物件。

開發人員資訊

developer_info 組合包含下列鍵/值組合:

developer_#
用於識別開發人員的 PersistableBundle 物件。developer_info 包含一或多個 developer_#,其中 # 是整數。例如 developer_0developer_1developer_2 等。

開發人員

developer_# 組合包含下列鍵/值組合:

name (必要)
指明開發人員名稱的字串。
email (必要)
聲明開發人員電子郵件地址的字串。
address (必要)
聲明開發人員郵寄地址的字串。
country_region (必要)
字串,用來說明開發人員所在的國家/地區。
website
字串,用來陳述開發人員的網站。

app_registry

  • 用來陳述開發人員商店或註冊資料庫的字串。
  • 如果開發人員也在商店或其他註冊資料庫中註冊,則該值應為商店的 Android 套件名稱或註冊資料庫的網址。
  • 可以針對多間商店提交多個項目。
  • 如果是 Google Play,請使用 com.android.vending
  • 如果開發人員是 Google Play SDK 索引中列出的 SDK,請省略這個屬性。
  • 如果開發人員並未在任何應用程式商店或登錄中註冊,請省略這項屬性。

app_registry_id

  • 字串,用來陳述前述 app_registry 的開發人員 ID。
  • 如果開發人員也在商店或其他註冊資料庫中註冊,該值應為他們的商店或註冊身分。
  • 可以針對多間商店提交多個項目。
  • 如果是向 Google Play 註冊的開發人員,這個值「必須」為開發人員頁面的網址 (例如 https://play.google.com/store/apps/dev?id=5700313618786177705 是開發人員 Google LLC 的網址)。
  • 如果開發人員是 Google Play SDK 索引中列出的 SDK 開發人員,請使用 SDK 的 Google Play SDK 索引網址 (例如 https://play.google.com/sdks/details/com-google-android-gms-play-services-ads 是 Google Mobile Ads (GMA) SDK 的 Google Play SDK 索引網址)。
  • 如果開發人員已在其他商店或註冊資料庫註冊,可以提供應用程式商店網址或其他 ID。
  • 如果開發人員尚未在任何應用程式商店中註冊,就可以省略這項屬性。

應用程式資訊

app_info 組合包含下列鍵/值組合:

title (必要)
聲明應用程式標題的字串。
description (必要)
字串,以使用者可理解的英文文字 blob 指出應用程式的用途。
contains_ads (必要)
布林值,用來宣告應用程式是否會顯示任何廣告。

privacy_policy (必要)

  • 字串,包含連結至隱私權政策的網址屬性,詳細說明使用者資料的處理方式。
  • 如果應用程式會傳輸使用者資料,就必須加入這項設定。
  • 如果應用程式未提供此連結,系統會假設應用程式不會處理使用者資料。
category (必要)

包含下列其中一個應用程式類別的字串,最能描述應用程式的主要用途:

  • Android (僅適用於 Android 開放原始碼計畫元件)*
  • 藝術與設計
  • 汽車與交通工具
  • 美容
  • 圖書與參考資源
  • 商家
  • 漫畫
  • 通訊
  • 約會交友
  • 教育
  • 娛樂
  • 事件
  • 財經
  • 美食和飲料
  • 遊戲
  • 健康與健身
  • 居家生活
  • 安裝程式 (僅適用於應用程式商店或其他安裝程式)*
  • 媒體庫與試用內容
  • 生活互動
  • 地圖與導航
  • 醫療
  • 音樂和音訊
  • 新聞與雜誌
  • 親子教養
  • 個人化體驗
  • 拍照攝影
  • 效率提升
  • 安全性*
  • 購物
  • 社交
  • 體育
  • 工具
  • 旅遊與地方資訊
  • 更新程式 (僅適用於裝置的預設無線 (OTA) 更新應用程式)*
  • 影片播放器與編輯器
  • 天氣
contact_info
包含應用程式聯絡資訊PersistableBundle 物件 (詳見下文)。

聯絡資訊

contact_info 組合包含下列鍵/值組合:

email (必要)
聲明應用程式電子郵件地址的字串。
website
用來聲明應用程式網站的字串。