Processo di rilascio GKI (Generic Kernel Image)

Questa pagina descrive le modalità di rilascio di GKI, incluse quelle settimanali, mensili e non disponibili 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 usare GKI sviluppo 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 GKI per Android 13, 14 e 15

La tabella seguente è applicabile solo a: android13-5.10, android13-5.15, e android14-5.15 Consulta le date di uscita di settembre 2024 in questo annuncio.

Build certificate mensili GKI Data limite per il check-in Data di disponibilità del precaricamento GKI Confermato?
Novembre 11 novembre 2024 27 novembre 2024
Gennaio 17 gennaio 2025 31 gennaio 2025
Febbraio 14 febbraio 2025 28 febbraio 2025

La tabella seguente è applicabile solo a: android14-6.1 e android15-6.6. Consulta le date di uscita di settembre 2024 in questo annuncio.

Build certificate mensili GKI Data limite per il check-in Data di disponibilità del precaricamento GKI Confermato?
Ottobre 1° ottobre 2024 14 ottobre 2024
Novembre 1° novembre 2024 15 novembre 2024
Dicembre 2 dicembre 2024 16 dicembre 2024
Gennaio 6 gennaio 2025 22 gennaio 2025

Release GKI di Android 12

Dopo maggio 2024, le release del android12-5.10 GKI avranno cadenza trimestrale e verranno pubblicate a metà mese. La tabella seguente è applicabile solo a: android12-5.10

Build certificate mensili GKI Data limite per il check-in Data di disponibilità 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 un GKI Android rilasciato 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 Seppia per assicurarsi di superare un livello di qualità minima.

I file binari GKI sono disponibili per il self-service su Android IC 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 al controllo 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 il rifiuto di un file binario certificato per una delle seguenti 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 hook 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 ogni anno a maggio e a novembre. 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à aiuta il team GKI ad 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 tabella seguente 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
di Gemini Advanced.
  • 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.
    di Gemini Advanced.
  • 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 rifiuto

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

Procedura di rifiuto 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
di Gemini Advanced. Riferimento per i test dell'hardware
  • Avvio
  • VTT
  • CTS
Respins (certificati) Test delle seppie
  • Avvio
  • VTT
  • Sottoinsieme di CTS
di Gemini Advanced. Test dei dispositivi 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

Di seguito sono riportate alcune domande frequenti relative al processo di rilascio di GKI.

È 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ì, ecco un esempio:

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 il seguente 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 file 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 vengono inclusi anche nella GKI successiva 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?

Non è possibile. Un modello "per OEM" Il percorso di respin 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 in modo specifico un OEM, un dispositivo modello, il team GKI può assicurarsi che il codice aggiunto dalla modifica venga eseguito sul dispositivo, sul modello o sullo 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 nei loro prodotti?

Google non aggiungerà mai una modifica a una build di rifiuto finché il problema non sarà compreso e non saranno 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.