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

نواة المنتج، والمعروفة أيضًا باسم نواة الجهاز أو نواة المصنّع الأصلي للجهاز، هي التي تشحنها على جهازك. قبل إطلاق GKI، كانت نواة المنتج المستمدة من سلسلة من تغييرات النواة الرئيسية. يوضح الشكل 1 كيف تصبح نواة وتُنتج نواة المنتج (المصنّع الأصلي للجهاز/النواة):

إنشاء نواة المنتج في مرحلة ما قبل GKI

الشكل 1. إنشاء نواة المنتج في مرحلة ما قبل GKI.

  1. تم تعديل النواة الدعم الطويل الأمد في نظام التشغيل Linux (LTS) من kernel.org. مع رموز التصحيح الخاصة بنظام التشغيل Android والتي ينتج عنها نواة Android مشتركة (ACK).
  2. تم تعديل ACK من قِبل المورِّدين الذين أضافوا دعمًا لنظام التشغيل على الرقاقة. (SoC). يمكن للمورّدين أيضًا إضافة تحسينات على الأداء أو الطاقة. تشير رسالة الأشكال البيانية تُسمّى النواة (kernel) الناتجة النواة (النواة) لدى المورِّد.
  3. وأخيرًا، تم إجراء مزيد من التعديلات على نواة البائع من قِبل المصنّعين الأصليين للأجهزة برامج تشغيل الأجهزة والتخصيصات التي تراها ضرورية. النواة (النواة) الناتجة باسم نواة المنتج.

يمكن أن تؤدي كل هذه التعديلات إلى ما يصل إلى 50% من رمز النواة (kernel) هو رمز خارج الشجرة وليس من نواة Linux الرئيسية أو ACKs. قبل إطلاق GKI، كان لكل جهاز تقريبًا نواة مخصصة تؤدي إلى إنشاء نواة التجزئة.

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

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

تتطلب تحديثات الأمان عمالة كثيفة

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

من الصعب دمج التحديثات المتوفرة على المدى الطويل

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

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

حظر ترقيات إصدارات نظام Android الأساسي

يجعل التجزئة من الصعب على ميزات Android الجديدة التي تتطلب نواة التغييرات التي ستتم إضافتها إلى الأجهزة في هذا المجال. يجب أن يفترض رمز إطار عمل Android دعم ما يصل إلى خمسة إصدارات من النواة (kernel) وأنه لا توجد تغييرات في النواة تم تصميمها لإصدار النظام الأساسي الجديد (Android 10 يدعم النواة 3.18 و4.4 و4.9 و4.14 و4.19 وهي النواة التي لا تتوافق مع النواة في بعض الحالات تم تحسينها من خلال إضافة ميزات جديدة منذ الإصدار Android 8 في عام 2017).

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

مع كل التغييرات التي يتم إجراؤها على النواة، يتم شحن معظم الأجهزة الرائدة بإصدار نواة تم إنشاؤه قبل 18 شهرًا على الأقل. على سبيل المثال، تم إصدار النواة 4.14 بواسطة kernel.org في تشرين الثاني (نوفمبر) 2017 أول هواتف Android تستخدم نواة 4.14، وتم شحنها في ربيع عام 2019.

ويؤدي هذا التأخير الطويل بين إصدار النواة الأولية والمنتجات إلى صعوبة لمنتدى Android لتغذية الميزات وبرامج التشغيل المطلوبة في المراحل النواة.

إصلاح التجزئة: صورة Kernel عامة

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

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

للحصول على صورة لبنية GKI، يمكنك الاطّلاع على نظرة عامة على النواة (Kernel).

GKI هو تغيير معقد تم طرحه على عدة مراحل بدءًا من النواة v5.4 في إصدار النظام الأساسي Android 11.

هناك مرحلتان من "إحصاءات Google" (GKI):

  • تم تقديم GKI 1.0 في نظام التشغيل Android 11 للأجهزة المزوّدة 5.4 نواة. ينطبق GKI 1.0 على جميع الأجهزة التي يتم شحنها المزوّدة بنواة 5.4، بما في ذلك الأجهزة تم إطلاقها باستخدام نظام التشغيل Android 12 أو Android 13-
  • تم تقديم GKI 2.0 في الإصدار 12 من نظام التشغيل Android للأجهزة المزوّدة 5.10 وهو المعيار الجديد لجميع الأجهزة التي يتم شحنها مع 5.10 أو النواة اللاحقة.

الإصدار 1.0 من GKI

في الإصدار 1.0 من GKI، يجب أن تجتاز الأجهزة التي يتم إطلاقها بالإصدار 5.4 من النواة اختبار GKI. (إصدارات نظام التشغيل Android 11 والإصدارات الأحدث) تتضمّن أهداف GKI 1.0 ما يلي:

  • تجنُّب التراجع في حزمة اختبار المورّد (VTS) مجموعة أدوات اختبار التوافق (CTS) عند استبدال نواة المنتج بنواة GKI.
  • تقليل أعباء الشركاء لتحديث النواة باستمرار باستخدام AOSP النواة المشتركة.
  • تضمين تغييرات Android الأساسية في النواة المخصّصة لترقية الأجهزة وإطلاقها مع إصدارات جديدة من Android.
  • لا تفرط في مساحة المستخدم في Android.
  • فصل المكونات الخاصة بالأجهزة عن النواة الأساسية كوحدات قابلة للتحميل.

بالنسبة إلى مستندات GKI 1.0، يُرجى الاطّلاع على قسم GKI 1.0

الإصدار 2.0 من GKI

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

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

يمثّل GKI 2.0 أحدث حالة لنواة Android. Kernel المستندات خارج إطار لوحة معلومات GKI 1.0 و النواة السابقة (<=4.19) الأقسام الفرعية التي تعكس بنية GKI 2.0.