Aggiornamenti dei bundle di servizi

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.json dell'APEX preinstallato.

  • Dichiarare un codice versione superiore in apex_manifest.json rispetto 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.