本頁說明 Android 中的安全性和隱私權設定,以及如何透過安全中心存取設定 (包括結構、整合和自訂)。
從 Android 13 開始,安全中心會將安全性和隱私權項目整合到名為「安全性與隱私權」的單一頁面。您也可以透過快速設定方塊存取安全中心。
安全中心提供重新導向項目,方便使用者存取特定安全性和隱私權設定。安全中心也會結合來自多個來源的動態資料,找出使用者可在裝置或帳戶上修正的問題。這項資料可為使用者提供一般安全狀態,並提供具體建議。
圖 1. 安全中心畫面。
整合規定和指南
- Android 13 和 Mainline M-2022-11 以上版本
- 啟用安全中心的 Android 架構設定檔:
frameworks/base/core/res/res/values/config.xml
檔案的疊加config_enableSafetyCenter
欄位設為true
(預設)。
伺服器端需求 (僅限 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 中執行這項操作。
與安全中心整合
- 在裝置上啟用安全中心。
- (選用) 修改安全中心設定檔,變更資料提供方式。請參閱「更新設定檔」一節。設定檔的變更必須符合自訂設定要求,且必須使用GTS 測試進行測試,以便對修改內容施加嚴格限制。
- (選用) 修改「設定」應用程式,新增或變更「安全性與隱私權」項目。
- 新增或變更安全來源支援功能,確保安全中心可與螢幕鎖定畫面或生物特徵驗證等信號搭配運作 (如有支援)。為正確實作這項功能,您可能需要在「設定」應用程式中進行一些變更。例如,將設定檔中的「設定」套件名稱變更為適當的名稱,並在「設定」應用程式中使用「安全中心」來源 API。
- (選用) 自訂安全中心 UI,可疊加主題、邊框和其他功能。
- 執行並通過相關的 GTS 和 CTS 測試。
- 在 13 版中,請確認您已提交裝置指紋,以便進行伺服器端許可清單。在 14 中不需要這麼做。
安全中心來源
安全中心來源會將資料提供給安全中心。來源通常由裝置上的個別應用程式擁有。目前只有系統應用程式可使用安全性來源。第三方應用程式不是安全來源。
以下是 Safety Center 來源的範例:
- 螢幕鎖定
- 生物辨識
- 安全性更新
- 尋找我的裝置
- Google Play 安全防護
- Google 帳戶安全檢查
- 隱私權信號
Safety Center 來源可提供下列類型的資料:
- Safety Center UI 中的項目,用於將使用者重新導向至其他畫面。這個項目包含狀態,代表使用者是否有風險,以及與狀態相關的其他中繼資料,例如標題和摘要。
- 警告資訊卡 (也稱為問題),可直接透過安全中心或將使用者重新導向至其他畫面來解決。每個問題也都會附加相關的中繼資料,例如標題、摘要、按鈕標籤和動作。
- 嘗試向安全中心提供資料時可能發生的錯誤。
- 來源將資料傳送至安全中心的原因。
設定檔
安全中心來源會列在設定檔中,做為許可清單。這個檔案也會為每個 UI 項目提供預設資料。設定檔案可以指定不會影響 Safety Center 狀態或問題的靜態重新導向項目 (也稱為靜態安全性來源)。詳情請參閱「更新設定檔」。
主系列模組
安全中心主要屬於 PermissionController Mainline 模組,因此 Google 可在支援 Mainline 的 GMS OEM 裝置上,將這項功能納入 Mainline 更新。
非 GMS OEM 裝置和不支援 Mainline 的 GMS OEM 裝置,如果系統映像檔包含此功能,則可使用 Safety Center;但應使用 M-2022-11 以上版本的程式碼。如需相關規定,請參閱「啟用或停用 Safety Center」。
Safety Center API
Safety Center API 是以 Java 編寫,而本頁的程式碼範例也是以 Java 編寫。不過,由於 Kotlin 與 Java 互通,因此 Safety Center API 可在 Kotlin 中使用。與安全中心互動的 PermissionController 系統應用程式,有幾個部分是以 Kotlin 編寫。
您可以使用 API 與 Safety Center 互動。這些 API 主要可透過 SafetyCenterManager
存取,後者是系統 API。詳情請參閱「與安全中心互動」。
意圖動作和額外項目
從 Android 13 開始,Intent
類別會定義公用意圖動作 (可供第三方應用程式存取),以便將使用者重新導向至安全中心。
其他動作和額外內容則定義在 SafetyCenterManager
中,且只有系統應用程式可存取,例如可用於將使用者導向至特定問題。
啟用 Safety Center API
SafetyCenterManager
會公開 API,傳回裝置是否已啟用安全中心。API 會確認裝置是否符合 Safety Center 規定,例如裝置是否已安裝正確的主線程模組版本。這項驗證功能可用於判斷是否要在「設定」和其他位置顯示安全中心。這項資訊也可以用來判斷是否應將資料提供給安全中心。如要瞭解如何開啟或關閉 Safety Center,請參閱「啟用或停用 Safety Center」。
Safety Center 來源 API
Safety Center 來源會使用 Safety Center 來源 API,為 Safety Center 提供動態資料。Safety Center 來源 API 可執行下列功能:
- 設定指定 Safety Center 來源的資料。
- 取得指定 Safety Center 來源的最新資料集。
- 回報特定安全中心來源的錯誤。
Safety Center 來源可選擇接收信號,在特殊情況下 (例如開啟 Safety Center 頁面時) 將資料傳送至 Safety Center,確保提供的資料是最新的。
Internal 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」。