I bundle di servizi possono essere aggiornati come pacchetti APEX, indipendentemente dagli aggiornamenti completi del sistema. In SDV, questa procedura di aggiornamento è gestita da SDV Update Manager. Affinché un aggiornamento diventi effettivo, devi riavviare il dispositivo.
Per gli aggiornamenti dei bundle di servizi sono supportati due tipi di APEX:
APEX preinstallato: una versione precedente del pacchetto APEX esiste già in una delle partizioni di sola lettura (
/system,/system_ext,/product,/vendor, e/odm).Nuovo APEX: non esiste alcun pacchetto APEX con lo stesso nome (come dichiarato in
apex_manifest.json) in nessuna delle partizioni di sola lettura.
APEX preinstallato
Questo è il metodo più comune e consigliato per aggiornare i bundle di servizi. Affinché questo aggiornamento sia valido, il nuovo pacchetto APEX deve soddisfare i seguenti requisiti:
Avere lo stesso nome del pacchetto in
apex_manifest.jsondell'APEX preinstallato.Dichiarare un codice versione superiore in
apex_manifest.jsonrispetto all'APEX preinstallato.Firmare l'APEX con la stessa coppia di chiavi dell'APEX preinstallato.
Nuovo APEX
Sebbene l'utilizzo di APEX preinstallati sia la best practice per la sicurezza, sono supportati anche i nuovi APEX. Quando si utilizza questo approccio, i partner sono responsabili del mantenimento di protocolli di sicurezza completi. Queste responsabilità includono:
Gestire in modo sicuro le chiavi di firma utilizzate per questi APEX.
Stabilire una procedura efficace per identificare e bloccare i pacchetti dannosi.
Convertire i nuovi APEX in APEX preinstallati nei successivi aggiornamenti di sistema, ove possibile.
Per installare o aggiornare un nuovo APEX, sono necessarie le seguenti configurazioni.
Preinstallare le chiavi pubbliche attendibili
Per installare un nuovo APEX, la relativa chiave di firma pubblica deve essere preinstallata nella partizione di destinazione. Inserisci la chiave pubblica in /partition/etc/brand_new_apex/,
dove /partition/ rappresenta la partizione a cui l'APEX è associato
in base alle regole Treble. Ad esempio, se la firma di un APEX viene verificata rispetto a una chiave pubblica in /vendor/etc/brand_new_apex/, si comporterà come un APEX del fornitore.
Il sistema rifiuterà qualsiasi nuovo APEX non firmato da una chiave corrispondente a una chiave pubblica preinstallata.
Bloccare un nuovo APEX dannoso
Se un nuovo APEX viene identificato come dannoso dopo l'installazione, deve essere bloccato utilizzando un aggiornamento di sistema. Per farlo, aggiungi il nome del pacchetto APEX a un file di blocco in /partition/etc/brand_new_apex/blocklist.json. Questo elenco di blocco deve essere inserito nella partizione di destinazione dell'APEX (la stessa partizione in cui è stata preinstallata la chiave pubblica). Ogni partizione ha il proprio file di blocco dedicato.