GKI 1.0: teste de compatibilidade

Esta página descreve como conseguir imagens de inicialização com artefatos de build do kernel para testes de compatibilidade.

Acessar imagens de inicialização

No AOSP, é possível acessar imagens de inicialização pré-criadas em ci.android.com. As imagens de inicialização estão contidas no arquivo aosp_arm64-img-*.zip no destino de build aosp_arm64, conforme mostrado abaixo:

Os parceiros podem receber imagens de inicialização assinadas ou não assinadas da seguinte maneira:

  • Receba imagens de inicialização não assinadas com base em android12-5.4 da ramificação aosp-main em ci.android.com (procure no destino de build aosp_arm64). Essas imagens de inicialização contêm um ramdisk criado a partir da ramificação main do AOSP. Não use as imagens boot-debug, que são destinadas apenas a dispositivos anteriores ao GKI.
  • Obtenha imagens de inicialização assinadas com base em android11-5.4 em partner.android.com. Essas imagens de inicialização contêm um ramdisk criado com base na ramificação r-fs-release. A assinatura de boot.img segue o mesmo processo da assinatura de GSI.

As imagens de inicialização assinadas e não assinadas têm as seguintes opções de compactação do kernel:

  • boot-5.4.img é um kernel descompactado.
  • boot-5.4-gz é um kernel compactado com gzip.
  • boot-5.4-lz4 é um kernel compactado lz4.
Para testes de compatibilidade, use imagens de inicialização com kernels que exportam apenas os símbolos que aparecem na lista de símbolos do KMI (os símbolos são trimmed).

Para fins de desenvolvimento, é possível usar pré-builds do kernel e imagens de inicialização GKI que exportam todos os símbolos no kernel (os símbolos são untrimmed). Pré-builds do kernel não aparados são gerados no destino kernel_debug_aarch64 para um build de kernel específico em ci.android.com. As imagens de inicialização GKI não aparadas são geradas em builds de userdebug junto com as imagens de inicialização GKI normais aparadas e têm nomes de arquivos que terminam em -allsyms.img.

Conseguir artefatos de build do kernel

Ao depurar problemas em um arquivo boot.img do GKI, é útil ter os artefatos de build associados ao kernel nesse arquivo. Por exemplo, é possível usar o vmlinux sem stripping para depuração e o manifesto para reproduzir o build do kernel da GKI localmente. Para conseguir artefatos de build:

  1. Localize o número de build do kernel pré-criado usado para criar o boot.img da GKI. O número do build aparece no final da versão do kernel, precedido pelas letras ab. O exemplo a seguir mostra o número de build em negrito:

    [ 0.000000] Linux version 5.4.49-00947-g9d21bcd4897b-ab6638796

    Também é possível determinar o número de build do kernel usando grep para encontrar uma imagem de inicialização que contenha um kernel descompactado:

    grep -a "Linux version " boot-5.4.img
  2. Abra o build pré-criado do kernel usando o número de build no seguinte URL: https://ci.android.com/builds/submitted/<number>/kernel_aarch64/latest

    Por exemplo, usando o número de build da etapa 1, o URL é o seguinte: https://ci.android.com/builds/submitted/6638796/kernel_aarch64/latest

    Ao usar um build não cortado, substitua kernel_aarch64 no link por kernel_debug_aarch64.