Android çekirdeği sık sorulan sorular

Bu belge, Genel Çekirdek Görüntüsü (GKI) çekirdeği olarak da bilinen Android çekirdeği hakkında sık sorulan soruları içerir. GKI ve GKI çekirdek terminolojisine aşina değilseniz Çekirdeğe genel bakış sayfasına bakın.

Çekirdek Modül Arayüzü (KMI) sembol listeleri kararlı bir çekirdekte değiştirilebilir mi?

Dondurulmuş çekirdeklere mevcut KMI'yi etkilemeyen değişiklikler eklenebilir. Bu değişiklikler yeni dışa aktarılan işlevleri ve sembol listesi girişlerini içerir. Ayrıntılar için bkz. Sembol listelerini yönetme .

Kararlı bir çekirdekte satıcı modülleri tarafından kullanılan yapıları değiştirebilir miyim?

KMI arayüzünün parçası olan yapılar, donmuş KMI'lı çekirdeklerde değiştirilemez. KMI donmadan önce bu yapılar değiştirilebilir.

İkili/kaynak uyumluluğunu bozmadığım sürece çekirdeği değiştirebilir miyim?

KMI'yi etkilemeyen değişiklikler Android'e özel yamalarda açıklandığı gibi yapılabilir.

GKI çekirdek yapılandırmasını nasıl yönetir?

Çekirdek yapılandırmasına ilişkin bilgi için gki_defconfig Değişiklikleri'ne bakın.

Mevcut GKI modüllerinin üzerine yazma işlemlerine ilişkin yukarı akış hata düzeltmelerini nasıl halledebilirim?

Android Common Kernel'de (ACK) bir sürücüyü temel alan bir satıcı modülü oluşturursanız, yukarı akış ve ACK'den gelen hata düzeltmelerinin modülünüze yayılmasını sağlamak size kalmıştır. Genel olarak GKI çekirdeğini ve GKI modüllerini değişiklik yapmadan kullanmak sizin yararınızadır; böylece bu güncellemeler Google tarafından tutarlı bir şekilde sağlanır.

GKI'ya özel testler var mı?

Sertifikalı bir GKI yapısının kurulu olduğunu doğrulayan ve ayrıca sürüm başına GKI gereksinimlerini zorunlu kılan Satıcı Test Paketi (VTS) testleri vardır. Örneğin, önyükleme başlığı v3 için ve 5.10 çekirdeği çalıştıran bir cihazda gerekli bölümlerin varlığını doğrulamak için Android 12 VTS testleri vardır.

Cihaz derlemeleri için proje defconfig parça dosyasını nasıl oluşturabilirim?

Çoğu GKI uyumlu cihaz, satıcı modüllerini oluşturmak için gki_defconfig ek olarak gereken yapılandırma seçeneklerini açıklamak üzere bir yapılandırma parçası kullanır. ACK kod tabanının bir parçası olan örnekler arasında Mürekkepbalığı ve DB845c yer alır. Parçayı optimize etmek için yapılandırma seçeneklerinin manuel olarak incelenmesinden kaçınmanın bir yolu yoktur, ancak çekirdek kaynaklarından gelen scripts/diffconfig gki_defconfig ve gki_defconfig+device.fragment sonuçlarını karşılaştırmak için kullanışlıdır.

Modprobe'un - ve _ değerlerini eşdeğer olarak ele almasına yönelik bir geçici çözüm var mı?

modprobe kılavuz sayfası şu açıklamayı içerir: " modprobe Linux çekirdeğine akıllıca bir modül ekler veya çıkarır: kolaylık olması açısından, modül adlarında _ ve - arasında bir fark olmadığını unutmayın (otomatik alt çizgi dönüşümü gerçekleştirilir). GKI ekibi standart yukarı akış kurallarına uyar, bu nedenle satıcı araçları veya modül adlandırma kurallarında bu bağlılığın dikkate alınması gerekir.

Dahili kullanım için hata ayıklamayı nasıl etkinleştiririm?

Hata ayıklamayı etkinleştirmeyle ilgili ayrıntılar için müdahaleci aşağı akış hata ayıklama özelliklerine bakın.

Belirli bir modül yapılandırmasının etkin olduğu GKI çekirdeği arasındaki uyumsuz ABI'leri nasıl çözebilirim?

GKI çekirdeği ile modül yapılandırması arasındaki uyumsuz ABI'ler, örtülü bir modül yapılandırma bağımlılığını temsil eder; burada bir modülün etkinleştirilmesi, sonuçta ortaya çıkan çekirdek görüntüsüne bir ikili yapılandırmanın yerleştirilmesine neden olur. İleriye doğru bir yol belirlemek için Android çekirdek ekibine ( kernel-team@android.com ) ulaşın. Sembol listesi belirlendikten sonra Issue Tracker'da bir hata oluşturun ve değişikliği sembol listesine yükleyin.

Sahada Android 11 ve 12 ile başlatılan 5.4 çekirdeği çalıştıran GKI 1.0 uyumlu cihazlarım var. Hangi çekirdek yükseltme seçenekleri mevcut ve Android 12 ve 13'e yükseltme yaparken bu cihazları nasıl test edebilirim?

Başlatma ve yükseltme sürümleri için desteklenen çekirdek sürümlerinin listesi için uyumluluk matrisine bakın. İşte iki yükseltme örneği.

Örnek 1: Android 11 ile başlatılan ve android11-5.4 çekirdeğine ( GKI 1.0 ) sahip bir cihaza sahip bir kullanıcı, Android 12'ye yükseltme yaparken şu seçeneklerden herhangi birini seçebilir:

  • android12-5.10 GKI 2.0 çekirdeğine yükseltin (şiddetle tavsiye edilir).

  • android11-5.4 çekirdeğini koruyun.

  • android12-5.4 çekirdeğine yükseltin.

Örnek 2: Android 12 ile başlatılan ve android12-5.4 veya android12-5.10 çekirdeğine sahip bir cihaza sahip bir kullanıcı, Android 13'e yükseltme yaparken şu seçeneklerden herhangi birini seçebilir:

  • android13-5.10 veya android13-5.15 GKI 2.0 çekirdeğine yükseltin (şiddetle tavsiye edilir).

  • android12-5.4 GKI 1.0 çekirdeğini koruyun.

  • android12-5.10 GKI 2.0 çekirdeğini koruyun.

Özellikle Tiz uyumluluk testi için aşağıdakilerden birini yapmanızı öneririz:

  • İş ortağı çekirdeğini sertifikalı GKI 1.0 çekirdeğiyle ( android11-5.4 veya android12-5.4 ) değiştirin.

  • Seçiminize bağlı olarak sertifikalı GKI 2.0 çekirdeğiyle ( android12-5.10 , android13-5.10 veya android13-5.15 ) birlikte gönderin.

GKI 2.0 yapılarını Genel Çekirdek Görüntüsü (GKI) sürüm yapılarından indirebilirsiniz.