اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
الأسئلة الشائعة حول نواة Android
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتضمّن هذا المستند الأسئلة الشائعة حول نواة Android، ويُشار إليها أيضًا باسم نواة Generic Kernel Image (GKI). إذا لم تكن معتادًا على مصطلحات
GKI وGKI kernel، يُرجى الرجوع إلى نظرة عامة على Kernel.
هل يمكن تغيير قوائم رموز واجهة وحدة المعالجة المركزية (KMI) في نواة مستقرة؟
يمكن إضافة التغييرات التي لا تؤثّر في واجهة برمجة التطبيقات الحالية لنظام التشغيل KMI إلى النوى التي تم
تجميدها. وتشمل هذه التغييرات دوالّ جديدة تم تصديرها وإدخالات جديدة في قائمة الرموز.
لمعرفة التفاصيل، يُرجى الاطّلاع على إدارة قوائم الرموز.
هل يمكنني تغيير البنى التي تستخدمها وحدات المورّدين في نواة مستقرة؟
لا يمكن تغيير البنى التي تشكّل جزءًا من واجهة KMI في النوى التي تحتوي على واجهة KMI
مجمّدة. قبل تجميد نموذج KMI، يمكن تغيير هذه الهياكل.
هل يمكنني تغيير النواة ما دامت لا تؤدي إلى إيقاف التوافق مع الثنائي أو المصدر؟
يمكن إجراء التغييرات التي لا تؤثّر في KMI على النحو الموضّح في تصحيحات
الخاصة بنظام التشغيل Android.
كيف يعالج GKI إعدادات kernel؟
للحصول على معلومات عن إعدادات kernel، يُرجى الرجوع إلى
التغييرات على gki_defconfig.
كيف يمكنني التعامل مع إصلاحات الأخطاء في الإصدارات السابقة لعمليات الكتابة فوق وحدات GKI الحالية؟
إذا أنشأت وحدة مورّد استنادًا إلى برنامج تشغيل في
النواة الشائعة لنظام التشغيل Android (ACK)،
يكون عليك التأكّد من نشر إصلاحات الأخطاء من المصدر الرئيسي وACK
في وحدتك. بشكل عام، من الأفضل استخدام نواة GKI و
وحدات GKI بدون تعديل حتى تقدّم Google هذه التحديثات باستمرار.
هل هناك اختبارات محدّدة لبرنامج GKI؟
هناك اختبارات مجموعة اختبارات المورّد (VTS) التي تتحقّق من
تثبيت إصدار GKI معتمَد، بالإضافة إلى فرض متطلبات GKI
لكل إصدار. على سبيل المثال، تتوفّر اختبارات VTS لنظام التشغيل Android 12 لإصدار 3
من عنوان التمهيد وللتحقّق من توفّر الأقسام المطلوبة في جهاز يعمل بالإصدار 5.10
من نواة النظام.
كيف يمكنني إنشاء ملف قطعة ملف defconfig للمشروع لإصدارات الأجهزة؟
تستخدم العديد من الأجهزة المتوافقة مع GKI مقتطفًا للإعدادات لوصف خيارات الإعداد
اللازمة، بالإضافة إلى gki_defconfig
، لإنشاء وحدات المورّدين.
تشمل الأمثلة التي تشكّل جزءًا من قاعدة بيانات ACK كلّ من Cuttlefish وDB845c.
لا يمكن تجنُّب بعض الفحص اليدوي لخيارات الضبط
لتحسين المقتطف، ولكن scripts/diffconfig
من مصادر النواة
يكون مفيدًا لمقارنة نتائج gki_defconfig
و
gki_defconfig+device.fragment
.
هل هناك حل بديل لعلاج modprobe للفاصلين - و_ على أنّهما متكافئان؟
تحتوي
صفحة man الخاصة ببرنامج modprobe
على هذا الوصف: "modprobe
يضيف
أو يزيل وحدة من نواة Linux بشكل ذكي: يُرجى العلم أنّه من أجل الراحة، ليس هناك اختلاف بين _ و- في أسماء الوحدات (يتم تنفيذ تحويل تلقائي للشرطة المائلة)." يلتزم فريق GKI بالاصطلاح العادي في المصدر، لذا يجب أن تأخذ أدوات المورّدين أو اصطلاحات تسمية الوحدات هذا الالتزام في الاعتبار.
كيف يمكنني تفعيل debugfs للاستخدام الداخلي؟
لمعرفة تفاصيل حول تفعيل debugfs، يُرجى الاطّلاع على ميزات تصحيح أخطاء التطبيقات المُشغّلة في الخلفية التي تُزعج المستخدمين.
كيف يمكنني حلّ مشكلة عدم تطابق معرّفات ABI بين نواة GKI مع تفعيل إعدادات وحدة معيّنة؟
تشير عدم تطابق معيار ABI بين نواة GKI وإعدادات الوحدة إلى تبعية
ضمنية لإعدادات الوحدة، حيث يؤدي تفعيل وحدة إلى إنشاء ملف برمجي
للإعدادات في صورة النواة الناتجة. يُرجى التواصل مع فريق ملف التمهيد لنظام Android
(kernel-team@android.com) لتحديد مسارٍ
للمضي قدمًا. بعد تحديد قائمة الرموز، أنشئ خطأً في
نظام تتبُّع المشاكل وحمِّل
تغييرًا في قائمة الرموز.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Android kernel frequently asked questions\n\nThis document contains frequently asked questions about the Android kernel,\nknown also as the Generic Kernel Image (GKI) kernel. If you are unfamiliar with\nGKI and GKI kernel terminology, refer to the\n[Kernel overview](/docs/core/architecture/kernel).\n\nCan Kernel Module Interface (KMI) symbol lists be changed in a stable kernel?\n-----------------------------------------------------------------------------\n\nChanges that don't affect the existing KMI can be added to kernels that are\nfrozen. These changes include new exported functions and symbol list entries.\nFor details, see [Manage symbol lists](/docs/core/architecture/kernel/stable-kmi#managing-symbol-lists).\n\nCan I change structures used by vendor modules in a stable kernel?\n------------------------------------------------------------------\n\nStructures that are part of a KMI interface can't be changed in kernels with a\nfrozen KMI. Prior to KMI freeze, these structures can be changed.\n\nCan I change the kernel as long as I don't break binary or source compatibility?\n--------------------------------------------------------------------------------\n\nChanges that don't affect the KMI can be made as described in [Android-specific\npatches](/docs/core/architecture/kernel/kernel-code#android-specific-patches).\n\nHow does GKI handle kernel configuration?\n-----------------------------------------\n\nFor information on kernel configuration, refer to the\n[Changes to gki_defconfig](/docs/core/architecture/kernel/kernel-code#changes-to-gki-defconfig).\n\nHow do I handle upstream bug fixes for overwrites to existing GKI modules?\n--------------------------------------------------------------------------\n\nIf you create a vendor module based on a driver in\n[Android Common Kernel (ACK)](/docs/core/architecture/kernel/android-common),\nit's up to you to ensure that bug fixes from upstream and ACK are propagated\nto your module. Generally, it's in your best interest to use the GKI kernel and\nGKI modules without modification so these updates are provided consistently\nby Google.\n\nAre there GKI specific tests?\n-----------------------------\n\nThere are [Vendor Test Suite (VTS)](/docs/compatibility/vts) tests that verify\nthat a certified GKI build is installed and also to enforce per-release GKI\nrequirements. For example, there are Android 12 VTS tests for boot header v3\nand to verify the existence of required partitions in a device running a 5.10\nkernel.\n\nHow do I create the project defconfig fragment file for device builds?\n----------------------------------------------------------------------\n\nMany GKI-compliant devices use a config fragment to describe the configuration\noptions needed, in addition to `gki_defconfig`, to build the vendor modules.\nExamples that are part of the ACK codebase include Cuttlefish and DB845c.\nThere's no way to avoid some manual examination of configuration options\nto optimize the fragment, but `scripts/diffconfig` from the kernel sources\nis useful for comparing the results of `gki_defconfig` and\n`gki_defconfig+device.fragment`.\n\nIs there a workaround for modprobe treating - and _ as equivalent?\n------------------------------------------------------------------\n\nThe\n[modprobe man page](https://man7.org/linux/man-pages/man8/modprobe.8.html)\ncontains this description: \"`modprobe` intelligently adds\nor removes a module from the Linux kernel: note that for convenience, there is\nno difference between _ and - in module names (automatic underscore conversion\nis performed).\" The GKI team adheres to the standard upstream convention, so\nvendor tools or module naming conventions must take this adherence into account.\n\nHow do I enable debugfs for internal use?\n-----------------------------------------\n\nFor details on enabling debugfs, see [intrusive downstream debug\nfeatures](/docs/core/architecture/kernel/debugging-with-gki#intrusive-downstream-debug-features).\n\nHow can I resolve mismatched ABIs between the GKI kernel with a specific module configuration enabled?\n------------------------------------------------------------------------------------------------------\n\nMismatched ABIs between the GKI kernel and module configuration represents an\nimplicit module config dependency, where enabling a module causes a binary\nconfig to be built into the resulting kernel image. Reach out to the Android\nkernel team\n([kernel-team@android.com](mailto:kernel-team@android.com)) to determine a path\nforward. After the list of symbols is determined, create a bug in the\n[Issue Tracker](https://issuetracker.google.com/components/1124381) and upload\na change to the symbol list."]]