从 Android 14 开始,Android 软件包安装程序可以提取应用的元数据(例如数据安全做法),以便在 Android 平台功能(例如更新后的位置信息权限提示)中使用。
提供此元数据的方法有两种:
对于系统映像中预加载的应用,设备制造商可以通过将 XML 文件添加到系统映像(并附带下文所述的可持久化软件包)来提供有关该应用的元数据。
对于正在安装或更新的应用,如需指定此元数据,请应用 安装程序应将
PersistableBundle
对象传入setAppMetadata()
方法。
顶级持久化软件包由以下键值对组成。除非另有说明,否则每个键都是可选的。
version
(必需)- 应用元数据格式的版本号。使用
2
作为此项的值 当前版本,类型为long
。如果需要的键或内容类型AppMetadata
更改,Android 将更改版本号。 safety_labels
- 一个
PersistableBundle
对象,用于指定应用的安全标签。 system_app_safety_label
- 一个
PersistableBundle
对象,用于指定应用的 system-app-safety-label。对于充当系统服务的应用, 使用的是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_collected
和 data_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
标识符
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_FUNCTIONALITY2
:PURPOSE_ANALYTICS3
:PURPOSE_DEVELOPER_COMMUNICATIONS4
:PURPOSE_FRAUD_PREVENTION_SECURITY5
:PURPOSE_ADVERTISING6
:PURPOSE_PERSONALIZATION7
:PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional
-
布尔值。指定用户能否选择启用或停用 数据收集。
注意 :请仅为
data_category
个软件包,代表数据收集;不设置 以便实现数据共享 ephemeral
-
布尔值。指定应用是否处理数据 服务器端仅在内存中,不在磁盘中,并且应用保留数据 超过进行特定数据处理所需的时间 请求。
注意 :请仅为
data_category
个软件包,代表数据收集;不设置 以便实现数据共享
数据删除和加密做法
security_labels
bundle 包含表示应用
数据删除和加密做法:
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_0
、developer_1
、developer_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 移动广告 [GMA] SDK 的 Google Play SDK 索引网址)。
- 如果开发者是在其他商店或注册库注册的,则为应用商店 可以提供网址或其他标识符。
- 如果开发者未在任何应用商店中注册,则可忽略此属性。
应用信息
app_info
软件包包含以下键值对:
title
(必需)- 一个说明应用名称的字符串。
description
(必需)- 一个字符串,以人类可读的文本 blob(英语)形式提供应用用途说明。
contains_ads
(必需)- 一个布尔值,用于声明应用是否会展示任何广告。
privacy_policy
(必需)
- 一个字符串,其中包含指向详细说明用户数据处理方式的隐私权政策的网址属性。
- 对于传输用户数据的应用而言是必需的。
- 如果应用不包含此链接,则系统会假定该应用不包含 处理用户数据
category
(必需)一个字符串,其中包含以下某个最适合的应用类别 说明了应用的主要用途:
- Android(仅适用于 AOSP 组件)*
- 艺术与设计
- 汽车和交通工具
- 美容时尚
- 图书与工具书
- 商业
- 漫画
- 通信
- 约会交友
- 教育
- 娱乐
- 活动
- 财务
- 饮食
- 游戏
- 健康与健身
- 家居
- 安装程序(仅适用于应用商店或其他安装程序)*
- 媒体库与演示
- 生活时尚
- 地图与导航
- 医疗
- 音乐与音频
- 新闻与杂志
- 育儿
- 个性化
- 摄影
- 效率
- 安全性*
- 购物
- 社交
- 体育
- 工具
- 旅行与本地出行
- 更新程序(仅适用于设备的默认无线下载 (OTA) 更新应用)*
- 视频播放器和编辑器
- 天气
contact_info
- 一个
PersistableBundle
对象,包含联系信息 应用(见下文)。
联系信息
contact_info
软件包包含以下键值对:
email
(必需)- 一个字符串,用于说明应用的电子邮件地址。
website
- 用于指明应用的网站的字符串。