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

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

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

Cuttlefish از مانیفست های هسته زیر در نسخه های اصلی و 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 آورده شده است.

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

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

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

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

    cvd create \
        -kernel_path=./out/virtual_device_aarch64/dist/Image \
        -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img