Usługa zdalnego udostępniania kluczy (RKP) jest częścią AOSP od Androida 12. Android 14 wprowadza moduł z możliwością aktualizacji zdalnego udostępniania, który zwiększa odporność funkcji, poprawiając niezawodność interfejsu API usługi i skracając czas wprowadzania ulepszeń.
Motywacja
Uprość usługę RKP, pakując wszystko w APEX.
Przed Androidem 14 usługa RKP była podzielona na aplikację RemoteProvisioner i Keystore 2.0. Aplikacja RemoteProvisioner odpowiadała za kontakt z backendem RKP, a Keystore 2.0 za przechowywanie kluczy i komunikację z HAL. Nie była to dobra architektura, ponieważ klucze RKP znacznie różnią się od kluczy Keystore pod względem dołączonych metadanych. Dodatkowo wymagało to niewygodnych modyfikacji kodu frameworka Keystore, aby ostrzegać RemoteProvisioner o potencjalnym braku zasobów.
RKP jako moduł Mainline ma na celu poprawę tych kwestii poprzez staranne spakowanie wszystkiego w APEX.
Granica modułu
APEX Mainline RKP, com.android.rkpd, zawiera aplikację Remote Key Provisioning Daemon (RKPD) i komponent serwera systemu zdalnego udostępniania (zbudowany w Javie).
Architektura stosu
Rysunek 1 przedstawia architekturę stosu RKP.
Rysunek 1. Architektura stosu RKP.
Architektura wewnętrzna
Rysunek 2 przedstawia architekturę wewnętrzną RKP.
Rysunek 2. Architektura wewnętrzna RKP.
Dodatkowe informacje o architekturze wewnętrznej RKP:
APEX Mainline RKPD –
com.android.rkpd- Aplikacja RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- Fragment serwera systemowego RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- Aplikacja RKPD (Java)
Interfejs/implementacja HAL (Rust/C++)
IRemotelyProvisionedComponenthardware/interfaces/security/keymint
Format pakietu
Aplikacja i inne funkcje modułu są spakowane jako plik APEX com.android.rkpd.
Zależności
Moduł RKP nadal zależy od istnienia implementacji IRemotelyProvisionedComponent, które zapewniają klucze atestacyjne i żądania certyfikatów.
Strategia testowania
Wersja AOSP aplikacji APEX zawiera testy jednostkowe, które mogą uruchamiać producenci OEM.