本页介绍了如何在 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 上启动内核,请使用
aarch64
build 配置并使用Image
工件(而不是bzImage
)。cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img