หน้านี้อธิบายวิธีพัฒนาเคอร์เนล Android ในอุปกรณ์ Cuttlefish
Manifest ของเคอร์เนลที่รองรับ
Cuttlefish รองรับ Manifest ของเคอร์เนลต่อไปนี้ในสาขา 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