测试要求

GTS 测试 (GtsSafetyCenterTestCases)

GTS 测试会对配置文件施加限制。请参阅更新配置文件。 如果设备不支持安全中心,则不必完成这些测试。

限制条件如下:

  • 至少应该有 7 个安全中心信息来源群组,它们应保持未修改或默认状态。某些特定字段(如信息来源标题、初始显示状态和摘要)有时由可叠加的字符串提供支持,并且可修改。
  • 对于 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 文件中存在 android.settings.PRIVACY_ADVANCED_SETTINGS intent 操作,则此操作必须进行解析。
  • 如果 XML 文件中存在 android.settings.PRIVACY_CONTROLS intent 操作,则此操作必须进行解析。

界面测试 (SafetyCenterActivityTest)

这些测试可确保:

  • 在启用安全中心后,android.intent.action.SAFETY_CENTER intent 操作会解析并打开安全和隐私设置屏幕,在停用安全中心时将解析并打开“设置”屏幕。

API 测试 (SafetyCenterManagerTest)

SafetyCenterManagerTest API 测试的目标是确保安全中心 API 按预期运行。

这些测试可确保:

  • SafetyCenterManager.isSafetyCenterEnabled 由关联的 DeviceConfig 标志控制。
  • 停用后,Security Center API 将为空操作。
  • Safety Center API 仅在拥有相关权限时可用。
  • 您只能根据底层配置将数据提供给安全中心。
  • 向安全中心提供数据时,数据会相应地显示。
  • 这些 API 符合使用安全中心信息来源 API 中所述的规范,例如刷新或重新扫描行为、设置或清除数据以及报告错误。
  • 提供给界面的内部 API 运行正常,例如,安全中心会相应地适当地合并数据,并且可能会刷新数据。

安全中心不受支持的测试 (SafetyCenterUnsupportedTest)

此测试可确保当设备不支持安全中心时,系统会在框架 XML 配置文件中停用该功能时停用安全中心。

如果设备支持安全中心,此测试不会运行。如果设备不支持安全中心,则仅运行此测试和数据类测试。

此测试可确保:

  • android.intent.action.SAFETY_CENTER intent 操作会打开“设置”屏幕。
  • SafetyCenterManager.isSafetyCenterEnabled 会返回 false.
  • 大多数安全中心 API 在被调用时没有响应。

数据类测试(SafetySourceDataTestSafetySourceIssueTest 等)

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

MTS 测试(SafetyCenterFunctionalTestCases 及其他)

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

API 测试 (SafetyCenterManagerTest)

这些测试类似于 CTS 测试 SafetyCenterManagerTest,但测试的要求可能因 Mainline 更新而异,例如:

  • 检查提供给界面的内部 API 返回的数据的实际内容

界面测试(SafetyCenterActivityTestSafetyCenterStatusCardTestSafetyCenterQsActivityTest 等)

这些测试可确保:

  • 您可以使用特定参数按预期重定向到安全中心,例如重定向到特定问题。请参阅重定向到安全中心
  • 界面显示正确的底层安全状态。
  • 该界面允许转到单独的屏幕。
  • SafetySourceIssue 指定时,界面允许直接在安全中心屏幕上解决安全问题。
  • 界面可以收起一个项目中的多个警告卡片,并允许将其重新展开为多个警告卡片。
  • 在安全中心相关页面上打开相关安全中心数据后,系统会刷新数据。
  • 重新扫描按钮仅在特定情况下显示。
  • 点按重新扫描按钮可提取新数据。
  • 我们会对安全中心进行类似的测试。请参阅为您的应用创建自定义“快捷设置”功能块

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

多用户测试 (SafetyCenterMultiUsersTest)

这些测试的目标是,当为多个用户或个人资料提供数据时,确保 API 正常运行。请参阅为多个用户和个人资料提供数据。此设置是通过使用一个内部库来完成的,该库有助于使用 Bedstead 在设备上设置单独的用户和个人资料。

此测试可确保:

  • 属于用户的数据将与关联的受管理资料合并(如果存在)。
  • 只有标有 profile="all_profiles" 的信息来源才能在用户的受管理资料中提供数据。
  • 系统会为用户关联的每个受管理资料创建一个新条目。
  • 属于某个用户的数据不会泄露给另一个不相关的用户。