Processo de lançamento da imagem genérica do kernel (GKI, na sigla em inglês)

Esta página descreve como a GKI é lançada, incluindo dados semanais, mensais e externos de lançamentos de emergência de banda. O objetivo deste documento é oferecer aos OEMs diretrizes sobre onde coletar a GKI, bem como o processo para fora da banda correções de emergência. OEMs também podem usar GKI desenvolvimento para saber mais sobre como eles podem trabalhar com a equipe do kernel do Android para otimizar o kernel de GKI para seus produtos.

Cadência de lançamento de GKI

O GKI é lançado mensalmente após o congelamento do KMI.

Versão 13, 14 e 15 da GKI do Android

A tabela a seguir se aplica apenas aos android13-5.10, android13-5.15, e android14-5.15:

Builds mensais certificados de GKI Data limite para check-in Data de pré-carregamento de GKI Confirmado?
Outubro 14 de outubro de 2022 31 de outubro de 2022 Sim
Novembro 14 de novembro de 2022 30 de novembro de 2022 Sim
Dezembro 9 de dezembro de 2022 21 de dezembro de 2022 Sim
Janeiro 17 de janeiro de 2023 31 de janeiro de 2023 Sim
Fevereiro 15 de fevereiro de 2023 28 de fevereiro de 2023 Sim
Março 15 de março de 2023 31 de março de 2023 Sim
Abril 13 de abril de 2023 28 de abril de 2023 Sim
Maio 17 de maio de 2023 31 de maio de 2023 Sim
Junho 15 de junho de 2023 30 de junho de 2023 Sim
Julho 18 de julho de 2023 31 de julho de 2023 Sim
Agosto 16 de agosto de 2023 31 de agosto de 2023 Sim
Setembro 14 de setembro de 2023 29 de setembro de 2023 Sim
Novembro 10 de novembro de 2023 30 de novembro de 2023 Sim
Janeiro 16 de janeiro de 2024 31 de janeiro de 2024 Sim
Março 13 de março de 2024 29 de março de 2024 Sim
Maio 14 de maio de 2024 31 de maio de 2024 Sim
Julho 16 de julho de 2024 31 de julho de 2024 Sim
Setembro 17 de setembro de 2024 30 de setembro de 2024 Sim
Novembro 11 de novembro de 2024 3 de dezembro de 2024 Sim
Janeiro 17 de janeiro de 2025 31 de janeiro de 2025 Sim
Fevereiro 14 de fevereiro de 2025 28 de fevereiro de 2025 Sim

A tabela a seguir se aplica apenas aos android14-6.1 e android15-6.6:

Builds mensais certificados de GKI Data limite para check-in Data de pré-carregamento de GKI Confirmado?
Janeiro 16 de janeiro de 2024 31 de janeiro de 2024 Sim
Fevereiro 13 de fevereiro de 2024 29 de fevereiro de 2024 Sim
Março 4 de março de 2024 15 de março de 2024 Sim
Abril 1º de abril de 2024 17 de abril de 2024 Sim
Maio 1o de maio de 2024 17 de maio de 2024 Sim
Junho 3 de junho de 2024 31 de junho de 2024 Sim
Julho 1º de julho de 2024 15 de julho de 2024 Sim
Agosto 1º de agosto de 2024 31 de agosto de 2024 Sim
Setembro 2 de setembro de 2024 16 de setembro de 2024 Sim
Outubro 1o de outubro de 2024 14 de outubro de 2024 Sim
Novembro 1º de novembro de 2024 15 de novembro de 2024 Sim
Dezembro 2 de dezembro de 2024 16 de dezembro de 2024 Sim
Janeiro 6 de janeiro de 2025 22 de janeiro de 2025 Sim

Lançamento da GKI do Android 12

Após maio de 2024, os lançamentos da GKI android12-5.10 serão trimestrais e é publicado no meio do mês. A tabela a seguir se aplica apenas aos android12-5.10

Builds mensais certificados de GKI Data limite para check-in Data de pré-carregamento de GKI Confirmado?
Julho 3 de julho de 2023 14 de julho de 2023 Sim
Setembro 1o de setembro de 2023 15 de setembro de 2023 Sim
Novembro 3 de novembro de 2023 17 de novembro de 2023 Sim
Janeiro 5 de janeiro de 2024 19 de janeiro de 2024 Sim
Março 4 de março de 2024 15 de março de 2024 Sim
Maio 1o de maio de 2024 17 de maio de 2024 Sim
Agosto 1º de agosto de 2024 16 de agosto de 2024 Sim
Novembro 1º de novembro de 2024 15 de novembro de 2024 Sim
Fevereiro 3 de fevereiro de 2025 17 de fevereiro de 2025 Sim

Validade do build de GKI para OEMs

OEMs podem usar uma GKI do Android lançada recentemente. OEMs podem lançar com builds com certificação GKI, desde que estejam em conformidade com os requisitos de LTS no Boletim de segurança do Android (ASB).

Versões de desenvolvimento semanais

As versões são testadas com o Cuttlefish. para garantir que eles tenham passado em uma barra de qualidade mínima.

Os binários de GKI estão disponíveis para autoatendimento no Android CI conforme as alterações são mescladas. Os builds semanais não serão certificados, embora possam ser usados como e estabelecer um valor de referência para desenvolvimento e testes. Os builds semanais não podem ser usados para e builds de dispositivos de produção para os usuários finais.

Lançamentos certificados mensais

Os lançamentos mensais de GKI contêm um boot.img testado que inclui uma versão certificado inserido para atestar que os binários foram criados a partir de uma fonte conhecida linha de base do código.

Todo mês, um candidato a lançamento mensal de GKI (não certificado) é selecionado após a data limite de check-in, que geralmente é a segunda criação semanal de naquele mês. Depois que o candidato a lançamento mensal for selecionado, o novo as mudanças não serão aceitas na versão desse mês. Durante o período fechado somente correções de bugs que causam falha no teste podem ser abordadas. A o candidato a lançamento passa por um controle de qualidade, conforme descrito no na seção de qualificação da solução) para garantir a aprovação dos testes de compliance O build de GSI+GKI usa um dispositivo de referência e o Cutlefish.

Cronograma de cadência de lançamento de GKI Figura 1. Cronograma de lançamento do GKI

Processo de resposta de emergência

Uma respin refere-se ao processo de refusão, recriação, novo teste e a recertificação de binários após uma versão pública do kernel de GKI. É possível solicitar uma nova verificação de um binário certificado para qualquer um dos seguintes circunstâncias:

  • Atualizar uma lista de símbolos.
  • Para aplicar uma correção a um bug, incluindo bugs encontrados durante a aprovação do laboratório da operadora.
  • Adicionar um gancho para fornecedores.
  • Aplicar um patch a um recurso atual.
  • Para aplicar um patch de segurança (após seis meses).

Os patches de segurança são automaticamente mesclados em uma ramificação de lançamento por até seis meses após a liberação da ramificação. Após o limite de seis meses, você vai precisar solicitar uma nova verificação para aplicar patches de segurança a uma ramificação.

Diretrizes de solicitação de respin

Antes de solicitar uma nova verificação, observe as seguintes diretrizes:

  • As respins são permitidas somente em ramificações de lançamento após uma versão pública inicial. de uma versão mensal foi foi lançado.

  • As solicitações de respin são aceitas somente para uma determinada ramificação de lançamento durante um no máximo seis meses após o lançamento público inicial. Depois de seis meses, ramificações são qualificadas para respin apenas para patches de segurança citados em o Boletim de segurança do Android.

  • Quando os requisitos de LTS , definido pelo Boletim de segurança do Android (ASB, na sigla em inglês). fazer com que a ramificação não esteja em conformidade, ela é descontinuada. Solicitações de respin para ramificações descontinuadas não são aceitas. A data de descontinuação de uma determinada GKI está incluída nas notas de build de lançamento mensais da GKI em Lançamentos. Para o planejamento futuro, os requisitos de LTS serão atualizados em maio e novembro anualmente. Por exemplo, o android12-5.10-2023-07 a ramificação (5.10.177) não oferece suporte a respins após 1o de maio de 2024 porque android12-5.10-2023-07 ramificação (5.10.177) não está em conformidade com os requisitos de LTS do ASB-2024-05.

  • As respins são aplicáveis somente a correções urgentes de bugs, atualizações da lista de símbolos ou para aplicar um patch para corrigir um recurso.

  • Todos os patches que vão para a ramificação de lançamento mensal já devem estar mesclados na ramificação principal de desenvolvimento de GKI. Por exemplo, se for necessário um patch respin de android12-5.10-2022-09, ele já deve estar mesclado ao android12-5.10.

  • Você precisa escolher a dedo os patches da ramificação principal de desenvolvimento de GKI e fazer upload do patch para a ramificação de lançamento mensal.

  • Na solicitação de resposta, você precisa atribuir uma prioridade (urgência) a ela. Essa prioridade ajuda a equipe de GKI a atender melhor os parceiros em tempo hábil. Para solicitações críticas ou urgentes, marque a prioridade como P0. Para P0 e P1 as solicitações, você também deve justificar a urgência. A tabela a seguir mostra mapeamento da prioridade do bug e do tempo para resolução (ESRT, na sigla em inglês):

    Prioridade ESRT
    P0 2 dias úteis
    P1 5 dias úteis
    P2 10 dias úteis
    P3 15 dias úteis
.
  • É necessário enviar uma solicitação de respin separada para cada ramificação de lançamento. Por exemplo, se é necessário um respin para android12-5.10-2022-08 e android12-5.10-2022-09, é necessário criar duas solicitações de respin.

  • Depois que um build é fornecido e uma solicitação de respin é marcada como corrigida, não deve reabrir a solicitação de respin para adicionar mais CLs. Você deve enviar um novo solicitação respin se houver patches adicionais que precisam ser mesclados.

  • Para cada CL em questão, adicione as seguintes tags.

    • Bug: o ID do bug precisa ser adicionado à mensagem de confirmação para cada CL.
    • Change-Id: precisa ser idêntico ao Change-Id da alteração da ramificação base.
    .
  • Se uma solicitação de respin exigir sua resposta e você não responder em até três dias úteis, a prioridade é rebaixada em um nível (por exemplo, P0 é rebaixado para P1. Se você não responder em até duas semanas, o bug será marcado como Sem correção (obsoleto).

Enviar uma solicitação de respin

O diagrama a seguir mostra o processo de respin. O processo começa quando O parceiro OEM (você) envia a solicitação de resposta.

Processo de resposta de emergência Figura 2. O processo de respin

Para entrar no processo de respin, siga estas etapas:

  1. Preencha o formulário de solicitação de GKI Respin. e entre em contato com seu gerente técnico de contas do Google imediatamente. Este formulário cria um bug de solicitação de respin de GKI. Bugs de solicitação de respin aparecem para você (o solicitante), a equipe de GKI e as pessoas específicas que você adicionar ao na lista de CC do bug.
    • Se você já tiver uma correção, a solicitação deverá apontar para o patch envio no AOSP para que o Google possa analisá-lo. Se o envio do patch não for viável, o patch deve ser anexado à solicitação como um arquivo de texto.
    • Se você não tiver uma correção, a solicitação precisará conter o máximo o máximo possível de informações, incluindo o número da versão do kernel e registros, para que o Google pode ajudar a depurar o problema.
  2. A equipe de GKI do Google analisa e aprova a solicitação ou a atribui de volta ao caso precise de mais informações.
  3. Depois que uma correção é acordada, a equipe de GKI do Google revisa o código da equipe de GKI do Google (CR+2) mudar. A revisão começa o prazo da ESRT. A equipe de GKI mescla, cria e testa para regressão e certifica a mudança.
  4. O binário é liberado para ci.android.com (link em inglês). A O prazo da ESRT termina e a equipe de GKI do Google marca a solicitação como corrigida e referenciar o build respin. A versão respin também será postada na página Página de builds de lançamento de imagem genérica do kernel (GKI, na sigla em inglês).

Qualificações de GKI

Tipos de builds de GKI Aplicação da qualidade Observações
Semanal Teste do Cuttlefish
  • Bota
  • Subconjunto do VTS
  • Subconjunto do CTS
  • Não certificado. Apenas para teste e
    abrir o dispositivo.
  • Não pode ser usado para iniciar dispositivos.
Mensalmente (certificado) Teste do Cuttlefish
  • Bota
  • VTS
  • CTS
. Teste do hardware de referência
  • Bota
  • VTS
  • CTS
Respins (certificado) Teste do Cuttlefish
  • Bota
  • VTS
  • Subconjunto do CTS
. Teste do dispositivo de referência
  • Bota
  • VTS
  • Criado com base em um build com certificação GKI.
  • O build é certificado após a qualificação.

Onde conseguir artefatos de build

Os artefatos de todas as versões podem ser obtidos em ci.android.com (link em inglês).

Encontre mais informações sobre CI, incluindo resultados no relatório Integração contínua do Android mais avançado.

Perguntas frequentes

Confira algumas perguntas frequentes sobre o processo de lançamento da GKI.

É possível criar um novo binário de GKI com base em uma GKI já lançada?

Sim, isso é conhecido como uma nova resposta. O processo respin tem suporte desde que o O build GKI lançado (em que a resposta é solicitada) está em conformidade com o LTS. requisitos no Boletim de segurança do Android (ASB).

É possível reproduzir binários de GKI?

Sim, aqui está um exemplo:

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

Para reproduzir o exemplo, faça o download de manifest_$id.xml e execute o seguinte: 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

É possível recuperar sua cópia do artefato de GKI em out/.../dist.

O binário GKI (incluindo o patch de rotação de emergência) foi criado na base de código mais recente?

Não. As Respins só contêm patches que complementam as certificações mensais aos kernels que foram escolhidos. Esses respins contêm todos os bugs de bloqueio de lançamento de correções relatadas até determinado momento pelos OEMs usando a base correspondente lançamento mensal. Confira o exemplo a seguir de como esse tipo de cenário acontece.

  • O OEM1 e o OEM2 decidiram usar a versão do binário GKI a partir de novembro de 2021.
  • O OEM1 e o OEM2 encontram problemas que exigem patches para compatibilidade. Esses patches podem ser diferentes ou iguais.
  • Os respins sobre o binário de novembro de 2021 têm bloqueio de lançamento. de correções relatadas pelo OEM1 e pelo OEM2 durante a janela de respin, mas nada mais.
  • Os problemas mencionados no segundo marcador também foram incluídos nas próximas etapas lançamentos mensais.

A respin de outubro tem todos os patches enviados pelo OEM, mas outros patches do OEM nos afetam porque eles não foram testados especificamente com nossos produtos. É possível incluir apenas nosso patch?

Isso não é possível. Um item "por OEM" respin não é escalonável. Em vez disso, a equipe de GKI examina cada mudança compila e testa as alterações com todos os hardwares disponíveis antes de criar ser construído. Se a equipe de GKI descobrir que o problema é específico de um OEM, dispositivo ou a equipe de GKI pode garantir que o código adicionado pela mudança só seja executado no dispositivo, modelo ou SKU que está sendo afetado.

A maior vantagem das respins unificadas é que cada dispositivo usando a mesma base de lançamento se beneficiam uns dos outros, especialmente se os bugs que descobrirem são genéricos e aplicáveis a todos os usuários. Bugs principais do kernel encontrados nos testes de transportadoras é um exemplo específico desse conceito.

Há situações em que o Google fornece informações específicas sobre patches e cenários de problemas do OEM para que eles possam avaliar o impacto e o risco da implementação dos patches nos produtos deles?

O Google não adiciona uma alteração a um build respin até que o problema seja compreendido. e todos os detalhes foram coletados. Isso é visto no log de mudanças (mensagem de confirmação). O Google não revela qual dispositivo específico afeta, mas Os OEMs sempre podem encontrar a descrição do problema e a solução no log de mudanças.