GKI 1.0:兼容性测试

本页介绍了如何获取具有内核 build 工件的启动映像,以进行兼容性测试。

获取启动映像

在 AOSP 中,您可以从 ci.android.com 获取预构建的启动映像。该启动映像就包含在 aosp_arm64 build 目标的 aosp_arm64-img-*.zip 归档中,如下所示:

合作伙伴可以获取未签名的或已签名的启动映像,如下所示:

  • ci.android.comaosp-main 分支获取基于 android12-5.4 的未签名启动映像(位于 aosp_arm64 build 目标中)。这类启动映像包含一个从 AOSP main 分支构建的 ramdisk。请勿使用 boot-debug 映像;因为它们仅适用于 GKI 之前的设备。
  • partner.android.com 获取基于 android11-5.4 的已签名启动映像。这类启动映像包含一个从 r-fs-release 分支构建的 ramdisk。boot.img 签名遵循与 GSI 签名相同的流程。

无论是已签名的启动映像,还是未签名的启动映像,都会提供以下内核压缩选项:

  • boot-5.4.img:未压缩的内核。
  • boot-5.4-gz:以 gzip 格式压缩的内核。
  • boot-5.4-lz4:以 lz4 格式压缩的内核。
如需进行兼容性测试,请使用带有相应内核的启动映像,这些内核只会导出 KMI 符号列表中显示的符号(这些符号为 trimmed)。

如果是出于开发目的,您可以使用内核预构建文件以及会导出内核中所有符号(这些符号为 untrimmed)的 GKI 启动映像。未经修剪的内核预构建文件是从位于 ci.android.com 的特定内核 build 的 kernel_debug_aarch64 目标中生成的。未经修剪的 GKI 启动映像则是在 userdebug build 中随正常修剪的 GKI 启动映像一起生成的,并且文件名以 -allsyms.img 结尾。

获取内核 build 工件

调试 GKI boot.img 文件内出现的问题时,在该文件中一并包含与对应内核关联的 build 工件会很有帮助。例如,您可以使用未剥离的 vmlinux 进行调试,使用清单在本地重现 GKI 内核 build。如需获取 build 工件,请按以下步骤操作:

  1. 找到用于创建 GKI boot.img 的内核预构建文件的 build 号。该 build 号就位于内核版本末尾,以字母 ab 开头。在下面的示例中,以粗体显示的内容即为 build 号:

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

    您还可以使用 grep 查找包含未压缩内核的启动映像,从而确定内核的 build 号:

    grep -a "Linux version " boot-5.4.img
  2. 使用以下网址中的 build 号打开内核预构建 build:https://ci.android.com/builds/submitted/<number>/kernel_aarch64/latest

    例如,如果使用第 1 步中的 build 号,该网址如下所示:https://ci.android.com/builds/submitted/6638796/kernel_aarch64/latest

    如果使用的是未经修剪的 build,请将链接中的 kernel_aarch64 替换为 kernel_debug_aarch64