本页介绍了如何在 Cuttlefish 设备上开发 Android 内核。
支持的内核清单
Cuttlefish 在 main 版本和 AOSP GSI 版本上支持以下内核清单。
- 在
aosp-main上common-android-mainlinecommon-android16-6.12common-android15-6.6common-android14-6.1common-android14-5.15
- 在
aosp-android13-gsi上common-android13-5.15common-android13-5.10
- 在
aosp-android12-gsi上common-android12-5.10common-android12-5.4common-android-4.19-stable
- 在
aosp-android11-gsi上common-android11-5.4common-android-4.19-stablecommon-android-4.14-stable
以下是在 Cuttlefish 设备上用于内核开发的内核源代码。
kernel/common-android-mainlinekernel/common-android16-6.12kernel/common-android15-6.6kernel/common-android14-6.1kernel/common-android14-5.15kernel/common-android13-5.15kernel/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 中下载相关工件,而不必在本地构建(以免下载内核源代码和设置内核开发环境)。
使用 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