หน้านี้จะอธิบายวิธีพัฒนาเคอร์เนล Android ในอุปกรณ์ Cuttlefish
ไฟล์ Manifest ของเคอร์เนลที่รองรับ
Cuttlefish รองรับไฟล์ Manifest ของเคอร์เนลต่อไปนี้ในรุ่นหลักและ 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 ให้ทำตามขั้นตอนต่อไปนี้
โคลนไฟล์ Manifest ของที่เก็บเคอร์เนลที่เหมาะสมสำหรับอุปกรณ์ 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
สร้างเคอร์เนลและแรมดิสก์ ดูข้อมูลเพิ่มเติมได้ที่การสร้างโมดูลของผู้ให้บริการสำหรับอุปกรณ์เสมือน
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 แทนการสร้างในเครื่อง (เพื่อหลีกเลี่ยงการดาวน์โหลดซอร์สโค้ดเคอร์เนลและการสร้างสภาพแวดล้อมการพัฒนาเคอร์เนล)
เปิดเคอร์เนลและแรมดิสก์ด้วยหมึกกระดอง
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
แทนbzImage
cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img