หน้านี้อธิบายวิธีพัฒนาเคอร์เนล Android ในอุปกรณ์ Cuttlefish
ไฟล์ Manifest ของเคอร์เนลที่รองรับ
Cuttlefish รองรับไฟล์ Manifest ของเคอร์เนลต่อไปนี้ใน รุ่นหลักและรุ่น GSI ของ AOSP
- ใน
aosp-main
common-android14-6.1
common-android14-5.15
common-android-mainline
- ใน
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-android14-6.1
kernel/common-android14-5.15
kernel/common-android13-5.15
kernel/common-android13-5.10
kernel/common-android-mainline
พัฒนาเคอร์เนล Android
หากต้องการพัฒนาเคอร์เนลในอุปกรณ์ Cuttlefish ให้ทำตามขั้นตอนต่อไปนี้
โคลนไฟล์ Manifest ของที่เก็บเคอร์เนลที่เหมาะสมสำหรับอุปกรณ์ Cuttlefish และ ทำการเปลี่ยนแปลง
mkdir common-android14-6.1
cd common-android14-6.1
repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
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
หรือ ไฟล์ Manifest ของเคอร์เนล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
เปิดเคอร์เนลและแรมดิสก์ด้วยหมึกกระดอง
cvd start \ -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \ -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.img
หากมีการเปิดตัวเคอร์เนลที่ไม่ใช่ GKI (ทุกสิ่งที่อยู่ในระดับไม่เกิน GKI) 4.19) เว้นอาร์กิวเมนต์
-initramfs_path
หากกำลังเปิดใช้งานเคอร์เนลใน Cuttlefish เวอร์ชัน aArc64 ให้ใช้ การกำหนดค่าบิลด์ของ
aarch64
และใช้อาร์ติแฟกต์Image
แทนbzImage
cvd start \ -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/Image \ -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/initramfs.img