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

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

Geçmiş

Android destekli her cihazın üretim çekirdeğine ihtiyacı vardır. GKI'dan önce çekirdekler özeldi ve Android Ortak Çekirdeği'ne (ACK) dayanıyordu. Çip üzerinde sistem (SoC) satıcıları ve OEM'ler tarafından cihaza özel değişiklikler yapılıyordu.

Bu özelleştirme, çekirdek kodunun% 50'sinin ağaç dışı kod olmasına ve yukarı akış Linux çekirdeklerinden veya ACK'lerden olmamasına neden olabilir. Bu nedenle, GKI öncesi çekirdeklerin özel yapısı önemli çekirdek parçalanmasına neden oluyordu.

Parçalanmanın maliyetleri

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

Güvenlik güncellemeleri çok fazla emek gerektirir.

Android Güvenlik Bülteni'nde (ASB) belirtilen güvenlik yamaları, cihaz çekirdeklerinin her birine geri taşınmalıdır. Ancak çekirdek parçalanması nedeniyle, güvenlik düzeltmelerinin sahadaki Android cihazlara yayılması çok maliyetlidir.

Uzun süreli desteklenen güncellemeleri birleştirmek zordu

Uzun Süreli Desteklenen (LTS) sürümlerinde güvenlik düzeltmeleri ve diğer kritik hata düzeltmeleri yer alır. LTS sürümlerini güncel tutmanın, güvenlik düzeltmelerini sağlamanın en etkili yolu olduğu kanıtlanmıştır. Pixel cihazlarda, ASB'de bildirilen çekirdek güvenlik sorunlarının% 90'ının, güncel tutulan cihazlarda düzeltildiği tespit edildi.

Ancak cihaz çekirdeklerinde yapılan tüm özel değişiklikler nedeniyle, LTS düzeltmelerini cihaz çekirdekleriyle birleştirmek zordur.

Android platform sürümü yükseltmelerini engelleme

Parçalanma, çekirdek değişiklikleri gerektiren yeni Android özelliklerinin sahada bulunan cihazlara eklenmesini zorlaştırır. Android Framework kodu, farklı çekirdek varyasyonlarını hesaba katmak zorundaydı ve çekirdekte uygulanan yeni Android özelliklerine güvenemiyordu. Bu durum, yeniliği yavaşlattı ve kod boyutunun artmasına ve karmaşıklığa neden oldu.

Çekirdek değişikliklerini yukarı akış Linux'a geri göndermek zordur.

Yama çekme işleminin üretim çekirdeklerine parçalı bir şekilde yapılması, bir LTS sürümünün yukarı akışta kullanıma sunulmasıyla cihazda kullanıma sunulması arasında 18 aya kadar gecikmeye neden oluyordu. Bu durum, Android topluluğunun gerekli özellikleri ve sürücüleri yukarı akış çekirdeklerine aktarmasını zorlaştırıyor. Kullanıcılar iyileştirme önerilerini gönderdiğinde kod tabanı değişmiş olduğundan yamanın alaka düzeyini göstermek zorlaşıyordu.

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

Genel Çekirdek Görüntüsü (GKI) projesi, çekirdek parçalanmasını önlemek için temel çekirdeği birleştirir ve SoC ile kart desteğini temel çekirdekten çıkarıp yüklenebilir satıcı modüllerine taşır. GKI ayrıca satıcı modülleri için kararlı bir çekirdek modülü arayüzü (KMI) 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 oluşturulur.
  • GKI çekirdeği, LTS sürümü başına, mimari başına tek bir çekirdek ikilisi 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 karta özgü kod içermez.

GKI mimarisinin görüntüsü için Çekirdeğe genel bakış başlıklı makaleyi inceleyin.

Ortak Resim

Android 12'den itibaren, çekirdek sürümü 5.10 veya daha yeni olan cihazlar GKI çekirdeğiyle birlikte gönderilmelidir. Genel çekirdek görüntüsü (GKI) sürümü derlemeleri düzenli olarak güncellenir ve LTS ile kritik hata düzeltmeleriyle düzenli olarak güncellenir. KMI için ikili kararlılık korunduğundan, bu önyükleme görüntülerini tedarikçi görüntülerinde değişiklik yapmadan yükleyebilirsiniz. GKI projesinin hedefleri şunlardır:

  • Ürün çekirdeğini GKI çekirdeğiyle değiştirirken performansta veya güçte önemli gerilemelere neden olmayın.
  • İş ortaklarının, satıcı müdahalesi olmadan çekirdek güvenlik düzeltmeleri ve hata düzeltmeleri sunmasını sağlar.
  • Cihazlarda ana çekirdek sürümünü yükseltme maliyetini azaltır.
  • Çekirdek sürümlerini yükseltme için net bir süreçle güncelleyerek mimari başına tek bir GKI çekirdek ikilisi bulundurun.