Processo di rilascio GKI (Generic Kernel Image)

Questo documento descrive le modalità di rilascio di GKI, inclusi settimanalmente, mensilmente e in uscita release di emergenza del cinturino. L'obiettivo di questo documento è offrire agli OEM una linee guida su dove ritirare la GKI e sul processo per fuori banda correzioni di emergenza. Gli OEM possono anche utilizzare la guida allo sviluppo GKI per saperne di più su come possono collaborare con il team Android Kernel per l'ottimizzazione del kernel GKI per i loro prodotti.

Cadenza di rilascio GKI

GKI viene rilasciato ogni mese dopo il blocco del KMI.

Release di Android 13, 14 e 15 GKI

La tabella seguente è applicabile solo a android13-5.10, android13-5.15 e android14-6.1.

Build certificate mensili GKI Data limite per il check-in Data di completamento del precaricamento GKI Confermato?
Ottobre 14 ottobre 2022 31 ottobre 2022
Novembre 14 novembre 2022 30 novembre 2022
Dicembre 9 dicembre 2022 21 dicembre 2022
Gennaio 17 gennaio 2023 31 gennaio 2023
Febbraio 15 febbraio 2023 28 febbraio 2023
Marzo 15 marzo 2023 31 marzo 2023
Aprile 13 aprile 2023 28 aprile 2023
Maggio 17 maggio 2023 31 maggio 2023
Giugno 15 giugno 2023 30 giugno 2023
Luglio 18 luglio 2023 31 luglio 2023
Agosto 16 agosto 2023 31 agosto 2023
Settembre 14 settembre 2023 29 settembre 2023
Ottobre 18 ottobre 2023 31 ottobre 2023
Novembre 10 novembre 2023 30 novembre 2023
Dicembre 7 dicembre 2023 22 dicembre 2023
Gennaio 16 gennaio 2024 31 gennaio 2024
Febbraio 13 febbraio 2024 29 febbraio 2024
Marzo 13 marzo 2024 29 marzo 2024
Aprile 16 aprile 2024 30 aprile 2024
Maggio 14 maggio 2024 31 maggio 2024
Giugno 12 giugno 2024 28 giugno 2024
Luglio 16 luglio 2024 31 luglio 2024
Agosto 15 agosto 2024 30 agosto 2024
Settembre 17 settembre 2024 30 settembre 2024
Ottobre 15 ottobre 2024 31 ottobre 2024
Novembre 11 novembre 2024 27 novembre 2024
Dicembre 6 dicembre 2024 23 dicembre 2024

A partire da gennaio 2024, riprenderemo le release mensili di android14-5.15. in conformità alla cadenza mensile specificata nella tabella di seguito. android15-6.6 seguirà la stessa cadenza di rilascio, a partire da luglio 2024.

Build certificate mensili GKI Data limite per il check-in Data di completamento del precaricamento GKI Confermato?
Gennaio 16 gennaio 2024 31 gennaio 2024
Febbraio 13 febbraio 2024 29 febbraio 2024
Marzo 4 marzo 2024 15 marzo 2024
Aprile 1° aprile 2024 17 aprile 2024
Maggio 1° maggio 2024 17 maggio 2024
Giugno 3 giugno 2024 17 giugno 2024
Luglio 1 luglio 2024 15 luglio 2024
Agosto 1° agosto 2024 16 agosto 2024
Settembre 2 settembre 2024 16 settembre 2024
Ottobre 1° ottobre 2024 14 ottobre 2024
Novembre 1° novembre 2024 15 novembre 2024
Dicembre 2 dicembre 2024 16 dicembre 2024

Release GKI di Android 12

Dopo maggio 2024, le release di GKI android12-5.10 vengono eseguite con una cadenza trimestrale e pubblicati a metà mese. La seguente tabella è applicabile solo a android12-5.10.

Build certificate mensili GKI Data limite per il check-in Data di completamento del precaricamento GKI Confermato?
Luglio 3 luglio 2023 14 luglio 2023
Settembre 1° settembre 2023 15 settembre 2023
Novembre 3 novembre 2023 17 Novembre 2023
Gennaio 5 gennaio 2024 19 gennaio 2024
Marzo 4 marzo 2024 15 marzo 2024
Maggio 1° maggio 2024 17 maggio 2024
Agosto 1° agosto 2024 16 agosto 2024
Novembre 1° novembre 2024 15 novembre 2024
Febbraio 3 febbraio 2025 17 febbraio 2025

Validità della build GKI per gli OEM

Gli OEM possono utilizzare una GKI di Android rilasciata di recente. Gli OEM possono lanciare build certificate GKI, purché siano conformi ai requisiti LTS del Bollettino sulla sicurezza di Android (ASB).

Release di sviluppo settimanali

Le uscite vengono testate con seppie per assicurarsi di superare un livello di qualità minima.

I file binari GKI sono disponibili per il self-service su ci.android.com man mano che le modifiche vengono unite. Le build settimanali non saranno certificate, ma possono essere usate come una base per lo sviluppo e il test. Non è possibile usare build settimanali per le build di dispositivi di produzione per gli utenti finali.

Release certificate mensili

Le release mensili di GKI contengono un boot.img testato che include un inserito un certificato per attestare che i file binari sono stati creati da un'origine nota base del codice.

Ogni mese, viene selezionato un candidato per la release mensile GKI (non certificato) dopo la data limite per il check-in, che solitamente corrisponde alla seconda build settimanale di quel mese. Dopo aver selezionato la release mensile candidata, nuova modifiche non saranno accettate nella release di quel mese. Durante la finestra chiusa è possibile risolvere solo i bug che causano errori dei test. La il candidato della release viene sottoposto ai controlli di qualità, come descritto in GKI qualifica, per garantire che i test di conformità vengano superati Build GSI+GKI con un dispositivo di riferimento e seppie.

Cronologia della cadenza di rilascio di GKI Figura 1. Cronologia di rilascio GKI

Procedura di Respin di emergenza

Un respin è il processo di ripristino, ricreare, ripetere il test la ricertificazione di un file binario una release pubblica del kernel GKI. Puoi richiedere la ripetizione della rotazione di un programma binario certificato per uno dei seguenti documenti: circostanze:

  • Per aggiornare un elenco di simboli.
  • Per applicare una correzione a un bug, inclusi quelli rilevati durante l'approvazione del lab dell'operatore.
  • Aggiungere un gancio del fornitore.
  • Per applicare una patch a una funzionalità esistente.
  • Per applicare una patch di sicurezza (dopo 6 mesi).

Le patch di sicurezza vengono unite automaticamente in un ramo di release per un massimo di 6 mesi dopo il rilascio del ramo. Dopo il limite di 6 mesi, è necessario richiedere un respin per applicare patch di sicurezza a un ramo.

Linee guida per le richieste di ripetizione

Prima di richiedere un nuovo movimento, tieni presente le seguenti linee guida:

  • I respin sono consentiti solo nei rami di release dopo una release pubblica iniziale di una build mensile è stato avviato.

  • Le richieste di Respin sono accettate solo per un determinato ramo di release per un per un massimo di sei mesi dopo la pubblicazione iniziale. Dopo sei mesi, le filiali sono idonee al respin solo per le patch di sicurezza citate in un Bollettino sulla sicurezza di Android.

  • Quando i requisiti LTS , definita dal Bollettino sulla sicurezza di Android (ASB) perché il ramo non è conforme, viene deprecato. Richieste di ripetizione per i rami deprecati non sono accettati. La data di ritiro di un determinato GKI è incluso nelle note mensili sulla build di GKI nella sezione Release. Per la pianificazione futura, i requisiti LTS vengono aggiornati a maggio e novembre all'anno. Ad esempio, la proprietà android12-5.10-2023-07 Ramo (5.10.177) non è supportato per i respin dopo il 1° maggio 2024, perché android12-5.10-2023-07: ramo (5.10.177) non è conforme ai requisiti LTS di ASB-2024-05.

  • I respin sono validi solo per correzioni di bug urgenti, aggiornamenti dell'elenco di simboli o per applicare una patch e correggere una funzionalità esistente.

  • Tutte le patch inserite nel ramo di release mensile devono essere già unite ramo principale dello sviluppo GKI. Ad esempio, se è necessaria una patch per un respin di android12-5.10-2022-09, deve essere già unita android12-5.10.

  • Devi scegliere le patch dal ramo di sviluppo GKI principale caricare la patch nel ramo di rilascio mensile.

  • Nella richiesta di respin, devi assegnare una priorità (urgenza) alla richiesta. Questa priorità consente al team GKI di assistere meglio i partner in modo tempestivo. Per le richieste critiche o urgenti, contrassegna la priorità come P0. Per P0 e P1 necessarie, devi anche giustificare l'urgenza. La seguente tabella fornisce una mappatura della priorità dei bug e del tempo di risoluzione (ESRT):

    Priorità ESRT
    P0 2 giorni lavorativi
    P1 5 giorni lavorativi
    P2 10 giorni lavorativi
    P3 15 giorni lavorativi
  • Devi inviare una richiesta di respin separata per ramo di release. Ad esempio, se è necessario il respin sia per android12-5.10-2022-08 che android12-5.10-2022-09, devi creare due richieste respin.

  • Dopo aver fornito una build e aver contrassegnato una richiesta respin come corretta, non è necessario riaprire la richiesta di respin per aggiungere altri CL. Devi inviare un nuovo respin se sono presenti patch aggiuntive che devono essere unite.

  • Per ogni CL da considerare, aggiungi i seguenti tag.

    • Bug: l'ID bug deve essere aggiunto al messaggio di commit per ogni CL.
    • Change-Id: deve essere identico al Change-Id della modifica del ramo di base.
  • Se una richiesta di respin richiede la tua risposta e non rispondi entro tre giorni lavorativi, viene eseguito il downgrade della priorità di un livello (ad esempio P0 viene retrocesso a P1). Se non rispondi per due settimane, il bug è contrassegnato come Non risolvibile (obsoleto).

Inviare una richiesta di respin

Il seguente diagramma mostra la procedura di respin. Il processo inizia quando Il partner OEM (tu) invia la richiesta di respin.

Procedura di Respin di emergenza Figura 2. La procedura di respin

Per avviare la procedura di respin:

  1. Compila il modulo di richiesta GKI Respin. e contatta immediatamente il tuo Technical Account Manager Google. Questo modulo crea un bug della richiesta respin GKI. I bug delle richieste di Respin ti sono visibili (il richiedente), il team GKI e le persone specifiche che aggiungi l'elenco Cc del bug.
    • Se hai già una correzione, la richiesta deve indirizzare alla patch inviato in AOSP per consentire a Google di esaminarlo. Se l'invio della patch non la patch deve essere allegata alla richiesta come file di testo.
    • Se non hai una correzione, la richiesta deve contenere informazioni, tra cui il numero di versione del kernel e i log, quindi Google può aiutarti a eseguire il debug del problema.
  2. Il team GKI di Google esamina la richiesta e la approva o la assegna nuovamente se sono necessarie ulteriori informazioni.
  3. Una volta concordata una correzione, il team GKI di Google esamina il codice (CR+2) modifica. La revisione inizia il periodo di tempo ESRT. Il team GKI unisce, crea e testa per la regressione e certifica la modifica.
  4. Il file binario viene rilasciato ci.android.com. La Il periodo di tempo ESRT termina e il team GKI di Google contrassegna la richiesta come corretta e fare riferimento alla build respin. La build respin viene inoltre pubblicata Pagina delle build della release GKI (Generic Kernel Image).

Qualifiche GKI

Tipi di build GKI Applicazione della qualità Notes
Settimanale Test delle seppie
  • Avvio
  • Sottoinsieme di VTS
  • Sottoinsieme di CTS
  • Non certificato. Solo per test e
    dispositivo visualizzato.
  • Non può essere utilizzata per avviare i dispositivi.
Mensile (con certificazione) Test delle seppie
  • Avvio
  • VTT
  • CTS
Riferimento per i test dell'hardware
    .
  • Avvio
  • VTT
  • CTS
Respins (certificati) Test delle seppie
  • Avvio
  • VTT
  • Sottoinsieme di CTS
Test del dispositivo di riferimento
    .
  • Avvio
  • VTT
  • Si basa su una build certificata GKI.
  • La build viene certificata dopo la qualifica.

Dove trovare gli artefatti della build

Gli artefatti per tutte le release possono essere ottenuti ci.android.com.

Puoi trovare maggiori informazioni su CI, tra cui il test risultati relativi all'integrazione continua di Android Fitbit.com.

Domande frequenti

È possibile creare un nuovo programma binario GKI basato su una GKI già rilasciata?

Sì, è un respin. Il processo respin è supportato purché build GKI rilasciata (per la quale è richiesto il respin) è conforme a LTS nel Bollettino sulla sicurezza di Android (ASB).

È possibile riprodurre binari GKI?

Sì, fai riferimento all'esempio riportato di seguito.

GKI 2.0
5.10 kernel prebuilts from build 7364300
https://ci.android.com/builds/submitted/7364300/kernel_aarch64/latest

Per riprodurre l'esempio, scarica manifest_$id.xml ed esegui questo comando :

repo init -u https://android.googlesource.com/kernel/manifest
mv manifest_7364300.xml .repo/manifests
repo init -m manifest_7364300.xml --depth=1
repo sync
# build the GKI images
# You may want to use LTO=thin to build faster for development
BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
# (optional) build virtual platform modules
BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh

Puoi recuperare la copia dell'artefatto GKI da out/.../dist.

Il programma binario GKI (compresa la patch di rotazione di emergenza) è stato costruito sul codebase più recente?

No. I Respin contengono solo patch che si aggiungono alle patch certificate mensili che hai scelto. Questi respin contengono tutti i bug di blocco del lancio correzioni segnalate fino a un determinato momento dagli OEM utilizzando il modello di base con il rilascio mensile. Guarda l'esempio che segue di come accade questo tipo di scenario.

  • OEM1 e OEM2 decidono di utilizzare la release binaria GKI a partire da novembre 2021.
  • OEM1 e OEM2 rilevano problemi che richiedono patch per l'assistenza. Queste patch potrebbero essere diversi o potrebbero essere uguali.
  • I respin sopra il programma binario di novembre 2021 hanno un blocco dell'avvio. correzioni segnalate sia da OEM1 che da OEM2 durante la finestra di respin, ma nulla altro ancora.
  • I problemi menzionati nel secondo punto dell'elenco sono inclusi anche nella GKI successiva di uscite mensili.

Per il respin di ottobre sono incluse tutte le patch inviate dagli OEM, ma sono interessate da altre patch OEM, poiché non sono state testate in modo specifico con i nostri prodotti. È possibile includere solo la nostra patch?

Ciò non è possibile. Un modello "per OEM" Il percorso respin al momento non è scalabile. Il team GKI invece esamina ogni singola modifica apportata al respin e testa le modifiche con tutto l'hardware disponibile prima di creare creare. Se il team GKI rileva che il problema riguarda specificamente un OEM/dispositivo/modello, il team GKI può assicurarsi che il codice aggiunto dalla modifica venga eseguito dispositivo/modello/SKU interessato.

Il vantaggio principale dei respin unificati è che ogni dispositivo usando la stessa base di release si traggono vantaggio l'uno dall'altro, soprattutto se i bug che sono generici e applicabili a tutti gli utenti. Rilevati bug core del kernel dei test con gli operatori è un esempio specifico di questo concetto.

Ci sono situazioni in cui Google fornisce informazioni specifiche sulle patch degli OEM e sugli scenari di problemi, in modo che gli OEM possano valutare l'impatto e il rischio dell'implementazione delle patch con i loro prodotti?

Google non aggiunge alcuna modifica a una build di respin finché il problema non viene compreso e che sono stati raccolti tutti i dettagli. come indicato nel log delle modifiche (messaggio di commit). Google non rivela quale dispositivo specifico è interessato, ma Gli OEM possono sempre trovare la descrizione del problema e la soluzione nel log delle modifiche.