測試規定

GTS 測試 (GtsSafetyCenterTestCases)

GTS 測試會對設定檔強制套用限制。請參閱「更新設定檔」。如果裝置不支援 Safety Center,則可免除這些測試。

限制如下:

  • 至少應有七個 Safety Center 來源群組,且應保持在未修改或預設狀態。部分特定欄位 (例如來源標題、初始顯示狀態和摘要) 有時會受到可重疊字串支援,且可以修改。
  • 針對 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 中,請勿修改 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 設定檔與 Safety Center 剖析及公開的設定相符,且剖析成功。
  • 如果 XML 檔案中有意圖動作 android.settings.PRIVACY_ADVANCED_SETTINGS,則必須解決這個問題。
  • 如果 XML 檔案中含有意圖動作 android.settings.PRIVACY_CONTROLS,則必須解析這項動作。

UI 測試 (SafetyCenterActivityTest)

這些測試可確保:

  • android.intent.action.SAFETY_CENTER 意圖動作會在安全中心啟用時解析並開啟「安全性與隱私權」設定畫面,在安全中心停用時則會開啟「設定」畫面。

API 測試 (SafetyCenterManagerTest)

SafetyCenterManagerTest API 測試的目標,是確保 Safety Center API 能正常運作。

這些測試可確保以下事項:

  • SafetyCenterManager.isSafetyCenterEnabled 由相關聯的 DeviceConfig 標記控制。
  • 停用後,Safety Center API 將不會執行任何操作。
  • 只有在擁有相關權限時,才能使用 Safety Center API。
  • 您只能根據基礎設定提供資料給 Safety Center。
  • 當 Safety Center 收到資料時,就會顯示相關內容。
  • 這些 API 符合「使用 Safety Center 來源 API」一文所述的規格,例如重新整理或重新掃描行為、設定或清除資料,以及回報錯誤。
  • 公開給使用者介面的內部 API 運作正常,例如 Safety Center 會適當合併資料,且資料可進行重新整理。

不支援的安全中心測試 (SafetyCenterUnsupportedTest)

這項測試可確保在裝置不支援 Safety Center 且架構 XML 設定檔中已停用支援功能時,Safety Center 會停用。

如果裝置支援安全中心,系統就不會執行這項測試。如果裝置不支援安全中心,則只會執行這項測試和資料類別測試。

這項測試可確保以下事項:

  • android.intent.action.SAFETY_CENTER 意圖動作會開啟「設定」畫面。
  • SafetyCenterManager.isSafetyCenterEnabled 會傳回 false
  • 呼叫時,大多數安全中心 API 都不會回應。

資料類別測試 (SafetySourceDataTestSafetySourceIssueTest 等)

資料類別測試 (例如 SafetySourceDataTestSafetySourceIssueTest) 可確保 Safety Center 公開的資料類別正常運作,例如 SafetySourceDataSafetySourceIssue 和其他相關的內部類別。

MTS 測試 (SafetyCenterFunctionalTestCases 和其他)

這些測試會在主線更新中執行,並套用至所有支援 PermissionController 的原始設備製造商。這些測試強制執行的規定,可能會隨著主系列更新而變更。

API 測試 (SafetyCenterManagerTest)

這些測試與 CTS 測試 SafetyCenterManagerTest 類似,但會測試主系列更新可能變更的規定,例如:

  • 檢查內部 API 傳回至 UI 的資料實際內容

UI 測試 (SafetyCenterActivityTestSafetyCenterStatusCardTestSafetyCenterQsActivityTest 等)

這些測試可確保:

  • 使用特定參數將內容重新導向至安全中心的功能運作正常,例如重新導向至特定問題。請參閱「重新導向至安全中心」一文。
  • UI 會顯示正確的基礎安全狀態。
  • 使用者介面可讓您前往不同的畫面。
  • SafetySourceIssue 指定時,使用者介面可直接從安全中心畫面解決安全性問題。
  • UI 會將單一項目的多個警告資訊卡收合,並允許將其展開為多個警告資訊卡。
  • 開啟相關安全中心來源的安全中心頁面時,系統會重新整理資料。
  • 只有在特定情況下,系統才會顯示重新掃描按鈕。
  • 輕觸「重新掃描」按鈕可擷取新資料。
  • 我們也對安全中心進行類似的測試。請參閱「為應用程式建立自訂「快速設定」方塊

  • 其他極端情況,例如錯誤狀態和待處理狀態。

多位使用者測試 (SafetyCenterMultiUsersTest)

這些測試的目標是確保在為多位使用者或個人資料提供資料時,API 能正常運作。請參閱「為多位使用者和設定檔提供資料」。這項設定是透過使用內部程式庫來完成,方便使用 Bedstead 在裝置上設定個別使用者和設定檔。

這項測試可確保以下事項:

  • 屬於使用者的資料會與相關的受管理設定檔 (如有) 合併。
  • 只有標有 profile="all_profiles" 的來源才能在使用者受管理的設定檔中提供資料。
  • 系統會為每個與使用者相關聯的受管理設定檔建立新項目。
  • 單一使用者的資料不會洩露給其他不相關的使用者。