На этой странице описывается, как разрабатывать ядра 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-mainline
cd common-android-mainline
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo 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