تكوين Kernel

استخدم إعدادات التكوين التالية كأساس لتكوين Android kernel. ويتم تنظيم الإعدادات إلى .cfg ملفات android-base ، android-base- ARCH ، و android-recommended :

  • android-base خيارات تتيح ميزات Android الأساسية ويجب أن يتم تكوين كما هو محدد من قبل جميع الأجهزة.
  • android-base- ARCH خيارات تتيح ميزات Android الأساسية ويجب أن يتم تكوين كما هو محدد من قبل كافة الأجهزة العمارة ARCH . لا تحتوي جميع البنى على ملف مطابق للخيارات المطلوبة الخاصة بالعمارة. إذا لم يكن لدى العمارة الخاصة بك ملف ، فلن تحتوي على متطلبات تكوين kernel إضافية خاصة بالبنية لنظام Android.
  • android-recommended . تعمل هذه الخيارات على تمكين ميزات Android المتقدمة وهي اختيارية للأجهزة.

توجد هذه الملفات التكوين في kernel/configs الريبو. استخدم مجموعة ملفات التكوين التي تتوافق مع إصدار kernel الذي تستخدمه.

للاطلاع على تفاصيل الضوابط التي سبق اتخاذها لتعزيز نواة على الأجهزة الخاصة بك، انظر النظام والأمن النواة . للاطلاع على تفاصيل الإعدادات المطلوبة، راجع وثيقة تعريف الروبوت التوافق (CDD) .

إنشاء ملف config

بالنسبة للأجهزة التي لديها الحد الأدنى defconfig الشكل، واستخدام merge_config.sh النصي في شجرة نواة لتمكين خيارات:

ARCH=ARCH scripts/kconfig/merge_config.sh <...>/device_defconfig <...>/android-base.cfg <...>/android-base-ARCH.cfg <...>/android-recommended.cfg

هذا يولد .config الملفات التي يمكنك استخدامها لحفظ جديد defconfig ملف أو ترجمة نواة جديدة مع ميزات تمكين الروبوت.

متطلبات تكوين النواة الإضافية

في بعض الحالات ، يمكن لمشرف النظام الأساسي الاختيار من بين ميزات kernel المتعددة لتلبية تبعية Android. لا يمكن التعبير عن مثل هذه التبعيات في ملفات أجزاء تكوين kernel (الموضحة أعلاه) لأن تنسيق هذه الملفات لا يدعم التعبيرات المنطقية. في الروبوت 9 والتعليم العالي، اختبار توافق جناح (CTS) و البائع اختبار جناح (VTS) التحقق من أن يتم استيفاء المتطلبات التالية:

  • CONFIG_OF=y أو CONFIG_ACPI=y
  • 4.4 و 4.9 حبات لها CONFIG_ANDROID_LOW_MEMORY_KILLER=y OR على حد سواء CONFIG_MEMCG=y و CONFIG_MEMCG_SWAP=y
  • CONFIG_DEBUG_RODATA=y أو CONFIG_STRICT_KERNEL_RWX=y
  • CONFIG_DEBUG_SET_MODULE_RONX=y أو CONFIG_STRICT_MODULE_RWX=y
  • لARM64 فقط: CONFIG_ARM64_SW_TTBR0_PAN=y أو CONFIG_ARM64_PAN=y

بالإضافة إلى ذلك، CONFIG_INET_UDP_DIAG يجب تعيين خيار y 4.9 حبات في الروبوت 9 والتعليم العالي.

تمكين خيارات وضع مضيف USB

بالنسبة إلى صوت وضع مضيف USB ، قم بتمكين الخيارات التالية:

CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
# CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver

بالنسبة لوضع مضيف USB MIDI ، قم بتمكين الخيار التالي:

CONFIG_SND_USB_MIDI=y

Seccomp BPF مع TSYNC

Secure Computing Berkeley Packet Filter (Seccomp BPF) عبارة عن تقنية أمان kernel تتيح إنشاء صناديق الحماية التي تحدد السياق الذي قد تقوم فيه العملية بإجراء مكالمات النظام. تتيح ميزة مزامنة مؤشر الترابط (TSYNC) استخدام Seccomp BPF من البرامج متعددة مؤشرات الترابط. تقتصر هذه الإمكانية على البنى التي تحتوي على دعم Seccomp للتحميل (ARM و ARM64 و x86 و x86_64).

برنامج Android Live-Lock Daemon

الروبوت 10 يتضمن الروبوت لايف للقفل الشيطان ( llkd )، الذي يهدف إلى الصيد وتخفيف نواة المآزق. للحصول على تفاصيل حول استخدام llkd ، الرجوع إلى الروبوت لايف للقفل الشيطان .

باستخدام vDSO32 على ARM64

الكائن الظاهري المشترك الديناميكي (vDSO) هو بديل لمكالمات النظام التي ، عند استخدامها وتكوينها بشكل صحيح ، يمكن أن تقلل من تكاليف الدورة. يضيف Android 10 دعمًا لـ vDSO32 على نواة 64 بت (يدعم Android بالفعل vDSO64 على نواة 64 بت و vDSO32 على نواة 32 بت). باستخدام vDSO32 ( CONFIG_VDSO_COMPAT ) في الهندسة المعمارية ARM64 يوفر زيادة بنسبة 0.4 في المئة في عمر البطارية وتحسين الأداء الأخرى.

هو مجتمع لينكس تعمل بنشاط على توحيد vDSOs عبر أبنية . يمكنك إعداد vDSO في نواة لينكس من خلال تمكين vDSO32 مع CONFIG_COMPAT و CONFIG_CROSS_COMPILE_COMPAT_VDSO مع الثلاثي المترجم ARM32. وقد backported فريق الروبوت نواة الإصدارات القديمة من سلسلة التصحيح vDSO في الأجهزة بكسل، حتى تتمكن من العثور على أمثلة في بكسل نواة يبني ( LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN المسار، CROSS_COMPILE_ARM32 المرجعية، و CONFIG_CROSS_COMPILE_ARM32 التكوين).