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 iş gerektirir.
Android Güvenlik Bülteni'nde (ASB) belirtilen güvenlik yamalarının her cihaz çekirdeğine geri aktarılması gerekir. 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 ile karmaşıklığının artmasına 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 uzun gecikme, 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 yüklenir satıcı modüllerine taşır. GKI, satıcı 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 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'deki 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. Generic Kernel Image (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 program kararlılığı 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üzeltmelerini ve hata düzeltmelerini sunmasına olanak tanır.
- Cihazlarda ana çekirdek sürümünü yükseltme maliyetini azaltır.
- Çekirdek sürümlerini net bir yükseltme süreciyle güncelleyerek mimari başına tek bir GKI çekirdek ikilisi bulundurun.