مشروع صورة Kernel عامة (GKI)

توضّح هذه الصفحة مشروع "صورة النواة العامة" (GKI) وكيفية مساهمته في زيادة ثبات نظام التشغيل Android وتحسين مستوى الأمان.

السجلّ

يحتاج كل جهاز يعمل بنظام التشغيل Android إلى نواة إنتاج. قبل طرح GKI، كانت النواة مخصّصة ومستندة إلى "نواة Android المشتركة" (ACK)، مع إجراء تغييرات خاصة بالجهاز من قِبل مورّدي المنظومة على الرقاقة (SoC) والمصنّعين الأصليين للأجهزة.

وقد يؤدي هذا التخصيص إلى أن يكون ما يصل إلى% 50 من رموز النواة البرمجية من خارج شجرة المصدر وليس من نُسخ Linux الأساسية أو حِزم ACK. ونتيجةً لذلك، أدّى الطابع المخصّص لنواة الإصدارات السابقة من GKI إلى حدوث تجزئة كبيرة في النواة.

تكاليف التجزئة

يؤدي تجزئة النواة إلى العديد من الآثار السلبية على منتدى Android.

تتطلّب تحديثات الأمان جهدًا كبيرًا

يجب نقل حِزم الأمان المذكورة في نشرة أمان Android (ASB) إلى الإصدارات القديمة من كل نواة جهاز. ومع ذلك، بسبب تجزئة النواة، يصعب جدًا نشر إصلاحات الأمان على أجهزة Android المتاحة.

صعوبة دمج تحديثات LTS

تتضمّن إصدارات الدعم الطويل الأمد (LTS) إصلاحات للأخطاء المتعلقة بالأمان وغيرها من الأخطاء المؤثّرة. وقد تبيّن أنّ مواكبة إصدارات LTS هي الطريقة الأكثر فعالية لتوفير إصلاحات الأمان. على أجهزة Pixel، تبيّن أنّه تم إصلاح% 90 من مشاكل أمان النواة التي تم الإبلاغ عنها في نشرة أمان Android، وذلك على الأجهزة التي يتم تحديثها باستمرار.

ومع ذلك، مع كل التعديلات المخصّصة في نواة الأجهزة، يصعب دمج إصلاحات LTS في نواة الأجهزة.

منع ترقيات إصدار منصة Android

يصعّب التجزئة إضافة ميزات Android الجديدة التي تتطلّب إجراء تغييرات على النواة إلى الأجهزة المتاحة. كان على رمز إطار عمل Android أن يراعي الاختلافات في النواة، ولم يكن بإمكانه الاعتماد على ميزات Android الجديدة التي تم تنفيذها في النواة، ما أدى إلى تباطؤ الابتكار وزيادة حجم الرمز وتعقيده.

يصعب المساهمة في تغييرات النواة وإعادتها إلى إصدار Linux الأصلي

وقد تسبّبت الطريقة المجزّأة لنقل حِزم التصحيح إلى نِوى الإصدارات العلنية في حدوث تأخير يصل إلى 18 شهرًا بين توفّر إصدار LTS في المصدر وتوفّره في أحد الأجهزة. ويؤدي هذا التأخير الطويل بين إصدار نواة المصدر وإصدار المنتجات إلى صعوبة تضمين الميزات وبرامج التشغيل المطلوبة في نواة المصدر من قِبل منتدى Android. وبحلول الوقت الذي أرسل فيه المستخدم اقتراحات لتحسينات، كان قد تم تغيير قاعدة الرموز البرمجية، ما صعّب عرض مدى صلة التصحيح.

حلّ مشكلة التجزئة: صورة Kernel عامة

يعالج مشروع "صورة النواة العامة" (GKI) مشكلة تجزئة النواة من خلال توحيد النواة الأساسية ونقل دعم نظام التشغيل على الرقاقة (SoC) واللوحة خارج النواة الأساسية إلى وحدات قابلة للتحميل خاصة بالمورّد. توفّر GKI أيضًا واجهة ثابتة لوحدة Kernel Module Interface (KMI) لوحدات المورّد، ما يتيح تحديث الوحدات والنواة بشكل مستقل. في ما يلي بعض خصائص نواة GKI:

  • يتم إنشاء نواة GKI من مصادر ACK.
  • نواة GKI هي عبارة عن ملف ثنائي واحد للنواة بالإضافة إلى وحدات قابلة للتحميل مرتبطة بها لكل بنية، ولكل إصدار من إصدارات الدعم الطويل الأمد.
  • يتم اختبار نواة GKI مع جميع إصدارات منصة Android المتوافقة مع حزمة ACK المرتبطة. لن يتم إيقاف أي ميزة نهائيًا خلال فترة توفّر إصدار GKI.
  • تعرض نواة GKI واجهة KMI ثابتة للسائقين ضمن إصدار LTS معيّن.
  • لا تحتوي نواة GKI على رمز خاص بنظام على شريحة أو لوحة.

للحصول على صورة لبنية GKI، يُرجى الرجوع إلى نظرة عامة على النواة.

صورة شائعة

اعتبارًا من Android 12، يجب أن تتضمّن الأجهزة التي يتم شحنها بنواة الإصدار 5.10 أو إصدار أحدث نواة GKI. يتم تعديل إصدارات صور نواة النظام العامة (GKI) بانتظام، كما يتم تعديلها بانتظام من خلال إصلاحات الأخطاء الحرجة وإصدارات الدعم الطويل الأمد (LTS). بما أنّه يتم الحفاظ على ثبات الرمز الثنائي لواجهة KMI، يمكنك تثبيت صور التمهيد هذه بدون إجراء تغييرات على صور المورّد. يهدف مشروع GKI إلى تحقيق ما يلي:

  • يجب عدم حدوث انخفاض كبير في الأداء أو استهلاك الطاقة عند استبدال نواة المنتج بنواة GKI.
  • تمكين الشركاء من تقديم إصلاحات لأخطاء وأعطال في أمان النواة بدون تدخل المورّد.
  • تقليل تكلفة رفع مستوى إصدار النواة الرئيسي للأجهزة
  • الحفاظ على ملف ثنائي واحد لنواة GKI لكل بنية من خلال تعديل إصدارات النواة باتّباع عملية واضحة للترقية