Çekirdek modüllerine genel bakış

İki tür çekirdek modülü vardır: donanımdan bağımsız GKI modülleri ve donanıma özgü sağlayıcı modüllerini inceleyin. Bu sayfada, her iki türe de genel bir bakış sunulmaktadır sağlayabilirsiniz.

GKI modülleri

Genel çekirdek görüntüsü (GKI) modülleri, başlatma gerektirmeyen çekirdeği yayınlamak için kullanılır özellikleri vardır. GKI modülleriyle şunları yapabilirsiniz: kullanılacak belirli çekirdek özelliklerini seçer ve genellikle çekirdek görüntüsünün boyutunu azaltır ve çalışma zamanı bellek tüketimini gösterir. Boyutunun küçültülmesi, GKI'yı şunlar için uygun hale getirir: Android Go cihazlar ve kaynak kısıtlamalı diğer form faktörleri.

GKI modülleri, tedarikçilere yeni veya farklı alanlarla ilgili e-postalar KMI dondurma aşamasından sonra yayın öncesi özellikleri. Yerleşik kod kodu, başka bir resim oluşturulmadan değiştirilemez, ancak modülünü başka bir modülle değiştirebilirsiniz.

GKI modülleri, çekirdeğin derleme zamanı imzalama altyapısını kullanır. GKI ile diğer modüller arasında birlikte çalışır. İmzalanmamış modüllerin yüklenmesine izin verilir izin verilenler listesinde görünen veya başkaları tarafından sağlanan sembolleri kullanmaları koşuluyla, imzalanmamıştır.

İki mantıksal GKI modülü türü vardır: korumalı GKI modülü ve korumasız GKI modülünü kullanabilirsiniz.

Korumalı GKI modülü

Korunan bir GKI modülü Google tarafından sunulur, hiçbir şekilde kısıtlanmaz ve , yüklendikten sonra çekirdekle oluşturulmuş gibi davranır. Ayrıca, korunan GKI modülleri aşağıdaki özelliklere sahiptir:

  • Korumalı GKI modülleri, KMI'ya ait olmayan çekirdek sembollerine ve veya korumasız GKI modüllerinde kullanılabilir.
  • Korumalı GKI modülleri, KMI platformuna dahil olan sembolleri dışa aktarabilir bir simge listesinde belirtildiği sürece bu simgeler.
  • Korumalı GKI modülleri tedarikçi modülleri tarafından geçersiz kılınamaz.

Korumalı bir GKI modülü, GKI modüllerinin varsayılan sınıfıdır. Tüm GKI modüllerin, KMI'nin dondurulması halinde korunduğu kabul edilir.

Korumasız GKI modülü

Korumasız GKI modülü bir tedarikçi modülü tarafından geçersiz kılınabilir. KMI dondurulduktan sonra, GKI ekibi, koruma altındaki bir GKI modülünün korumasız olarak yeniden tedarikçilerin varsayılan uygulamayı geçersiz kılması gerektiğine karar verir. içeren bir sürümle birlikte çalışır. Sonraki GKI sürümü, korumasız modüller sonrasında korumalı olarak yeniden sınıflandırılır yukarı akış kodu bir Android Ortak Çekirdeği'ne (ACK) gelir. Korumasız GKI modülleri şu özelliklere sahiptir:

  • Korumasız GKI modülleri, dışa aktarılan simgelere tedarikçi firmayla aynı erişime sahiptir. modüllerinde yer alır.
  • Korumasız GKI modülleri, korumalı GKI tarafından dışa aktarılan simgeleri dışa aktaramaz. modüllerinde yer alır.
  • Korumasız GKI modülleri, tüm KMI arayüzlerini çekirdeğine kadar uzanır.
  • Korumasız GKI modülleri satıcı modülleri tarafından geçersiz kılınabilir.

Satıcı modülleri

SoC'yi ve cihaza özgü özellikleri uygulamak için iş ortakları tarafından bir tedarikçi modülü sağlanır özellikler. GKI çekirdeği tedarikçi modülü olarak teslim edilebilir.

GKI projesinin birincil hedeflerinden biri donanıma özgü bir kod olsa da, tedarikçiler GKI'nın , kendi donanımlarını açıkça yöneten modülleri içermez. Örneğin, gibi yapılandırmalar, örneğin, tedarikçi ABC Inc. tarafından CONFIG_ABC_SOC_SUPPORT, yerleşik veya yüklenebilir olarak etkinleştirilmeyecek GKI modüllerini desteklemeyiz.

ACK'de bir çekirdek sürücüsü veya çerçevesi olmasına rağmen tedarikçiler sürücüyü değiştirebilir ve çekirdeği tedarikçi olarak teslim edebilir. modülünü kullanabilirsiniz. Tedarikçiye özgü olmayan modüller için bu tür değişiklikler önerilmez çünkü aynı özellikler GKI çekirdeğiyle bir kullanıma sunulması planlanıyor. GKI çekirdeği bir tedarikçi tarafından sağlanan özellikler içerdiğinde tedarikçi modülü yüklenmez. Örneğin, CONFIG_GREYBUS, Android 11'de GKI için ayarlanmadı. Bu nedenle tedarikçiler gribus tedarikçi modüllerini sunabilir. Ancak CONFIG_GREYBUS Android 12'de yerleşik bir GKI veya modül olarak Bu durumda gribus tedarikçi modülleri yüklenmez. En iyi uygulamalardan biri olarak teslim edilmeleri halinde, tedarikçi firmaya özgü olmayan sürücülerin yukarı akış sürümlerini modüllerini anlatacağım.

Tedarikçi modüllerini vendor veya vendor_boot görüntüsüdür. Başlatma işleminin başlarında gereken modüller vendor_boot içinde olmalıdır. vendor_boot üzerindeki modüllerin yüklenmesiyle ilişkili bir başlatma zamanı maliyeti vardır.