หน้านี้อธิบายวิธีพัฒนาเคอร์เนล Android บนอุปกรณ์ Cuttlefish
ไฟล์ Manifest ของเคอร์เนลที่รองรับ
Cuttlefish รองรับไฟล์ Manifest ของเคอร์เนลต่อไปนี้ใน Branch รุ่นล่าสุดของ Android และรุ่น GSI ของ AOSP
- ในวันที่
android-latest-releasecommon-android-mainline
- ในวันที่
android-15.0.0_r36common-android16-6.12common-android15-6.6common-android14-6.1common-android14-5.15
- ในวันที่
aosp-android13-gsicommon-android13-5.15common-android13-5.10
- ในวันที่
aosp-android12-gsicommon-android12-5.10common-android12-5.4common-android-4.19-stable
- ในวันที่
aosp-android11-gsicommon-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 ให้ทำตามขั้นตอนต่อไปนี้
โคลนไฟล์ Manifest ของที่เก็บเคอร์เนลที่เหมาะสมสำหรับอุปกรณ์ 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หากใช้ไฟล์ Manifest ของเคอร์เนล
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 แทนการสร้างในเครื่อง (เพื่อหลีกเลี่ยงการดาวน์โหลดแหล่งที่มาของเคอร์เนล การตั้งค่าสภาพแวดล้อมการพัฒนาเคอร์เนล)
เปิดใช้เคอร์เนลและ Ramdisk ด้วย Cuttlefish
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ออกหากเปิดใช้เคอร์เนลใน Cuttlefish เวอร์ชัน aarch64 ให้ใช้
aarch64การกำหนดค่าบิลด์และใช้Imageอาร์ติแฟกต์แทนbzImagecvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img