На этой странице описано, как разрабатывать ядра Android на устройствах с операционной системой Cuttlefish.
Поддерживаемые манифесты ядра
Cuttlefish поддерживает следующие манифесты ядра в последней версии Android и релизах AOSP GSI.
- На
android-latest-release-
common-android-mainline
-
- На
android-15.0.0_r36-
common-android16-6.12 -
common-android15-6.6 -
common-android14-6.1 -
common-android14-5.15
-
- На
aosp-android13-gsi-
common-android13-5.15 -
common-android13-5.10
-
- На
aosp-android12-gsi-
common-android12-5.10 -
common-android12-5.4 -
common-android-4.19-stable
-
- На
aosp-android11-gsi-
common-android11-5.4 -
common-android-4.19-stable -
common-android-4.14-stable
-
Ниже представлены исходные коды ядра для разработки ядра на устройствах Cuttlefish.
-
kernel/common-android-mainline -
kernel/common-android16-6.12 -
kernel/common-android15-6.6 -
kernel/common-android14-6.1 -
kernel/common-android14-5.15 -
kernel/common-android13-5.15 -
kernel/common-android13-5.10
Разработка ядер Android
Для разработки ядер на устройствах Cuttlefish выполните следующие шаги:
Скопируйте соответствующий манифест репозитория ядра для вашего устройства Cuttlefish и внесите необходимые изменения.
mkdir common-android-mainlinecd common-android-mainlinerepo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainlinerepo sync -c -j$(nproc) -qСоберите ядро и образ оперативной памяти (ramdisk). Дополнительную информацию см. в разделе «Сборка модулей поставщика для виртуального устройства» .
tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_distЕсли вы используете манифесты ядра
common-android-4.19-stable,common-android-4.14-stableилиcommon-android11-5.4, выполните следующую команду:BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh && BUILD_CONFIG=common-modules/virtual-device/build.config.cuttlefish.x86_64 build/build.shВместо локальной сборки (чтобы избежать загрузки исходного кода ядра и настройки среды разработки ядра), вы можете загрузить необходимые артефакты на сайте ci.android.com.
Запустите ядро и образ ramdisk с помощью Cuttlefish.
cvd create \ -kernel_path=./out/virtual_device_x86_64/dist/bzImage \ -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.imgПри запуске ядра, отличного от GKI (любой версии 4.19 или ниже), аргумент
-initramfs_pathследует опустить.Если вы запускаете ядро на версии Cuttlefish для архитектуры aarch64, используйте конфигурацию сборки для
aarch64и используйте артефактImageвместоbzImage.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img