本页面介绍如何在 Cuttlefish 设备上开发 Android 内核。
支持的内核清单
Cuttlefish 支持主版本和 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 设备的相应内核 repo 清单,并进行任何更改。
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
构建配置,并使用Image
工件而不是bzImage
。cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img