安全中心簡介

本頁說明 Android 的安全性和隱私權設定,以及如何透過安全中心存取設定 (包括結構、整合和自訂)。

從 Android 13 開始,安全中心將安全性和隱私權項目整合成單一頁面,即安全性與隱私權。您也可以透過快速設定方塊存取安全中心。

安全中心提供重新導向項目,方便使用者存取特定安全性和隱私權設定。安全中心也會結合來自多個來源的動態資料,找出使用者可在裝置或帳戶上修正的問題。這項資料可為使用者提供一般安全狀態,並提供具體建議。

安全性與隱私設定 安全性與隱私設定

圖 1. 安全中心畫面。

整合規定和指南

  • Android 13 和 Mainline M-2022-11 以上版本
  • 如何啟用安全中心的 Android 架構設定檔:
  • 伺服器端需求 (僅限 Android 13):

    • DeviceConfig 標記 safety_center_is_enabled 設為 true (Android 14 的預設值為 true)。

規範

  • 未導入 Safety Center 的 GMS 原始設備製造商 (OEM) 可以將 config.xml 檔案的疊加 config_enableSafetyCenter 欄位設為 false (預設為 true),即可選擇不採用。如需更多資訊,請參閱「啟用或停用 Safety Center」。
  • 如要避免 Android 13 鎖定畫面整合作業發生錯誤,請參閱「關於 PendingIntent」和「PendingIntent 解決方法」。由於問題已修正,因此無須在 Android 14 或 Android 13 QPR 中執行這項操作。

與安全中心整合

  1. 在裝置上啟用安全中心
  2. (選用) 修改安全中心設定檔,變更資料提供方式。請參閱「更新設定檔」。設定檔的變更必須符合自訂設定要求,且必須使用GTS 測試進行測試,以便對修改內容施加嚴格限制。
  3. (選用) 修改「設定」應用程式,新增或變更「安全性與隱私權」項目。
  4. 新增或變更安全性來源支援,確保安全中心能與螢幕鎖定或生物特徵辨識等信號搭配運作 (如支援)。您可能需要在「設定」應用程式中進行一些變更,才能正確實作。例如,將設定檔中的「設定」套件名稱變更為適當的名稱,並在「設定」應用程式中使用「安全中心」來源 API
  5. (選用) 自訂安全中心 UI,可疊加主題、邊框和其他功能。
  6. 執行並傳遞相關的 GTS 和 CTS 測試
  7. 在 13 版中,請確認您已提交裝置指紋,以便進行伺服器端許可清單。在 14 中不需要這麼做。

安全中心來源

安全中心來源會將資料提供給安全中心。來源通常由裝置上的個別應用程式擁有。目前只有系統應用程式是允許的安全來源。第三方應用程式並非安全來源。

以下列舉幾個安全中心來源範例:

  • 螢幕鎖定
  • 生物特徵辨識
  • 安全性更新
  • 尋找我的裝置
  • Google Play 安全防護
  • Google 帳戶安全性檢查
  • 隱私權信號

Safety Center 來源可提供下列類型的資料:

  • Safety Center UI 中的項目,用於將使用者重新導向至其他畫面。這個項目包含狀態,代表使用者是否有風險,以及與狀態相關的其他中繼資料,例如標題和摘要。
  • 警告資訊卡 (也稱為問題),可直接透過安全中心或將使用者重新導向至其他畫面來解決。每個問題也都會附加相關的中繼資料,例如標題、摘要、按鈕標籤和動作。
  • 嘗試向安全中心提供資料時可能發生的錯誤。
  • 來源將資料傳送至安全中心的原因。

設定檔

安全中心來源會列在設定檔中,做為許可清單。這個檔案也會為每個 UI 項目提供預設資料。設定檔可以指定不會影響安全中心狀態或問題 (也稱為「靜態安全來源」) 的靜態重新導向項目。詳情請參閱「更新設定檔」。

主系列模組

安全中心主要屬於 PermissionController Mainline 模組,因此 Google 可在針對支援 Mainline 的 GMS OEM 裝置時,於 Mainline 更新中更新這項功能。

如果非 GMS 的 OEM 裝置和不支援 Mainline 的 GMS OEM 裝置已納入這項功能,則可使用安全中心;不過,這些裝置應使用 M-2022-11 以上版本的程式碼。如需相關規定,請參閱「啟用或停用 Safety Center」。

Safety Center API

安全中心 API 是以 Java 編寫,而本頁中的程式碼範例是以 Java 編寫。不過,由於 Kotlin 與 Java 互通,因此使用者可以使用 Kotlin 中的 Safety Center API。與安全中心互動的 PermissionController 系統應用程式,有幾個部分是以 Kotlin 編寫。

你可以透過 API 與安全中心互動。這些 API 主要可透過 SafetyCenterManager 這個 System API 存取。詳情請參閱「與安全中心互動」。

意圖動作和額外項目

從 Android 13 開始,Intent 類別會定義公用意圖動作 (可供第三方應用程式存取),以便將使用者重新導向至安全中心。

其他動作和額外內容則定義於 SafetyCenterManager 中,且只有系統應用程式可存取,例如重新導向至特定問題。

啟用 Safety Center API

SafetyCenterManager 會公開 API,傳回裝置是否已啟用安全中心。這個 API 會確認裝置是否符合安全中心要求,例如裝置是否已安裝正確的 Mainline 模組版本。這項驗證可用於判斷是否要在「設定」和其他位置顯示安全中心。這也可以用來判斷是否應將資料提供給安全中心。如要瞭解如何開啟或關閉 Safety Center,請參閱「啟用或停用 Safety Center」。

安全中心來源 API

Safety Center 來源會使用 Safety Center 來源 API,為 Safety Center 提供動態資料。Safety Center 來源 API 可執行下列功能:

  • 設定特定安全中心來源的資料。
  • 取得指定 Safety Center 來源的最新資料集。
  • 回報特定安全中心來源的錯誤。

安全中心來源可選擇接收信號,在特殊情況下 (例如開啟安全中心頁面時) 將資料傳送至安全中心,確保提供的資料是最新的。

內部安全中心 API

部分 Safety Center API 屬於內部 API,只有 PermissionController 主線模組會使用 (殼層和測試除外)。基於技術因素,這些 API 不會隱藏,而是由 SafetyCenterManager 公開。

Safety Center API 可執行下列功能:

  • 向 Safety Center 來源傳送信號,以便重新整理資料。
  • 取得設定檔的表示法。
  • 從多個安全中心來源取得合併資料。
  • 訂閱及取消訂閱資料變更。
  • 關閉警告資訊卡。
  • 執行警告資訊卡動作。

測試 API

SafetyCenterManager 包含用於測試的 Safety Center 測試 API。

Safety Center 測試 API 可執行以下操作:

  • 清除 Safety Center 儲存的所有資料。
  • 覆寫設定檔並清除覆寫值。

殼層指令

我們提供部分殼層指令,可透過 Android Debug Bridge Shell (adb shell) 與 Safety Center 互動。請使用 adb shell cmd safety_center help 查看指令清單和功能。

安全中心使用者介面

安全中心使用者介面是在 PermissionController 模組內的 PermissionController 系統應用程式中定義。使用者介面由活動和幾個片段組成,這些片段會使用「內部安全中心 API」一文所述的 API。Safety Center 公開的「快速設定」資訊方塊使用相同的 UI 元件,但在版面配置方式上有些微差異。

您可以使用疊加層,變更這個頁面的外觀和風格。如需更多資訊,請參閱「自訂安全中心 UI」。