خذ استبيان قابلية الاستخدام لدينا لتحسين هذا الموقع.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

تكوين Kernel

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

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

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

للحصول على تفاصيل حول عناصر التحكم التي تم إجراؤها بالفعل لتقوية kernel على أجهزتك ، راجع أمان النظام والنواة . للحصول على تفاصيل حول الإعدادات المطلوبة ، راجع مستند تعريف توافق Android (CDD) .

إنشاء تهيئة kernel

بالنسبة للأجهزة التي لديها الحد الأدنى 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 جديد أو تجميع نواة جديدة مع تمكين ميزات Android.

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

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

  • CONFIG_OF=y أو CONFIG_ACPI=y
  • 4.4 و 4.9 CONFIG_ANDROID_LOW_MEMORY_KILLER=y لها CONFIG_ANDROID_LOW_MEMORY_KILLER=y أو تحتوي على كل من 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 نواة في Android 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

يشتمل Android 10 على Android Live-Lock Daemon ( llkd ) ، والذي تم تصميمه للقبض على الجمود kernel والتخفيف من حدته. للحصول على تفاصيل حول استخدام llkd ، ارجع إلى Android Live-Lock Daemon .

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

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

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