测试要求

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_RECOMMENDATIONmaxSeverityLevel="300" 或最高为黄色条目或警告卡)的问题或条目。在 Android 14 中,deduplicationGroup 必须保持不变。
    • 其他安全来源旨在成为与生物识别解锁机制相关的来源,它们应具有 maxSeverityLevel="0"
  • 在 Android 13 中,请勿修改 GoogleAccountSourcesGoogleDeviceFinderSourcesAndroidAdvancedSources。在 Android 14 中,您可以移除在这些组中引入的一些新来源(例如,备份与恢复),您也可以将新的静态来源附加到 AndroidAdvancedSources 组。

  • 对于 GoogleUpdateSources

    • 您可以更改 GoogleSecurityUpdatesintentAction,并且可以使用字符串叠加层对其进行修改。
    • 请勿修改 GooglePlaySystemUpdate
  • 对于 AndroidPrivacySources

    • 您可以添加、移除或修改某些来源,只要它们是 issue-only 即可。
    • 它们必须保留 packageName="com.google.android.permissioncontroller"
    • 请勿修改 AndroidPrivacySources 来源的其余部分。
  • 对于其余的安全来源组(如果有):

    • 组不应具有 summarystatelessIconType,这会导致 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 在被调用时都不会响应。

数据类测试(SafetySourceDataTestSafetySourceIssueTest 等)

数据类测试(例如 SafetySourceDataTestSafetySourceIssueTest)可确保安全中心公开的数据类能够按预期工作,例如,SafetySourceDataSafetySourceIssue 和其他相关的内部类。

MTS 测试 (SafetyCenterFunctionalTestCases 等)

这些测试跨主线更新运行,适用于支持 PermissionController 的所有 OEM。这些测试强制执行的要求可能会在主线更新中发生变化。

API 测试 (SafetyCenterManagerTest)

这些测试类似于 CTS 测试 SafetyCenterManagerTest,但它们测试的是可能会在主线更新中发生变化的要求,例如:

  • 检查公开给 UI 的内部 API 返回的数据的实际内容

UI 测试(SafetyCenterActivityTestSafetyCenterStatusCardTestSafetyCenterQsActivityTest 等)

这些测试可确保:

  • 使用特定参数重定向到安全中心可按预期工作,例如,重定向到特定问题。请参阅重定向到安全中心
  • UI 显示正确的底层安全状态。
  • UI 允许导航到不同的屏幕。
  • SafetySourceIssue 指定时,UI 允许直接从安全中心屏幕解决安全问题。
  • UI 将多个警告卡片折叠到一个条目中,并允许将其展开回多个警告卡片。
  • 当为相关的安全中心来源打开安全中心页面时,数据会刷新。
  • 重新扫描按钮仅在特定情况下才会出现。
  • 点按重新扫描按钮会提取新数据。
  • 针对安全中心进行了类似的测试。请参阅为您的应用创建自定义“快捷设置”图块

  • 其他极端情况,例如错误状态和待处理状态。

多用户测试 (SafetyCenterMultiUsersTest)

这些测试的目标是确保当为多个用户或配置文件提供数据时,API 能够正常工作。请参阅为多个用户和配置文件提供数据。此设置是通过使用一个内部库来实现的,该库有助于使用 Bedstead 在设备上设置单独的用户和配置文件。

此测试可确保以下事项:

  • 属于某个用户的数据与其关联的受管理配置文件(如果存在)合并在一起。
  • 只有标记有 profile="all_profiles" 的来源才能在用户的受管理配置文件中提供数据。
  • 会为与用户关联的每个受管理配置文件创建一个新条目。
  • 属于一个用户的数据不会泄露给另一个不相关的用户。