الأسئلة الشائعة حول نواة Android

يحتوي هذا المستند على أسئلة شائعة حول نواة Android، والمعروفة أيضًا باسم نواة Generic Kernel Image (GKI). إذا لم تكن معتادًا على مصطلحات GKI ونواة GKI، يُرجى الرجوع إلى نظرة عامة على النواة.

هل يمكن تغيير قوائم رموز واجهة وحدة النواة (KMI) في نواة ثابتة؟

يمكن إضافة تغييرات لا تؤثر في واجهة KMI الحالية إلى النواة المجمدة. تشمل هذه التغييرات وظائف جديدة تم تصديرها وإدخالات جديدة في قائمة الرموز. لمزيد من التفاصيل، يُرجى الاطّلاع على إدارة قوائم الرموز.

هل يمكنني تغيير البِنى التي تستخدمها وحدات المورّد في نواة ثابتة؟

لا يمكن تغيير البِنى التي تشكّل جزءًا من واجهة KMI في النواة التي تتضمّن KMI ثابتًا. قبل تجميد KMI، يمكن تغيير هذه البُنى.

هل يمكنني تغيير النواة طالما أنّني لا أخلّ بالتوافق الثنائي أو توافق المصدر؟

يمكن إجراء التغييرات التي لا تؤثّر في مؤشر KMI على النحو الموضّح في تصحيحات Android المحدّدة.

كيف تتعامل GKI مع إعدادات النواة؟

للحصول على معلومات حول إعدادات النواة، يُرجى الرجوع إلى التغييرات في gki_defconfig.

كيف يمكنني التعامل مع إصلاحات الأخطاء في المصدر التي تؤدي إلى الكتابة فوق وحدات GKI الحالية؟

إذا أنشأت وحدة خاصة بالمورّد استنادًا إلى برنامج تشغيل في نواة Android المشتركة (ACK)، يكون عليك التأكّد من نقل إصلاحات الأخطاء من المصدر الرئيسي ومن نواة Android المشتركة إلى وحدتك. بشكل عام، من الأفضل استخدام نواة 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 مع الشرطة (-) والشرطة السفلية (_) على أنّهما متساويتان؟

يحتوي صفحة modprobe man على هذا الوصف: "يضيف modprobe أو يزيل وحدة نمطية من نواة Linux بذكاء: لاحظ أنّه لا يوجد فرق بين _ و- في أسماء الوحدات النمطية (يتم إجراء تحويل تلقائي للشرطة السفلية) لتوفير الراحة". يلتزم فريق GKI باصطلاح المصدر الأساسي المعياري، لذا يجب أن تأخذ اصطلاحات التسمية الخاصة بأدوات المورّدين أو الوحدات النمطية هذا الالتزام في الاعتبار.

كيف يمكنني تفعيل debugfs للاستخدام الداخلي؟

لمزيد من التفاصيل حول تفعيل debugfs، راجِع الميزات المتداخلة لتصحيح الأخطاء في الإصدارات الأدنى.

كيف يمكنني حلّ مشكلة عدم تطابق واجهات التطبيق الثنائية (ABI) بين نواة GKI وإعدادات وحدة معيّنة مفعَّلة؟

يمثّل عدم تطابق واجهات التطبيق الثنائية (ABI) بين نواة GKI وإعدادات الوحدة النمطية تبعية ضمنية لإعدادات الوحدة النمطية، حيث يؤدي تفعيل وحدة نمطية إلى إنشاء إعدادات ثنائية في صورة النواة الناتجة. يُرجى التواصل مع فريق Android kernel (kernel-team@android.com) لتحديد الخطوات التالية. بعد تحديد قائمة الرموز، أنشئ خطأ في Issue Tracker وحمِّل تغييرًا على قائمة الرموز.