GKI 1.0: Тестирование совместимости

На этой странице описано, как получить загрузочные образы с артефактами сборки ядра для тестирования совместимости.

Получить загрузочные образы

В AOSP вы можете получить готовые загрузочные образы с сайта ci.android.com . Загрузочные образы содержатся в архиве aosp_arm64-img-*.zip в цели сборки aosp_arm64 следующим образом:

Партнеры могут получить неподписанные или подписанные загрузочные образы следующим образом:

  • Получите неподписанные загрузочные образы на основе android12-5.4 из ветки aosp-main на сайте ci.android.com (посмотрите в цели сборки aosp_arm64 ). Эти загрузочные образы содержат виртуальный диск, созданный на основе main ветки AOSP. Не используйте образы boot-debug ; они предназначены только для устройств до GKI.
  • Получите подписанные загрузочные образы на основе android11-5.4 с сайта Partner.android.com . Эти загрузочные образы содержат виртуальный диск, созданный на основе ветки r-fs-release . Подписание boot.img происходит по тому же процессу, что и подписание GSI.

Как подписанные, так и неподписанные загрузочные образы имеют следующие параметры сжатия ядра:

  • boot-5.4.img — это несжатое ядро.
  • boot-5.4-gz — это ядро, сжатое gzip.
  • boot-5.4-lz4 — это ядро, сжатое lz4.
Для тестирования совместимости используйте загрузочные образы с ядрами, которые экспортируют только те символы, которые присутствуют в списке символов KMI (символы trimmed ).

В целях разработки вы можете использовать готовые сборки ядра и загрузочные образы GKI, которые экспортируют все символы в ядре (символы не untrimmed ). Необрезанные предварительные сборки ядра генерируются в целевом объекте kernel_debug_aarch64 для конкретной сборки ядра на ci.android.com . Необрезанные загрузочные образы GKI генерируются в сборках userdebug вместе с обычными обрезанными загрузочными образами GKI и имеют имена файлов, заканчивающиеся на -allsyms.img .

Получить артефакты сборки ядра

При отладке проблем в файле boot.img GKI полезно также иметь в этом файле артефакты сборки, связанные с ядром. Например, вы можете использовать необработанный vmlinux для отладки и манифест для локального воспроизведения сборки ядра GKI. Чтобы получить артефакты сборки:

  1. Найдите номер сборки предварительно собранного ядра, которое использовалось для создания GKI boot.img . Номер сборки отображается в конце версии ядра, которому предшествуют буквы ab . В следующем примере номер сборки выделен жирным шрифтом:

    [ 0.000000] Linux version 5.4.49-00947-g9d21bcd4897b-ab 6638796

    Вы также можете определить номер сборки ядра, используя grep для поиска загрузочного образа, содержащего несжатое ядро:

    grep -a "Linux version " boot-5.4.img
  2. Откройте предварительно созданную сборку ядра, используя номер сборки по следующему URL-адресу: https://ci.android.com/builds/submitted/ <number> /kernel_aarch64/latest

    Например, если использовать номер сборки из шага 1, URL-адрес будет следующим: https://ci.android.com/builds/submitted/ 6638796 /kernel_aarch64/latest

    При использовании необрезанной сборки замените kernel_aarch64 в ссылке на kernel_debug_aarch64 .