Android çekirdeğiyle ilgili sık sorulan sorular

Bu belgede, Genel Çekirdek Görüntüsü (GKI) çekirdeği olarak da bilinen Android çekirdeği hakkında sık sorulan sorular yer almaktadır. GKI ve GKI çekirdek terminolojisi hakkında bilginiz yoksa Çekirdeğe genel bakış başlıklı makaleyi inceleyin.

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

Mevcut KMI'yı etkilemeyen değişiklikler, dondurulan çekirdeklere eklenebilir. Bu değişiklikler arasında dışa aktarılan yeni işlevler ve simge listesi girişleri yer alır. Ayrıntılar için Simge listelerini yönetme başlıklı makaleye bakın.

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

KMI arayüzünün parçası olan yapılar, dondurulmuş KMI'ye sahip çekirdeklerde değiştirilemez. KMI dondurulmadan önce bu yapılar değiştirilebilir.

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

KMI'yı etkilemeyen değişiklikler, Android'e özel yamalar bölümünde açıklandığı şekilde yapılabilir.

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

Çekirdek yapılandırması hakkında bilgi edinmek için gki_defconfig'de yapılan değişiklikler başlıklı makaleyi inceleyin.

Mevcut GKI modüllerinin üzerine yazma işlemleri için yukarı akış hata düzeltmelerini nasıl yapabilirim?

Android Ortak Çekirdeği (ACK)'ndeki bir sürücüye dayalı bir tedarikçi modülü oluşturursanız yayındaki ve ACK'deki hata düzeltmelerinin modülünüze dağıtılmasını sağlamak size aittir. Genel olarak, GKI çekirdeğini ve GKI modüllerini değişiklik yapmadan kullanmak sizin için en iyisidir. Böylece bu güncellemeler Google tarafından tutarlı bir şekilde sağlanır.

GKI'ya özgü testler var mı?

Sertifikalı bir GKI derlemesinin yüklü olduğunu doğrulayan ve ayrıca yayın başına GKI gereksinimlerini zorunlu kılan Tedarikçi Test Paketi (VTS) testleri vardır. Örneğin, başlatma başlığı v3 için Android 12 VTS testleri ve 5.10 çekirdeği çalıştıran bir cihazda gerekli bölümlerin varlığını doğrulamak için kullanılır.

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

GKI uyumlu birçok cihaz, tedarikçi modüllerini oluşturmak için gki_defconfig'e 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ürekkep balığı ve DB845c bulunur. Parçayı optimize etmek için yapılandırma seçeneklerini manuel olarak incelemekten kaçınmak mümkün değildir. Ancak çekirdek kaynaklarından alınan scripts/diffconfig, gki_defconfig ve gki_defconfig+device.fragment sonuçlarının karşılaştırılmasında yararlıdır.

modprobe'un - ve _ değerlerini eşdeğer olarak ele alması için geçici bir çözüm var mı?

modprobe man sayfasında şu açıklama yer alır: "modprobe, Linux çekirdeğine modül eklemek veya modülü çekirdekten kaldırmak için akıllıca çalışır: Kolaylık sağlamak amacıyla modül adlarında _ ve - arasında fark olmadığını unutmayın (otomatik alt çizgi dönüşümü yapılır)." GKI ekibi standart yayın öncesi kuralına uyar. Bu nedenle, tedarikçi firma araçları veya modül adlandırma kuralları bu uyumu dikkate almalıdır.

debugfs'yi dahili kullanım için nasıl etkinleştirebilirim?

debugfs'yi etkinleştirmeyle ilgili ayrıntılar için neden olduğu kesintiye yol açan yayın sonrası hata ayıklama özellikleri başlıklı makaleyi inceleyin.

Belirli bir modül yapılandırması etkinken GKI çekirdeği arasında eşleşmeyen ABI'leri nasıl çözebilirim?

GKI çekirdeği ile modül yapılandırması arasındaki uyuşmayan ABI'ler, bir modülün etkinleştirilmesinin, ortaya çıkan çekirdek resmine bir ikili yapılandırma yerleştirilmesine neden olduğu, gizli bir modül yapılandırma bağımlılığını temsil eder. İlerleme yolunu belirlemek için Android çekirdek ekibine (kernel-team@android.com) ulaşın. Simge listesi belirlendikten sonra Sorun Takip Aracı'nda bir hata kaydı oluşturun ve simge listesine bir değişiklik yükleyin.

Android 11 ve 12 ile kullanıma sunulan 5.4 çekirdeğini çalıştıran, GKI 1.0 uyumlu cihazlarım var. Hangi çekirdek yükseltme seçenekleri mevcuttur ve Android 12 ile 13'e yükseltme yaparken bu cihazları nasıl test edebilirim?

Lansman ve yükseltme sürümleri için desteklenen çekirdek sürümlerinin listesi için uyumluluk matrisine bakın. Aşağıda iki yükseltme örneği verilmiştir:

1. Örnek: Android 11'in yüklü olduğu android11-5.4 çekirdeği (GKI 1.0) yüklü bir cihaza sahip kullanıcılar, Android 12'ye geçerken şu seçeneklerden birini belirleyebilir:

  • android12-5.10 GKI 2.0 çekirdeğine yükseltin (özellikle önerilir).

  • android11-5.4 çekirdeğini koruyun.

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

2. örnek: android12-5.4 veya android12-5.10 çekirdeğiyle Android 12 yüklü bir cihazı olan kullanıcılar, Android 13'e yükseltme yaparken aşağıdaki seçeneklerden birini belirleyebilir:

  • android13-5.10 veya android13-5.15 GKI 2.0 çekirdeğine yükseltin (özellikle önerilir).

  • android12-5.4 GKI 1.0 çekirdeğini kullanmaya devam edin.

  • android12-5.10 GKI 2.0 çekirdeğini kullanmaya devam edin.

Özellikle Treble 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ği (android12-5.10, android13-5.10 veya android13-5.15) ile birlikte gönderilir.

GKI 2.0 derlemelerini Genel Çekirdek Görüntüsü (GKI) sürüm derlemelerinden indirebilirsiniz.