الأسئلة المتداولة حول نواة أندرويد

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

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

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

هل يمكنني تغيير الهياكل التي تستخدمها وحدات البائع في نواة مستقرة؟

لا يمكن تغيير الهياكل التي تشكل جزءًا من واجهة KMI في النواة باستخدام واجهة KMI المجمدة. قبل تجميد KMI، يمكن تغيير هذه الهياكل.

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

يمكن إجراء التغييرات التي لا تؤثر على KMI كما هو موضح في التصحيحات الخاصة بنظام Android .

كيف يتعامل GKI مع تكوين kernel؟

للحصول على معلومات حول تكوين kernel، راجع التغييرات التي تم إجراؤها على gki_defconfig .

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

إذا قمت بإنشاء وحدة بائع بناءً على برنامج تشغيل في Android Common Kernel (ACK) ، فالأمر متروك لك للتأكد من نشر إصلاحات الأخطاء من المنبع وACK إلى وحدتك. بشكل عام، من مصلحتك استخدام نواة GKI ووحدات GKI بدون تعديل بحيث يتم توفير هذه التحديثات بشكل متسق بواسطة Google.

هل هناك اختبارات محددة لـ GKI؟

توجد اختبارات Vendor Test Suite (VTS) التي تتحقق من تثبيت بنية GKI المعتمدة وأيضًا لفرض متطلبات GKI لكل إصدار. على سبيل المثال، هناك اختبارات Android 12 VTS لرأس التمهيد v3 وللتحقق من وجود الأقسام المطلوبة في جهاز يعمل بنواة 5.10.

كيف أقوم بإنشاء ملف جزء defconfig الخاص بالمشروع لبناء الأجهزة؟

تستخدم العديد من الأجهزة المتوافقة مع GKI جزءًا من التكوين لوصف خيارات التكوين المطلوبة، بالإضافة إلى gki_defconfig ، لإنشاء وحدات البائع. تتضمن الأمثلة التي تعد جزءًا من قاعدة كود ACK Cuttlefish وDB845c. لا توجد طريقة لتجنب بعض الفحص اليدوي لخيارات التكوين لتحسين الجزء، ولكن scripts/diffconfig من مصادر kernel مفيدة لمقارنة نتائج gki_defconfig و gki_defconfig+device.fragment .

هل هناك حل بديل لمعالجة modprobe - و_ بما يعادله؟

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

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

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

كيف يمكنني حل واجهات ABI غير المتطابقة بين نواة GKI مع تمكين تكوين وحدة معينة؟

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

لدي أجهزة متوافقة مع GKI 1.0 في المجال تعمل بنظام 5.4 kernel الذي تم إطلاقه مع Android 11 و12. ما هي خيارات ترقية kernel المتوفرة، وكيف يمكنني اختبار هذه الأجهزة عند الترقية إلى Android 12 و13؟

راجع مصفوفة التوافق للحصول على قائمة بإصدارات kernel المدعومة لإصدارات الإطلاق والترقية. فيما يلي مثالان للترقية.

مثال 1: يمكن للمستخدم الذي لديه جهاز يعمل بنظام التشغيل Android 11 مع android11-5.4 kernel ( GKI 1.0 ) اختيار أي من هذه الخيارات عند الترقية إلى Android 12:

  • قم بالترقية إلى android12-5.10 GKI 2.0 kernel (موصى به بشدة).

  • احتفظ بنواة android11-5.4 .

  • الترقية إلى نواة android12-5.4 .

مثال 2: يمكن للمستخدم الذي لديه جهاز يعمل بنظام التشغيل Android 12 مع نواة android12-5.4 أو android12-5.10 اختيار أي من هذه الخيارات عند الترقية إلى Android 13:

  • قم بالترقية إلى android13-5.10 أو android13-5.15 GKI 2.0 kernel (موصى به بشدة).

  • احتفظ بنواة android12-5.4 GKI 1.0 .

  • احتفظ بنواة android12-5.10 GKI 2.0 .

خصيصًا لاختبار التوافق مع Treble، نوصيك بتنفيذ أحد الإجراءات التالية:

  • استبدل النواة الشريكة بنواة GKI 1.0 المعتمدة ( android11-5.4 أو android12-5.4 ).

  • قم بالشحن مع GKI 2.0 kernel المعتمد ( android12-5.10 أو android13-5.10 أو android13-5.15 ) حسب اختيارك.

يمكنك تنزيل إصدارات GKI 2.0 من إصدارات إصدار Generic Kernel Image (GKI) .