本页介绍了如何在 Cuttlefish 设备上开发 Android 内核。
支持的内核清单
Cuttlefish 在 main 版本和 AOSP GSI 版本上支持以下内核清单。
- 在 aosp-main上- common-android-mainline
- 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 中下载相关工件,而不必在本地构建(以免下载内核源代码和设置内核开发环境)。 
- 使用 Cuttlefish 启动内核和 ramdisk。 - 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参数。- 如果您要在 aarch64 版本的 Cuttlefish 上启动内核,请使用 - aarch64build 配置并使用- Image工件(而不是- bzImage)。- cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img
