Genel Kernel Görüntüsü (GKI) projesi

Bu sayfada, Genel Çekirdek Görüntüsü (GKI) projesi ve bu projenin Android kararlılığını ve güvenliğini nasıl artırdığı açıklanmaktadır.

Geçmiş

Android destekli her cihazın üretim çekirdeği olması gerekir. GKI'den önce çekirdekler özeldi ve Android Ortak Çekirdeği'ne (ACK) dayanıyordu. Çip üzerinde sistem (SoC) tedarikçileri ve OEM'ler tarafından cihaza özel değişiklikler yapılıyordu.

Bu özelleştirme, çekirdek kodunun% 50'sinin ana Linux çekirdeklerinden veya ACK'lerden değil, ağa bağlı olmayan kodlardan oluşmasına neden olabilir. Bu nedenle, GKI öncesi çekirdeklerin özel yapısı önemli ölçüde çekirdek parçalanmasına neden oldu.

Parçalanmanın maliyetleri

Çekirdek parçalanması, Android topluluğu üzerinde çeşitli olumsuz etkilere sahiptir.

Güvenlik güncellemeleri yoğun iş yükü gerektirir

Android Güvenlik Bülteni'nde (ASB) belirtilen güvenlik yamaları, cihaz çekirdeklerinin her birine geri bağlanmalıdır. Ancak çekirdek parçalanması nedeniyle, güvenlik düzeltmelerini kullanımdaki Android cihazlara dağıtmak çok pahalıdır.

Uzun süreli desteklenen güncellemeleri birleştirme zorluğu

Uzun Süreli Desteklenen (LTS) sürümler, güvenlik düzeltmelerinin yanı sıra diğer kritik hata düzeltmelerini içerir. LTS sürümlerini güncel tutmak, güvenlik düzeltmelerini sağlamanın en etkili yoludur. Pixel cihazlarda, ASB'de bildirilen çekirdek güvenlik sorunlarının% 90'ının, güncel kalan cihazlarda zaten düzeltildiği tespit edildi.

Ancak cihaz çekirdeklerindeki tüm özel değişiklikler nedeniyle LTS düzeltmelerini cihaz çekirdeklerine birleştirmek zordur.

Android platform sürüm yükseltmelerini engelleme

Parçalanma, çekirdek değişiklikleri gerektiren yeni Android özelliklerinin sahadaki cihazlara eklenmesini zorlaştırır. Android Framework kodunun farklı çekirdek varyasyonlarını hesaba katması gerekiyordu ve çekirdeğe uygulanan yeni Android özelliklerinden yararlanamıyordu. Bu durum, yenilikleri yavaşlattı ve kod boyutunun ve karmaşıklığının artmasına neden oldu.

Çekirdek değişikliklerini ana Linux'a geri göndermek zordur

Yamaların üretim çekirdeklerine ekleme yönteminin dökümü, LTS sürümünün yayında kullanıma sunulduğu noktadan cihaza eklenene kadar 18 aya varan bir gecikmeye neden oldu. Yukarı yönlü çekirdek sürümü ile ürünler arasındaki bu uzun gecikme, Android topluluğunun gerekli özellikleri ve sürücüleri yukarı yönlü çekirdeklere eklemesini zorlaştırıyor. Kullanıcı iyileştirme önerileri gönderdiğinde kod tabanı değişmiş olduğundan, yamanın alaka düzeyini göstermek zor oluyordu.

Parçalanmayı düzeltme: Genel Çekirdek Görüntüsü

Genel Çekirdek Görüntüsü (GKI) projesi, çekirdek çekirdeği birleştirip SoC ve kart desteğini çekirdek çekirdekten yüklenebilir tedarikçi modüllerine taşıyarak çekirdek parçalanmasını giderir. GKI, tedarikçi modülleri için kararlı bir çekirdek modülü arayüzü (KMI) de sunar. Böylece modüller ve çekirdek bağımsız olarak güncellenebilir. GKI çekirdeğinin bazı özellikleri şunlardır:

  • GKI çekirdeği, ACK kaynaklarından derlenir.
  • GKI çekirdeği, LTS sürümü başına mimari başına tek çekirdekli bir ikili dosya ve ilişkili yüklenebilir modüllerden oluşur.
  • GKI çekirdeği, ilişkili ACK için desteklenen tüm Android Platform sürümleriyle test edilir. GKI çekirdek sürümünün kullanım ömrü boyunca özellik desteği sonlandırılmaz.
  • GKI çekirdeği, belirli bir LTS içindeki sürücülere kararlı bir KMI sunar.
  • GKI çekirdeği, SoC'ye veya anakartlara özel kod içermez.

GKI mimarisinin resmi için Çekirdeğe genel bakış başlıklı makaleyi inceleyin.

Yaygın Resim

Android 12'den itibaren, 5.10 veya daha yeni bir çekirdek sürümüyle gönderilen cihazlar GKI çekirdeğiyle gönderilmelidir. Genel Çekirdek Görüntüsü (GKI) sürüm derlemeleri düzenli olarak güncellenir ve LTS ile önemli hata düzeltmelerini düzenli olarak alır. KMI için ikili program kararlılığı korunduğundan bu önyükleme resimlerini tedarikçi firma resimlerinde değişiklik yapmadan yükleyebilirsiniz. GKI projesinin hedefleri şunlardır:

  • Ürün çekirdeğini GKI çekirdeğiyle değiştirirken önemli performans veya güç gerilemelerine neden olmayın.
  • İş ortaklarının, tedarikçi firmanın katılımı olmadan çekirdek güvenlik düzeltmeleri ve hata düzeltmeleri yayınlamasını sağlayın.
  • Cihazların ana çekirdek sürümünü yükseltme maliyetini düşürün.
  • Çekirdek sürümlerini net bir yükseltme süreciyle güncelleyerek mimari başına tek bir GKI çekirdek ikili dosyası kullanın.