На этой странице описывается, как разрабатывать ядра Android на устройствах Cuttlefish.
Поддерживаемые манифесты ядра
Cuttlefish поддерживает следующие манифесты ядра в основных выпусках и выпусках AOSP GSI.
- На
aosp-main
-
common-android14-6.1
-
common-android14-5.15
-
common-android-mainline
-
- На
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-android14-6.1
-
kernel/common-android14-5.15
-
kernel/common-android13-5.15
-
kernel/common-android13-5.10
-
kernel/common-android-mainline
Разработка ядер Android
Чтобы разработать ядра на устройствах Cuttlefish, выполните следующие действия:
Клонируйте соответствующий манифест репозитория ядра для вашего устройства Cuttlefish и внесите любые изменения.
mkdir common-android14-6.1
cd common-android14-6.1
repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
repo sync -c -j$(nproc) -q
Соберите ядро и виртуальный диск. Дополнительные сведения см. в разделе Создание модулей поставщика для виртуального устройства .
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.
Запускаем ядро и рамдиск с Каракатицей.
cvd create \ -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \ -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.img
При запуске ядра, отличного от GKI (что-либо начиная с версии 4.19), опустите аргумент
-initramfs_path
.Если вы запускаете ядро в версии Cuttlefish aarch64, используйте конфигурацию сборки
aarch64
и используйте артефактImage
вместоbzImage
.cvd create \ -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/Image \ -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/initramfs.img