GKI modülleri
Genel Çekirdek Görüntüsü (GKI) modülleri, genel çekirdek çekirdeğinden ayrı, önyükleme gerektirmeyen çekirdek işlevselliği sağlamak için kullanılır. GKI modülleri ile, genellikle çekirdek görüntü boyutunu ve çalışma zamanı bellek tüketimini azaltan, kullanılacak belirli çekirdek işlevlerini seçebilirsiniz. Boyutun küçültülmesi, GKI'yi Android Go cihazları ve diğer kısıtlı kaynak form faktörleri için çok uygun hale getirir.
GKI modülleri ayrıca satıcıların KMI donma kilometre taşından sonra yeni yukarı akış özelliklerini dahil etmesine olanak tanıyan bir mekanizma sağlar. Yerleşik kod, başka bir görüntü oluşturulmadan değiştirilemezken, modül olarak teslim edilen kod başka bir modülle değiştirilebilir.
GKI modülleri, çalışma zamanında GKI ile diğer modüller arasında ayrım yapmak için çekirdeğin derleme zamanı imzalama altyapısını kullanır. Yalnızca izin verilenler listesinde görünen veya diğer imzasız modüller tarafından sağlanan sembolleri kullandıkları sürece imzasız modüllerin yüklenmesine izin verilir.
İki mantıksal GKI modülü türü vardır: korumalı GKI modülü ve korumasız GKI modülü .
Korumalı GKI modülü
Korumalı bir GKI modülü Google tarafından sağlanır, hiçbir şekilde kısıtlanmaz ve yüklendikten sonra çekirdekle oluşturulmuş gibi davranır. Ek olarak, korumalı GKI modülleri aşağıdaki özelliklere sahiptir:
- Korumalı GKI modülleri, tedarikçi firma modülleri veya korumasız GKI modülleri tarafından kullanılamayan KMI dışı çekirdek sembollerine erişime sahiptir.
- Korumalı GKI modülleri, bu semboller bir sembol listesinde belirtildiği sürece KMI yüzeyinin bir parçası haline gelen sembolleri dışa aktarabilir.
- Korumalı GKI modülleri, tedarikçi firma 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ülleri, KMI donması sırasında korumalı kabul edilir.
Korumasız GKI Modülü
Korumasız bir GKI modülü, bir satıcı modülü tarafından geçersiz kılınabilir. KMI donmasından sonra, GKI ekibi satıcıların varsayılan uygulamayı yukarı akış Linux'tan yeni özellikler içeren bir sürümle geçersiz kılması gerektiğine karar verirse korumalı bir GKI modülü korumasız olarak yeniden sınıflandırılabilir. Bir sonraki GKI sürümünde, korumasız modüller, yukarı akış kodu bir Android Ortak Çekirdeğine (ACK) girdikten sonra korumalı olarak yeniden sınıflandırılır. Korumasız GKI modülleri aşağıdaki özelliklere sahiptir:
- Korumasız GKI modülleri, dışa aktarılan sembollere tedarikçi firma modülleriyle aynı erişime sahiptir.
- Korumasız GKI modülleri, korumalı GKI modülleri tarafından dışa aktarılan sembolleri dışa aktaramaz.
- Korumasız GKI modülleri, tüm KMI arabirimlerini çekirdek çekirdeğin bir parçası gibi korumalıdır.
- Korumasız GKI modülleri, tedarikçi firma modülleri tarafından geçersiz kılınabilir.
Satıcı modülleri
SoC ve cihaza özgü işlevleri uygulamak için iş ortakları tarafından bir satıcı modülü sağlanır. GKI çekirdeğinin bir parçası olarak teslim edilmeyen mevcut herhangi bir çekirdek modülü, satıcı modülü olarak teslim edilebilir.
GKI projesinin birincil hedeflerinden biri çekirdek çekirdekte donanıma özgü kodu en aza indirmek olduğundan, satıcılar GKI çekirdeğinin kendi donanımlarını açıkça yöneten modülleri içermemesini bekleyebilirler. Örneğin tedarikçi firma ABC Inc,
CONFIG_ABC_SOC_SUPPORT gibi yapılandırmaların, destekleri olmadan yerleşik veya yüklenebilir GKI modülleri olarak etkinleştirilmemesini bekleyebilir.
ACK'de bir çekirdek sürücüsü veya çerçevesi varsa, ancak GKI çekirdeğinin bir parçası olarak sunulmadıysa, satıcılar sürücüyü değiştirebilir ve satıcı modülü olarak teslim edebilir. Aynı işlevsellik gelecekteki bir sürümde GKI çekirdeği ile sağlanabileceğinden, bu tür değişiklikler satıcıya özgü olmayan modüller için önerilmez. GKI çekirdeği, bir satıcı modülü tarafından sağlanan işlevsellik içerdiğinde, satıcı modülü yüklenmez. Örneğin,
CONFIG_GREYBUS Android 11'de GKI için ayarlanmamıştır, bu nedenle satıcılar greybus satıcı modülleri sağlayabilir. Ancak
CONFIG_GREYBUS , Android 12'de yerleşik bir GKI veya modül olarak etkinleştirilebilir ve bu durumda greybus satıcı modülleri yüklenmez. En iyi uygulama, satıcıya özel olmayan sürücülerin, satıcı modülleri olarak teslim edildiyse yukarı akış sürümünü kullanmaktır.
Satıcı modüllerini
vendor veya
vendor_boot görüntüsünde teslim edebilirsiniz. Önyükleme işleminin erken aşamalarında gerekli olan modüller
vendor_boot olmalıdır.
vendor_boot modüllerin yüklenmesiyle ilişkili bir önyükleme zamanı maliyeti vardır.