تطوير نواة نظام التشغيل Android

توضّح هذه الصفحة كيفية تطوير نُوى Android على أجهزة Cuttlefish.

ملفات بيان النواة المتوافقة

يتوافق Cuttlefish مع بيانات النواة التالية في فرع الإصدار الأخير من Android وإصدارات 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.

تطوير نُوى Android

لتطوير النواة على أجهزة 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 واستخدِم العنصر Image بدلاً من bzImage.

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