GKI 1.0: tests de compatibilité

Cette page explique comment obtenir des images de démarrage avec des artefacts de compilation du noyau pour les tests de compatibilité.

Obtenir des images de démarrage

Dans AOSP, vous pouvez obtenir des images de démarrage prédéfinies sur ci.android.com. Les images de démarrage sont contenues dans l'archive aosp_arm64-img-*.zip de la cible de compilation aosp_arm64, comme suit:

Les partenaires peuvent obtenir des images de démarrage non signées ou signées, comme suit:

  • Obtenez des images de démarrage non signées basées sur android12-5.4 à partir de la branche aosp-main sur ci.android.com (recherchez la cible de compilation aosp_arm64). Ces images de démarrage contiennent un ramdisk créé à partir de la branche main d'AOSP. N'utilisez pas les images boot-debug. Elles sont destinées uniquement aux appareils pré-GKI.
  • Obtenez des images de démarrage signées basées sur android11-5.4 sur partner.android.com. Ces images de démarrage contiennent un ramdisk créé à partir de la branche r-fs-release. La signature boot.img suit le même processus que la signature GSI.

Les images de démarrage signées et non signées sont disponibles avec les options de compression du noyau suivantes:

  • boot-5.4.img est un noyau non compressé.
  • boot-5.4-gz est un kernel compressé gzip.
  • boot-5.4-lz4 est un noyau compressé LZ4.
Pour les tests de compatibilité, utilisez des images de démarrage avec des noyaux qui n'exportent que les symboles qui apparaissent sur la liste de symboles KMI (les symboles sont trimmed).

À des fins de développement, vous pouvez utiliser des précompilés de kernel et des images de démarrage GKI qui exportent tous les symboles du kernel (les symboles sont untrimmed). Les précompilés de kernel non élagués sont générés dans la cible kernel_debug_aarch64 pour un build de kernel particulier sur ci.android.com. Les images de démarrage GKI non élaguées sont générées dans les builds userdebug, ainsi que les images de démarrage GKI élaguées normales. Leurs noms de fichier se terminent par -allsyms.img.

Obtenir les artefacts de compilation du noyau

Lorsque vous déboguez des problèmes dans un fichier boot.img GKI, il est utile de disposer également des artefacts de compilation associés au noyau dans ce fichier. Par exemple, vous pouvez utiliser le vmlinux non tronqué pour le débogage et le fichier manifeste pour reproduire la compilation du kernel GKI en local. Pour obtenir des artefacts de compilation:

  1. Recherchez le numéro de compilation du kernel précompilé utilisé pour créer le boot.img GKI. Le numéro de build s'affiche à la fin de la version du kernel, précédé des lettres ab. L'exemple suivant affiche le numéro de build en gras:

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

    Vous pouvez également déterminer le numéro de build du noyau à l'aide de grep pour trouver une image de démarrage contenant un noyau non compressé:

    grep -a "Linux version " boot-5.4.img
  2. Ouvrez la version précompilée du kernel à l'aide du numéro de compilation dans l'URL suivante : https://ci.android.com/builds/submitted/<number>/kernel_aarch64/latest

    Par exemple, en utilisant le numéro de build de l'étape 1, l'URL est la suivante : https://ci.android.com/builds/submitted/6638796/kernel_aarch64/latest

    Lorsque vous utilisez une version non coupée, remplacez kernel_aarch64 dans le lien par kernel_debug_aarch64.