本頁介紹 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
)。
-
指南
- 未實作安全中心的 GMS OEM 可以透過將
config.xml
檔案的可覆寫config_enableSafetyCenter
欄位設為false
(預設值為true
)來選擇退出。有關其他信息,請參閱啟用或停用安全中心。 - 為了避免 Android 13 中的鎖定畫面整合出現錯誤,請參閱關於 PendingIntent和PendingIntent 解決方法。無需在 Android 14 或 Android 13 QPR 中執行此操作,因為該問題已解決。
與安全中心集成
- 在您的裝置上啟用安全中心。
- (可選)修改安全中心設定檔以變更資料的提供方式。請參閱更新設定檔。對設定檔的變更必須符合自訂要求,並且必須透過對修改施加嚴格約束的GTS 測試進行測試。
- (可選)修改您的「設定」應用程式以新增或變更「安全性和隱私權」條目。
- 新增或變更對安全來源的支持,以確保安全中心能夠處理鎖定螢幕或生物識別(如果支援)等訊號。這可能需要在“設定”應用程式中進行一些更改才能正確實現。例如,將設定檔中的「設定」套件名稱變更為適當的名稱,並在「設定」應用程式中使用「安全中心」來源 API 。
- (可選)透過疊加主題、填充和其他功能來自訂安全中心 UI 。
- 運行並通過相關的GTS 和 CTS 測試。
- 在 13 中,請確保您提交了用於伺服器端白名單的裝置指紋。 14 不需要這樣做。
安全中心來源
安全中心來源向安全中心提供資料。來源通常由裝置上的單獨應用程式擁有。目前僅允許系統應用程式使用安全來源。第三方應用程式不是安全來源。
以下是安全中心來源的一些範例:
- 鎖定畫面
- 生物辨識技術
- 安全性更新
- 尋找我的設備
- Google Play 保護
- 谷歌帳戶安全檢查
- 隱私訊號
安全中心來源可以提供以下類型的資料:
- 安全中心 UI 中用於將使用者重定向到另一個畫面的條目。該條目具有表示使用者是否面臨風險的狀態以及與該狀態關聯的附加元數據,例如標題和摘要。
- 警告卡(也稱為問題)可以直接從安全中心解決或透過將使用者重定向到另一個螢幕來解決。每個問題還有與其關聯的其他元數據,例如標題、摘要、按鈕標籤和操作。
- 嘗試向安全中心提供資料時發生的潛在錯誤。
- 來源向安全中心發送資料的原因。
設定檔
安全中心來源列在充當白名單的設定檔中。該文件還提供每個 UI 條目的預設資料。設定檔可以指定不會影響安全中心狀態或問題的靜態重定向條目(也稱為靜態安全性來源)。有關詳細信息,請參閱更新設定檔。
主線模組
安全中心主要是PermissionController Mainline模組的一部分,因此 Google 可以將此功能作為支援 Mainline 的 GMS OEM 設備的 Mainline 更新的一部分進行更新。
非 GMS OEM 設備和不支援 Mainline 的 GMS OEM 設備可以使用安全中心(如果其係統映像中包含此功能);但是他們應該使用 M-2022-11 或更高版本的程式碼。有關要求,請參閱啟用或停用安全中心。
安全中心 API
安全中心 API 是用 Java 編寫的,本頁上的程式碼範例也是用 Java 寫的。但是,由於 Kotlin 可與 Java 互通,因此安全中心 API 可在 Kotlin 中使用。 PermissionController 系統應用程式中與安全中心互動的幾個部分是用 Kotlin 編寫的。
您可以使用 API 與安全中心互動。這些 API 主要可透過SafetyCenterManager
存取,這是一個系統 API。有關更多信息,請參閱與安全中心交互。
意圖動作和附加內容
從 Android 13 開始,在Intent
類別中定義公共意圖操作(可由第三方應用程式存取)以重定向到安全中心。
其他操作和附加內容在SafetyCenterManager
中定義,並且只能由系統應用程式訪問,以允許重定向到特定問題等。
安全中心啟用 API
SafetyCenterManager
公開一個 API,該 API 會傳回裝置上是否啟用了安全中心。 API 確認設備是否符合安全中心要求,例如設備是否安裝了正確的主線模組版本。此驗證用於確定安全中心是否顯示在「設定」和其他地方。這也可用於確定是否應向安全中心提供資料。有關如何開啟或關閉安全中心的信息,請參閱啟用或停用安全中心。
安全中心來源API
安全中心來源使用安全中心來源 API 向安全中心提供動態資料。安全中心來源 API 執行以下功能:
- 設定給定安全中心來源的資料。
- 取得給定安全中心來源的最新資料集。
- 報告給定安全中心來源的錯誤。
安全中心來源可以選擇在特殊場合(例如,開啟安全中心頁面時)接收向安全中心發送資料的訊號,以確保提供的資料是最新的。
內部安全中心 API
某些安全中心 API 是內部的,僅由PermissionController
Mainline 模組使用(shell 和測試除外)。由於技術原因,這些 API 並未隱藏,而是由SafetyCenterManager
公開。
安全中心 API 執行以下功能:
- 向安全中心來源發送訊號以刷新其資料。
- 取得設定檔的表示。
- 從多個安全中心來源取得合併資料。
- 訂閱和取消訂閱數據更改。
- 取消警告卡。
- 執行警告卡操作。
測試API
SafetyCenterManager
包含用於測試的安全中心測試 API。
安全中心測試 API 可以:
- 清除安全中心儲存的所有資料。
- 覆蓋設定檔並清除覆蓋。
外殼命令
提供了一些 shell 指令來透過 Android 調試橋 Shell ( adb shell
) 與安全中心互動。使用adb shell cmd safety_center help
查看命令清單及其功能。
安全中心使用者介面
安全中心使用者介面在PermissionController
模組內的PermissionController
系統應用中定義。 UI 由一個活動和幾個片段組成,這些片段使用內部安全性中心 API中描述的 API。安全中心公開的「快速設定」圖塊使用相同的 UI 元件,但對佈局方式進行了一些細微的更改。
可以使用疊加層來變更此頁面的外觀。有關其他信息,請參閱自訂安全中心 UI 。