تطوير نواة نظام التشغيل 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. أنشئ النواة وذاكرة الوصول العشوائي (RAM). لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء وحدات المورّدين للجهاز الافتراضي.

    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