GTS 测试 (GtsSafetyCenterTestCases
)
GTS 测试对配置文件施加了约束。请参阅更新配置文件。如果设备不支持安全中心,则该设备可免于进行这些测试。
约束条件如下:
- 应至少有七个安全中心来源组,这些组应保持未修改状态或默认状态。某些特定字段(例如来源标题、初始显示状态和摘要)有时由可叠加的字符串提供支持,并且可以修改。
对于
GoogleAppSecuritySources
:- 请勿移除或修改
GooglePlayProtect
安全来源。 - 您可以移除或更改
GoogleAppProtectionService
安全来源。如果存在该来源:- 它必须支持日志记录。
- 如果软件包名称未更改,则在 Android 13 中,它必须具有
initialDisplayState="hidden"
;在 Android 14 中,它必须是issue-only-safety-source
,并且deduplicationGroup
必须保持不变。 - 如果软件包名称已更改,则它必须拥有角色
"android.app.role.SYSTEM_APP_PROTECTION_SERVICE"
;此外,在 Android 14 中,它不得具有deduplicationGroup
。
- 请勿移除或修改
对于
AndroidLockScreenSources
:- 需要该组的
summary
实例,您可以修改它,包括使用字符串叠加层。 - 必须至少有一个安全来源。
- 第一个安全来源旨在成为控制锁屏设置的来源,它不应能够推送严重程度高于
SEVERITY_LEVEL_RECOMMENDATION
(maxSeverityLevel="300"
或最高为黄色条目或警告卡)的问题或条目。在 Android 14 中,deduplicationGroup
必须保持不变。 - 其他安全来源旨在成为与生物识别解锁机制相关的来源,它们应具有
maxSeverityLevel="0"
。
- 需要该组的
在 Android 13 中,请勿修改
GoogleAccountSources
、GoogleDeviceFinderSources
或AndroidAdvancedSources
。在 Android 14 中,您可以移除在这些组中引入的一些新来源(例如,备份与恢复),您也可以将新的静态来源附加到AndroidAdvancedSources
组。对于
GoogleUpdateSources
:- 您可以更改
GoogleSecurityUpdates
的intentAction
,并且可以使用字符串叠加层对其进行修改。 - 请勿修改
GooglePlaySystemUpdate
。
- 您可以更改
对于
AndroidPrivacySources
:- 您可以添加、移除或修改某些来源,只要它们是
issue-only
即可。 - 它们必须保留
packageName="com.google.android.permissioncontroller"
。 - 请勿修改
AndroidPrivacySources
来源的其余部分。
- 您可以添加、移除或修改某些来源,只要它们是
对于其余的安全来源组(如果有):
- 组不应具有
summary
或statelessIconType
,这会导致SAFETY_SOURCES_GROUP_TYPE_RIGID
组(在 Android 14 中为SAFETY_SOURCES_GROUP_TYPE_STATELESS
)。 - 每个组中的每个来源都应该是静态的,或者具有
maxSeverityLevel="0"
,例如,允许发送灰色或绿色条目,但不允许发送问题。
- 组不应具有
CTS 测试 (CtsSafetyCenterTestCases
)
从 Android 13 开始,CTS 测试适用于支持 PermissionController
的所有 OEM。
配置文件测试 (XmlConfigTest
)
这些测试可确保:
- 解析后的 XML 配置文件与安全中心解析和公开的配置相匹配,并且此解析已成功。
- 如果 XML 文件中存在 Intent 操作
android.settings.PRIVACY_ADVANCED_SETTINGS
,则此操作必须能够解析。 - 如果 XML 文件中存在 Intent 操作
android.settings.PRIVACY_CONTROLS
,则此操作必须能够解析。
UI 测试 (SafetyCenterActivityTest
)
这些测试可确保:
- 当安全中心处于启用状态时,
android.intent.action.SAFETY_CENTER
Intent 操作会解析并打开安全和隐私设置屏幕;当安全中心处于停用状态时,则打开“设置”屏幕。
API 测试 (SafetyCenterManagerTest
)
SafetyCenterManagerTest API 测试的目标是确保安全中心 API 能够按预期工作。
这些测试可确保以下事项:
SafetyCenterManager.isSafetyCenterEnabled
由关联的DeviceConfig
标记控制。- 停用后,安全中心 API 不执行任何操作。
- 只有在持有相关权限时,安全中心 API 才能使用。
- 只有根据底层配置,才能向安全中心提供数据。
- 当向安全中心提供数据时,数据会相应地显示出来。
- API 与使用安全中心来源 API中描述的规范相匹配,例如,刷新或重新扫描行为、设置或清除数据以及报告错误。
- 公开给 UI 的内部 API 工作正常,例如,数据由安全中心适当合并,并且可以刷新数据。
安全中心不受支持的测试 (SafetyCenterUnsupportedTest
)
此测试可确保当设备不支持安全中心时,如果在框架 XML 配置文件中停用了支持,则安全中心也会停用。
如果设备支持安全中心,则不会运行此测试。如果设备不支持安全中心,则只会运行此测试和数据类测试。
此测试可确保以下事项:
android.intent.action.SAFETY_CENTER
Intent 操作会打开“设置”屏幕。SafetyCenterManager.isSafetyCenterEnabled
返回false
。- 大多数安全中心 API 在被调用时都不会响应。
数据类测试(SafetySourceDataTest
、SafetySourceIssueTest
等)
数据类测试(例如 SafetySourceDataTest
和 SafetySourceIssueTest
)可确保安全中心公开的数据类能够按预期工作,例如,SafetySourceData
、SafetySourceIssue
和其他相关的内部类。
MTS 测试 (SafetyCenterFunctionalTestCases
等)
这些测试跨主线更新运行,适用于支持 PermissionController
的所有 OEM。这些测试强制执行的要求可能会在主线更新中发生变化。
API 测试 (SafetyCenterManagerTest
)
这些测试类似于 CTS 测试 SafetyCenterManagerTest
,但它们测试的是可能会在主线更新中发生变化的要求,例如:
- 检查公开给 UI 的内部 API 返回的数据的实际内容
UI 测试(SafetyCenterActivityTest
、SafetyCenterStatusCardTest
、SafetyCenterQsActivityTest
等)
这些测试可确保:
- 使用特定参数重定向到安全中心可按预期工作,例如,重定向到特定问题。请参阅重定向到安全中心。
- UI 显示正确的底层安全状态。
- UI 允许导航到不同的屏幕。
- 当
SafetySourceIssue
指定时,UI 允许直接从安全中心屏幕解决安全问题。 - UI 将多个警告卡片折叠到一个条目中,并允许将其展开回多个警告卡片。
- 当为相关的安全中心来源打开安全中心页面时,数据会刷新。
- 重新扫描按钮仅在特定情况下才会出现。
- 点按重新扫描按钮会提取新数据。
针对安全中心进行了类似的测试。请参阅为您的应用创建自定义“快捷设置”图块
其他极端情况,例如错误状态和待处理状态。
多用户测试 (SafetyCenterMultiUsersTest
)
这些测试的目标是确保当为多个用户或配置文件提供数据时,API 能够正常工作。请参阅为多个用户和配置文件提供数据。此设置是通过使用一个内部库来实现的,该库有助于使用 Bedstead 在设备上设置单独的用户和配置文件。
此测试可确保以下事项:
- 属于某个用户的数据与其关联的受管理配置文件(如果存在)合并在一起。
- 只有标记有
profile="all_profiles"
的来源才能在用户的受管理配置文件中提供数据。 - 会为与用户关联的每个受管理配置文件创建一个新条目。
- 属于一个用户的数据不会泄露给另一个不相关的用户。