هسته های اندروید را توسعه دهید

در این صفحه نحوه توسعه هسته های اندروید در دستگاه های Cuttlefish توضیح داده شده است.

مانیفست هسته پشتیبانی شده

Cuttlefish از مانیفست های هسته زیر در نسخه های اصلی و AOSP GSI پشتیبانی می کند.

  • در 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 آورده شده است.

هسته های اندروید را توسعه دهید

برای توسعه هسته در دستگاه های Cuttlefish، مراحل زیر را دنبال کنید:

  1. مانیفست مخزن هسته مناسب را برای دستگاه 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 یا 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. هسته و ramdisk را با Cuttlefish راه اندازی کنید.

    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 (هر چیزی در 4.19 یا کمتر از آن)، آرگومان -initramfs_path را حذف کنید.

    اگر هسته را روی نسخه aarch64 Cuttlefish راه اندازی می کنید، از پیکربندی ساخت aarch64 استفاده کنید و به جای bzImage از مصنوع Image استفاده کنید.

    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