自Android 12 起,遠端金鑰配置(RKP) 就成為AOSP 的一部分。Android 14 引入了遠端配置可更新模組,該模組透過提高服務API 的穩健性並減少對其進行任何改進的時間來提高功能彈性。
動機
透過將所有內容打包到 APEX 中來簡化 RKP 服務。
在 Android 14 之前,RKP 被分為應用程式RemoteProvisioner
和 Keystore 2.0。 RemoteProvisioner
應用程式負責聯絡 RKP 後端,Keystore 2.0 負責儲存金鑰並與 HAL 通訊。這不是一個好的架構,因為 RKP 金鑰在附加元資料方面與金鑰庫金鑰顯著不同。此外,這需要對 Keystore 框架程式碼進行笨拙的修改,以警告RemoteProvisioner
潛在的資源匱乏。
RKP 作為主線模組旨在透過將所有內容整齊地打包到 APEX 中來改進這些點。
模組邊界
RKP 主線 APEX com.android.rkpd
包含遠端金鑰配置守護程式 (RKPD) 應用程式和遠端設定係統伺服器元件(使用 Java 建置)。
堆疊架構
圖 1 展示了 RKP 堆疊架構。
圖 1.RKP堆疊架構。
內部架構
圖 2 展示了 RKP 內部架構。
圖 2.RKP內部架構。
有關 RKP 內部架構的其他資訊:
RKPD 主線 APEX -
com.android.rkpd
- RKPD 應用程式 (Java)
-
packages/modules/RemoteKeyProvisioning/app
-
- RKPD系統伺服器片段(Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- RKPD 應用程式 (Java)
HAL 介面/實作 (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
封裝格式
該模組的應用程式和其他功能打包為 APEX 檔案com.android.rkpd
。
依賴關係
RKP 模組繼續依賴IRemotelyProvisionedComponent
實作的存在來提供證明金鑰和憑證請求。
測試策略
應用程式 APEX 的 AOSP 版本包含 OEM 可以運行的單元測試。