Kernel Modülü Arayüzü'nün (KMI) istikrarını korumak

Tedarikçi modülleri için KMI'nin istikrarlı olmasını sağlamak çok önemlidir. GKI çekirdeği olarak oluşturulur ve gönderilir. Tedarikçi firma tarafından yüklenebilen modüller ayrı bir ağaç. Ortaya çıkan GKI çekirdeği ve tedarikçi modülleri şu şekilde çalışmalıdır: birlikte inşa edilmiş olmalarına rağmen.

Linux topluluğu genellikle çekirdek içi ABI istikrarı konusunda endişeli ana hat çekirdeğinin temelini oluşturuyor. Araç zincirleri, yapılandırmalar, ve sürekli gelişen bir Linux ana çekirdek çekirdeğine sahip bir ana hatta istikrarlı KMI'dir. Ancak KMI'nin sabit kalmasını sağlamak, son derece kısıtlı GKI ortamına geçeriz.

  • Tek bir yapılandırma (gki_defconfig) ile kernel'e gidin.

  • KMI, bir çekirdeğin yalnızca aynı LTS ve Android sürümünde kararlı çalışır. android13-5.10, android12-5.10 veya android13-5.15 gibi.

    • android-mainline için KMI kararlılığı sağlanmaz.
  • AOSP'de yalnızca belirli Clang araç zinciri sağlanır ve çekirdek ve modül derlemek için kullanılır.

  • Yalnızca simge listesinde belirtilen şekilde modüller tarafından kullanıldığı bilinen simgeler Kararlılık açısından izlenir ve KMI sembolleri olarak kabul edilir.

    • Bu nedenle, tedarikçi modüllerinde yalnızca KMI sembolleri kullanılmalıdır. Bu KMI simgeleri olmayan simgeler, yüklemelerde başarısız olduğu için gereklidir.
  • KMI dalı dondurulduktan sonra değişikliklere izin verilir ancak KMI'yı bozamaz. Bu değişiklikler aşağıdakileri içerir:

    • Yapılandırma değişiklikleri
    • Çekirdek kodu değişiklikleri
    • Araç zinciri değişiklikleri (güncellemeler dahil)

Hermetik derleme işlemini ve LLVM araç zincirini kullanma

Hermetik derleme süreci,repo kernel/manifest, derleme ortamını tam olarak açıklar. Örneğin, android13-5.15 manifesti araç zincirini, derleme komut dosyalarını ve bir komut dosyası oluşturmak için gereken Genel Kernel Görüntü (GKI) çekirdeği. İlgili build.config yapılandırması GKI derleme yapılandırması build.config.gki.aarch64 gibi dosyalar oluşturun. Tutarlı derleme oluşturmak için eklenen araçların doğru şekilde kullanıldığından emin olun sonuç.

Hermetik derleme işlemi kullanmak, ağaç, Google tarafından üretilip üretilmediğine bakılmaksızın tutarlıdır (örneğin, abi_gki_aarch64.xml (android13-5.15 için) veya tedarikçi firmayı içeren yerel bir ağaçta oluşturulur. modüllerinde yer alır. İlgili içeriği oluşturmak için kullanılan ABI açıklamasını oluşturma ve karşılaştırma araçları Ayrıca depoda ayrıca, Kernel Module Interface (KMI) için de manifest dosyasında açıklanmıştır.

GKI çekirdeğini oluşturmak için kullanılan araç zinciri, tedarikçi firma modüllerini oluşturmak için kullanılan araç zinciridir. Android itibarıyla 10. Tüm Android çekirdekleri geliştirilmelidir. olduğu anlamına gelir. GKI ile, ürün geliştirmek için kullanılan LLVM araç zinciri çekirdeklerin ve tedarikçi firma modüllerinin, LLVM araç zinciriyle aynı ABI'yı AOSP ve iş ortakları, KMI'nin GKI çekirdeğiyle uyumlu olduğundan emin olmalıdır. Kapsamlı bir yapılandırma sunulduğundan dolayı, sağlanan derleme araçlarının emin olun.

Sırada ne var?