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

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

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

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

  • در android-latest-release
    • common-android-mainline
  • روی android-15.0.0_r36
    • 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. کرنل و رم‌دیسک را با Cuttlefish اجرا کنید.

    cvd create \
        -kernel_path=./out/virtual_device_x86_64/dist/bzImage \
        -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img

    اگر یک هسته غیر GKI (هر هسته ای با نسخه ۴.۱۹ یا کمتر) را اجرا می‌کنید، آرگومان -initramfs_path حذف کنید.

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

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