本頁說明 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 中不需要這麼做。
安全中心來源
安全中心來源會將資料提供給安全中心。來源通常由裝置上的個別應用程式擁有。目前只有系統應用程式是允許的安全來源。第三方應用程式並非安全來源。
以下列舉幾個安全中心來源範例:
- 螢幕鎖定
- 生物特徵辨識
- 安全性更新
- 尋找我的裝置
- 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」。