الأسئلة الشائعة حول نواة 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) لتحديد مسارٍ للمضي قدمًا. بعد تحديد قائمة الرموز، أنشئ خطأً في نظام تتبُّع المشاكل وحمِّل تغييرًا في قائمة الرموز.