測試規定

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

    • 您可以將 intentAction 變更為 GoogleSecurityUpdates,並使用字串疊加層修改。
    • 請勿修改 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,則必須解析這項動作。

使用者介面測試 (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 會適當合併資料,且資料可進行重新整理。

Safety Center 不支援的測試 (SafetyCenterUnsupportedTest)

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

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

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

  • android.intent.action.SAFETY_CENTER 意圖動作會開啟「設定」畫面。
  • SafetyCenterManager.isSafetyCenterEnabled 會傳回 false
  • 大多數 Safety Center API 在呼叫時不會回應。

資料類別測試 (SafetySourceDataTestSafetySourceIssueTest 等)

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

MTS 測試 (SafetyCenterFunctionalTestCases 和其他)

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

API 測試 (SafetyCenterManagerTest)

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

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

UI 測試 (SafetyCenterActivityTestSafetyCenterStatusCardTestSafetyCenterQsActivityTest 等)

這些測試可確保:

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

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

多位使用者測試 (SafetyCenterMultiUsersTest)

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

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

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