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, dondurulmuş ç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ılı bilgi için Sembol listelerini yönetme başlıklı makaleyi inceleyin.
Sabit bir çekirdekte tedarikçi modülleri tarafından kullanılan yapıları değiştirebilir miyim?
KMI arayüzünün bir parçası olan yapılar, dondurulmuş KMI'si olan ç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 yazılmasıyla ilgili yayın öncesi hata düzeltmelerini nasıl yönetebilirim?
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 sürüm başına GKI şartlarını zorunlu kılan Satıcı Test Paketi (VTS) testleri vardır. Örneğin, Android 12 VTS testleri arasında, önyükleme üstbilgisi v3 için ve 5.10 çekirdeği çalıştıran bir cihazda gerekli bölümlerin varlığını doğrulamak için testler bulunur.
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 tanımlamak üzere bir yapılandırma parçası kullanır.
ACK kod tabanının bir parçası olan örnekler arasında Cuttlefish ve DB845c bulunur.
Parçayı optimize etmek için yapılandırma seçeneklerinin bazılarını manuel olarak incelemekten kaçınmak mümkün değildir ancak çekirdek kaynaklarından scripts/diffconfig
, gki_defconfig
ve gki_defconfig+device.fragment
sonuçlarını karşılaştırmak için 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. Devam edecek yolu belirlemek için Android çekirdek ekibiyle (kernel-team@android.com) iletişime geçin. 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 matrisini inceleyin. Aşağıda iki yükseltme örneği verilmiştir:
1. Örnek: android11-5.4
çekirdeği (GKI 1.0) ile Android 11 yüklü bir cihazı olan kullanıcılar, Android 12'ye yükseltme yaparken aşağıdaki 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ükseltme yapın.
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
veyaandroid13-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
veyaandroid12-5.4
) değiştirin.Seçiminize bağlı olarak sertifikalı GKI 2.0 çekirdeği (
android12-5.10
,android13-5.10
veyaandroid13-5.15
) ile birlikte gönderilir.
GKI 2.0 derlemelerini Genel Çekirdek Görüntüsü (GKI) sürüm derlemelerinden indirebilirsiniz.