تصف هذه الصفحة مشروع "صورة النواة العامة" (GKI) وكيفية زيادة استقرار Android وتحسين مستوى الأمان.
السجلّ
يحتاج كل جهاز يعمل بنظام التشغيل Android إلى نواة إنتاج. قبل مشروع GKI، كانت النواة مخصّصة ومستندة إلى "نواة Android الشائعة" (ACK)، مع إجراء تغييرات خاصة بالجهاز من قِبل مورّدي المنظومة على الرقاقة (SoC) والمصنّعين الأصليين للأجهزة (OEM).
يمكن أن يؤدي هذا التخصيص إلى أن يصل حجم الرموز البرمجية خارج النواة إلى% 50 من رموز النواة البرمجية، وأن لا تكون هذه الرموز من نِتاج نِوى Linux أو نِوى ACK. وبالتالي، أدّت طبيعة النواة المخصّصة قبل مشروع GKI إلى تجزئة كبيرة للنواة.
تكاليف التجزئة
تؤدي تجزئة النواة إلى عدة آثار سلبية على منتدى Android.
تتطلب تحديثات الأمان جهدًا كبيرًا
يجب نقل رموز تصحيح الأمان المذكورة في نشرة أمان Android (ASB) إلى كل نِوى الأجهزة. ومع ذلك، بسبب تجزئة النواة، يصبح نشر إصلاحات الأمان على أجهزة Android قيد الاستخدام مكلفًا للغاية.
يصعب دمج التحديثات التي تتلقى دعمًا طويل الأمد
تتضمّن إصدارات الدعم الطويل الأمد (LTS) إصلاحات الأمان وإصلاحات الأخطاء الأساسية الأخرى. وقد تبيّن أنّ البقاء على اطّلاع على أحدث إصدارات LTS هو الطريقة الأكثر فعالية لتوفير إصلاحات الأمان. على أجهزة Pixel، تبيّن أنّه تم إصلاح% 90 من مشاكل أمان النواة التي تم الإبلاغ عنها في نشرة أمان Android للأجهزة التي يتم تحديثها باستمرار.
ومع ذلك، مع كل التعديلات المخصّصة في نِوى الأجهزة، يصعب مجرد دمج إصلاحات LTS في نِوى الأجهزة.
تمنع ترقيات إصدارات منصة Android
تؤدي التجزئة إلى صعوبة إضافة ميزات Android الجديدة التي تتطلب تغييرات في النواة إلى الأجهزة قيد الاستخدام. كان على رموز Android Framework البرمجية مراعاة الاختلافات في نِوى الأجهزة، ولم يكن بإمكانها الاعتماد على تنفيذ ميزات Android الجديدة في النواة. أدّى ذلك إلى إبطاء وتيرة الابتكار وزيادة حجم الرموز البرمجية وتعقيدها.
يصعب المساهمة بتغييرات النواة في نِوى Linux الأساسية
أدّت الطريقة المجزّأة لسحب رموز التصحيح إلى نِوى الإنتاج إلى تأخير يصل إلى 18 شهرًا من وقت توفُّر إصدار LTS في النواة الأساسية إلى وقت توفّره في أحد الأجهزة. يؤدي هذا التأخير الطويل بين إصدار النواة الأساسية والمنتجات إلى صعوبة تزويد منتدى Android للنِوى الأساسية بالميزات وبرامج التشغيل اللازمة. عندما يرسل المستخدم اقتراحات للتحسينات، تكون قاعدة الرموز البرمجية قد تغيّرت، ما يجعل من الصعب إظهار مدى صلة رمز التصحيح.
إصلاح التجزئة: صورة النواة العامة
يعالج مشروع "صورة النواة العامة" (GKI) تجزئة النواة من خلال توحيد النواة الأساسية ونقل دعم المنظومة على الرقاقة (SoC) واللوحة خارج النواة الأساسية إلى وحدات مورّد قابلة للتحميل. تقدّم GKI أيضًا واجهة مستقرة لوحدة النواة (KMI) لوحدات المورّد، ما يتيح تحديث الوحدات والنواة بشكل مستقل. في ما يلي بعض خصائص نواة GKI:
- يتم إنشاء نواة GKI من مصادر ACK.
- نواة GKI هي برنامج ثنائي لنواة واحدة بالإضافة إلى وحدات قابلة للتحميل مرتبطة بها لكل بنية، ولكل إصدار LTS.
- يتم اختبار نواة GKI مع جميع إصدارات منصة Android المتوافقة مع ACK المرتبطة بها. لا يتم إيقاف أي ميزة خلال فترة استخدام إصدار نواة GKI.
- توفّر نواة GKI واجهة مستقرة لوحدة النواة (KMI) لبرامج التشغيل ضمن إصدار LTS معيّن.
- لا تحتوي نواة GKI على رموز برمجية خاصة بالمنظومة على الرقاقة (SoC) أو اللوحة.
للاطّلاع على صورة لبنية GKI، يُرجى الرجوع إلى نظرة عامة على النواة.
الصورة الشائعة
بدءًا من Android 12، يجب أن تتضمّن الأجهزة التي يتم شحنها بنواة الإصدار 5.10 أو الإصدارات الأحدث نواة GKI. يتم تحديث إصدارات "صورة النواة العامة" (GKI) بانتظام، كما يتم تحديثها بانتظام بإصلاحات LTS وإصلاحات الأخطاء الأساسية. بما أنّه يتم الحفاظ على استقرار البرنامج الثنائي لواجهة KMI، يمكنك تثبيت صور التشغيل هذه بدون إجراء تغييرات على صور المورّد. يهدف مشروع GKI إلى ما يلي:
- عدم إحداث تراجع كبير في الأداء أو استهلاك الطاقة عند استبدال نواة المنتج بنواة GKI
- تمكين الشركاء من تقديم إصلاحات الأمان وإصلاحات الأخطاء في النواة بدون مشاركة المورّد
- تقليل تكلفة ترقية إصدار النواة الرئيسي للأجهزة
- الحفاظ على برنامج ثنائي واحد لنواة GKI لكل بنية من خلال تحديث إصدارات النواة باتّباع عملية واضحة للترقية