測試規定

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 中,請勿修改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 ,則必須解析此操作。
  • 如果 XML 檔案中存在意圖操作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可確保 Safety Center 公開的資料類別按預期運作,例如SafetySourceDataSafetySourceIssue和其他相關內部類別。

MTS 測試( SafetyCenterFunctionalTestCases等)

這些測試在主線更新中運行,並適用於所有支援PermissionController的 OEM。這些測試強制執行的要求可能會隨著主線更新而改變。

API 測試( SafetyCenterManagerTest

這些測試類似於 CTS 測試SafetyCenterManagerTest ,但它們測試的需求可能會隨著主線更新而變化,例如:

  • 檢查暴露給UI的內部API回傳的資料的實際內容

UI 測試( SafetyCenterActivityTestSafetyCenterStatusCardTestSafetyCenterQsActivityTest等)

這些測試確保:

  • 使用特定參數重定向到安全中心可以按預期工作,例如,重定向到特定問題。請參閱重定向到安全中心
  • UI 顯示正確的底層安全狀態。
  • 使用者介面允許導航到單獨的螢幕。
  • SafetySourceIssue指定時,UI 允許直接從安全中心螢幕解決安全問題。
  • UI 將多個警告卡折疊在一個專案中,並允許將其擴展回多個警告卡。
  • 當開啟相關安全中心來源的安全中心頁面時,資料會重新整理。
  • 重新掃描按鈕僅在特定情況下出現。
  • 點擊重新掃描按鈕可取得新資料。
  • 安全中心也進行了類似的測試。請參閱為您的應用程式建立自訂快速設定圖塊

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

多重使用者測試( SafetyCenterMultiUsersTest

這些測試的目標是確保 API 在為多個使用者或設定檔提供資料時正常運作。請參閱為多個使用者和設定檔提供資料。此設定是透過使用內部庫來實現的,該庫有助於使用 Bedstead 在裝置上設定單獨的使用者和設定檔。

此測試可確保以下內容:

  • 屬於使用者的資料與其關聯的託管設定檔(如果存在)合併在一起。
  • 只有標示profile="all_profiles"的來源才能提供使用者的託管設定檔中的資料。
  • 為與使用者關聯的每個託管設定檔建立一個新條目。
  • 屬於一個使用者的資料不會洩漏給另一個不相關的使用者。