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

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

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

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

  • 對於要安裝或更新的應用程式,如要指定此中繼資料,應用程式安裝者應將 PersistableBundle 物件傳遞至 setAppMetadata() 方法。

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

version (必填)
應用程式中繼資料格式的版本號碼。請使用 2 做為目前版本的值,並將 long 做為類型。如果預期的金鑰或內容類型變更,AppMetadata Android 就會變更版本號碼。
safety_labels
用於指定應用程式安全性標籤PersistableBundle 物件。
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
用來表示應用程式網站的字串。