Implementare i gruppi dediti al commercio di stupefacenti

L'implementazione di overlay ad albero dei dispositivi (DTO) implica la divisione dell'albero dei dispositivi (DT), la creazione, il partizionamento e l'esecuzione. Dopo aver ottenuto un'implementazione funzionante, devi anche mantenere la compatibilità tra i due DT e determinare una strategia per garantire la sicurezza di ogni partizione DT.

Dividi il DT

Inizia dividendo il DT in due parti:

  • DT principale. La parte solo SoC e le configurazioni predefinite, forniti dal fornitore del SoC.
  • DT overlay. Le configurazioni specifiche del dispositivo, fornite ODM/OEM,

Dopo aver diviso i DT, devi garantire la compatibilità tra i DT e DT in overlay in modo che l'unione del DT principale e del DT in overlay risulti DT del dispositivo. Per informazioni dettagliate sul formato e sulle regole dei gruppi dediti al commercio di stupefacenti, consulta Sintassi DTO. Per maggiori dettagli su più DT, consulta Più DT.

Creare DT principali e overlay

Per creare il DT principale:

  1. Compila il file DT principale .dts in un file .dtb.
  2. Esegui il flashing del file .dtb in una partizione accessibile dal runtime del bootloader (dettagliati in [DT di partizione](#partition)).

Per creare il DT in overlay:

  1. Compila l'overlay DT .dts in un file .dtbo. Mentre questo formato file è uguale al file .dtb formattato come DT bidimensionale, le diverse estensioni lo distinguono dalla DT principale.
  2. Esegui il flashing del file .dtbo in una partizione accessibile dal runtime del bootloader (dettagliati in [DT di partizione](#partition)).

Per dettagli sulla compilazione con DTC e sulla verifica dei risultati di DTO sull'host, vedi Compila e verifica.

DT di partizione

Determina una posizione attendibile e accessibile dal runtime del bootloader in Flash memoria per inserire .dtb e .dtbo.

Esempi di località per il DT principale:

  • Parte della partizione di avvio, aggiunta al kernel (image.gz)
  • Separa i BLOB DT (.dtb) nella partizione dedicata (dtb)

Esempi di posizioni per il DT overlay:

Figura 1. Inserisci .dtbo in una partizione univoca, ad esempio una partizione dtbo.

Figura 2. Inserisci .dtbo in una partizione odm (fallo solo se il tuo bootloader ha la capacità di caricare i dati dal file system di una partizione odm).

Nota: le dimensioni la partizione DT in overlay dipende dal dispositivo e dalla quantità di modifiche parte superiore del blob DT principale. In genere, 8 MB sono più che sufficienti e lasciano spazio a crescere in futuro, se necessario.

Per i dispositivi che supportano aggiornamenti A/B continui, A/B partizioni DT principali e overlay:

Figura 3. partizione DTBO A/B, esempio 1.

Figura 4. partizione DTBO A/B, esempio 2.

Esegui in bootloader

Per l'esecuzione:

Figura 5. Tipica implementazione del runtime per DTO nel bootloader.

  1. Carica .dtb dallo spazio di archiviazione in memoria.
  2. Carica .dtbo dallo spazio di archiviazione in memoria.
  3. Overlay .dtb con .dtbo per creare un DT unito.
  4. Avvia il kernel in base all'indirizzo di memoria del DT unito.

Mantieni la compatibilità

Il DTB principale (del fornitore di SoC) viene considerato come una piattaforma API per i DTBO. Dopo il giorno separando il DT in una parte comune del SoC e una parte specifica per il dispositivo, in futuro dovrai mantenere la compatibilità reciproca delle due parti, incluso:

  • Definizione del DT nel DT principale. Ad esempio nodi, proprietà, etichette. Qualsiasi modifica alla definizione nel DT principale potrebbe attivare modifiche nell'overlay DT. Ad esempio, per correggere il nome di un nodo nel DT principale, definisci un "alias" etichetta che viene mappato al nome del nodo originale (per evitare il cambio di data e ora dell'overlay).
  • Overlay della sede del negozio DT. Ad esempio nome partizione, datastore formato.

Garantire la sicurezza

Il bootloader deve garantire che il DTB o il DTBO sia sicuro, non modificato e danneggiato. Potresti utilizzare qualsiasi soluzione per proteggere DTB o DTBO, ad esempio Immagine di avvio personalizzata in VBoot 1.0 o Durata di visualizzazione media: Piè di pagina HASH (VBoot 2.0).

  • Se DTB o DTBO si trova in una partizione univoca, puoi aggiungere tale partizione alla la catena di fiducia di AVB. La catena di attendibilità inizia da una radice di e va al bootloader, che ne verifica l'integrità e l'autenticità della partizione DTB o DTBO.
  • Se DTB o DTBO si trova in una partizione esistente (ad esempio, odm ), questa partizione deve trovarsi nella catena di attendibilità di AVB. (partizione DTBO potrebbe condividere una chiave pubblica con odm partizione).

Per maggiori dettagli, consulta la sezione Verificati Avvio.