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

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

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

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

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

    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. شغِّل kernel و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