Pakiety usług można aktualizować jako pakiety APEX niezależnie od pełnych aktualizacji systemu. W SDV proces aktualizacji jest zarządzany przez menedżera aktualizacji SDV. Aby aktualizacja zaczęła obowiązywać, musisz ponownie uruchomić urządzenie.
W przypadku aktualizacji pakietów usług obsługiwane są 2 typy APEX:
Wstępnie zainstalowany APEX: wcześniejsza wersja pakietu APEX jest już dostępna na jednej z partycji tylko do odczytu (
/system,/system_ext,/product,/vendor, i/odm).Nowy APEX: na żadnej z partycji tylko do odczytu nie ma pakietu APEX o tej samej nazwie (zadeklarowanej w
apex_manifest.json).
Wstępnie zainstalowany APEX
Jest to najczęstsza i zalecana metoda aktualizowania pakietów usług. Aby ta aktualizacja była prawidłowa, nowy pakiet APEX musi spełniać te wymagania:
Musi mieć taką samą nazwę pakietu w
apex_manifest.jsonjak wstępnie zainstalowany APEX.Musi deklarować w
apex_manifest.jsonwyższy kod wersji niż wstępnie zainstalowany APEX.Musi być podpisany tym samym kluczem co wstępnie zainstalowany APEX.
Nowy APEX
Chociaż używanie wstępnie zainstalowanych APEX-ów jest najlepszym rozwiązaniem w zakresie bezpieczeństwa, obsługiwane są też nowe APEX-y. W tym przypadku partnerzy są odpowiedzialni za utrzymywanie kompleksowych protokołów bezpieczeństwa. Do ich obowiązków należą:
bezpieczne zarządzanie kluczami podpisywania używanymi w tych APEX-ach;
ustanowienie solidnego procesu identyfikowania i blokowania złośliwych pakietów;
w miarę możliwości przekształcanie nowych APEX-ów w wstępnie zainstalowane APEX-y w kolejnych aktualizacjach systemu.
Aby zainstalować lub zaktualizować nowy APEX, wymagane są te konfiguracje.
Wstępne instalowanie zaufanych kluczy publicznych
Aby zainstalować nowy APEX, jego publiczny klucz podpisywania musi być wstępnie zainstalowany na partycji docelowej. Umieść klucz publiczny w /partition/etc/brand_new_apex/,
gdzie /partition/ oznacza partycję, z którą APEX jest powiązany
zgodnie z regułami Treble. Jeśli na przykład sygnatura APEX-u zostanie zweryfikowana za pomocą klucza publicznego w /vendor/etc/brand_new_apex/, będzie się on zachowywać jak APEX dostawcy.
System odrzuci każdy nowy APEX, który nie jest podpisany kluczem odpowiadającym wstępnie zainstalowanemu kluczowi publicznemu.
Blokowanie złośliwego nowego APEX-u
Jeśli po instalacji nowy APEX zostanie uznany za złośliwy, należy go zablokować za pomocą aktualizacji systemu. Aby to zrobić, dodaj nazwę pakietu APEX do pliku zablokowanych w /partition/etc/brand_new_apex/blocklist.json. Ta lista zablokowanych musi znajdować się na partycji docelowej APEX-u (tej samej, na której został wstępnie zainstalowany jego klucz publiczny). Każda partycja ma własny plik zablokowanych.