พัฒนาเคอร์เนล Android

หน้านี้อธิบายวิธีพัฒนาเคอร์เนล 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

พัฒนาเคอร์เนล Android

หากต้องการพัฒนาเคอร์เนลในอุปกรณ์ Cuttlefish ให้ทำตามขั้นตอนต่อไปนี้

  1. โคลนไฟล์ 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
    
  2. สร้างเคอร์เนลและ 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

  3. เปิดเคอร์เนลและแรมดิสก์ด้วยหมึกกระดอง

    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