AOSP yaygın çekirdekleri (Android ortak çekirdekleri veya ACK'leri olarak da bilinir) kernel.org çekirdeklerini ve yama içerir. veya ana hat ile birleştirilmemiş Android topluluğunun ilgisini çeken Uzun Vadeli Desteklenen (LTS) çekirdekler. Bu yamalar şunları içerebilir:
- Android için gereken yukarı akış işlevleri ve işe yarayabilecek çok sayıda işlev özellikler
- Android cihazlar için hazır ancak henüz geliştirme aşamasında olan özellikler
- Diğer ekosistem iş ortaklarının faydalı olduğu tedarikçi/OEM özellikleri
android-mainline
, Android özelliklerinin birincil geliştirme dalıdır. Linux
Linus Torvalds bir yayın paylaştığında ana hat android-mainline
adayı serbest bırakmalısınız. 2019'dan önce Android'in yaygın çekirdekleri
yakın zamanda bildirilen LTS çekirdeği klonlanıp
Android'e özel yamalar. Bu süreç 2019'da yeni Android'i dallandırmak üzere değiştirildi.
android-mainline
ortak çekirdek. Bu yeni model,
aynı sonucu alarak bağlantı noktasını yönlendirme ve Android yamalarını test etme çabası
aşamalı olarak. android-mainline
, önemli düzeyde sürekli testlere tabi tutuluyor.
modeli, çekirdeğin yayınlandığı günden itibaren yüksek kaliteli olmasını sağlar.
Yeni bir LTS yukarı yayın bildirildiğinde karşılık gelen ortak çekirdek dallara ayrılır.
başlangıç fiyatı: android-mainline
. Böylece iş ortakları, projenin başlamadan önce
LTS sürümünün beyanını (android-mainline
adresinde birleştirme) gerçekleştireceğiz.
yeni bir ortak çekirdek dalı oluşturulduğunda, iş ortakları birleştirme işlemini kolayca değiştirebilir.
yeni dala gönderin.
Diğer yaygın çekirdek dalları, ilişkili oldukları
LTS çekirdeği.
Bu birleştirme işlemleri genellikle LTS sürümü yayınlandıktan hemen sonra yapılır. Örneğin,
Linux 6.1.75 yayınlandığında bu sürüm, 6.1 ortak
çekirdek (android14-6.1
). İş ortaklarının
LTS ve Android'e özgü hata düzeltmeleriyle ilgili son gelişmelerden haberdar olmak için çekirdeklerini güncelleme.
ACK KMI çekirdek dalı
GKI çekirdekleri kararlı bir Kernel Modülü Arayüzüne sahiptir. KMI, benzersiz bir deneyim
sürümü ve Android platformu sürümü tarafından tanımlandığından
dallar adlandırıldı
ANDROID_RELEASE
-KERNEL_VERSION
.
Örneğin, 6.1 GKI
Android 14 çekirdeği android14-6.1
olarak adlandırılmıştır. Örneğin,
Android 15 (AOSP deneysel), GKI çekirdeği android15-6.6
tanıttık.
Çekirdekleri öne çıkarma ve kullanıma sunma
Android 15'ten (AOSP deneysel) önceki en yeni üç çekirdekten herhangi biri
nasıl kullanılabileceğini açıklayacağım. Başlangıç
Android 15 (AOSP deneysel), en yeni iki çekirdek sürümü
bu işlemden ibaret değildir. Projenin lansman çekirdeklerini
Android 15'in (AOSP deneysel sürümü) android15-6.6
ve android14-6.1
sürümleri vardır.
Platformu güncellerken çekirdek yükseltmelerine gerek olmadığından
bir platform sürümü için en son özelliklere sahip olmayan çekirdekler,
lansman için
kullanılmaya devam eder. Bu nedenle,
program yöneticisi olarak
Android 14 (ör. android14-6.1
) şu cihazlarda kullanılabilir:
yeni sürüme geçirildikten sonra dahi
Android 15 (AOSP deneysel).
Android platform sürümü | Çekirdekleri başlat | Özellik çekirdekleri |
---|---|---|
Android 15 (AOSP deneysel sürümü) (2024) |
android15-6.6
android14-6.1
|
android15-6.6
|
Android 14 (2023) |
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.101
|
android14-6.1
android14-5.15
|
Android 13 (2022) |
android13-5.15
android13-5.10
android12-5.101
android12-5.41
android11-5.41
|
android13-5.15
android13-5.10
|
Android 12 (2021) |
android12-5.10
android12-5.4
android11-5.41
android-4.19-stable
|
android12-5.10
android12-5.4
|
Android 11 (2020) |
android11-5.4
android-4.19-stable
|
android11-5.4
android-4.19-stable
|
1 İlişkilendirilmiş BSP'de varsa ek kısıtlamalar geçerli olabilir. platform sürümü için güncellenmiştir. Daha genel olarak belirtmek gerekirse Android Sürüm numarası değeri hedef FCM sürümünü seçin. Görüntüleyin Tedarikçi Firma Arayüzü Nesnesi: çekirdek dallarını eşleştirme inceleyebilirsiniz. |
Ortak çekirdek hiyerarşisi
android-mainline'dan dalla
Ortak çekirdek hiyerarşisinin en üst düzeyi Şekil 1'de gösterilmiştir.
Şekil 1. android-mainline çekirdeğinden yaygın çekirdekler oluşturma
Yeni Android ortak çekirdeğinin android14-6.1
2022 yılında android-mainline
. 2023'te bir sonraki LTS bildirildiğinde
android15-6.6
, android-mainline
alt kuruluş biriminden dallandı.
Şekil 1'de gösterildiği gibi, her çekirdek sürümü iki GKI çekirdeğinin temelini oluşturabilir.
Örneğin, android13-5.15
ve android14-5.15
olmak üzere iki v5.15 çekirdek
Her ikisi de ilgili platform sürümleri için özellik çekirdekleridir. Bu
5.10 için de geçerliydi; android12-5.10
, LTS şu tarihte oluşturulmuştur:
açıklandı ve çekirdekte android12-5.10
öğesinden android13-5.10
dallandı
özelliklerin geliştirilmesine olanak tanımak için 2021’in ilkbahar aylarında
Android 13. Android'i kullanmaya başlama
15 (AOSP deneysel) (2024), yalnızca
her çekirdek sürümü için bir yeni GKI çekirdeği (android15-6.1
çekirdeği yoktur).
ACK KMI dalı yaşam döngüsü
Bir ACK KMI dalının yaşam döngüsü aşağıdaki Şekil 2'de gösterilmiştir.
Şekil 2. 6.6 ACK KMI dalı yaşam döngüsü
Geliştirme sürecini ve dal yaşam döngüsünü netleştirmek için Şekil 2’de 6.6 için ACK KMI dalları.
Her ACK KMI şubesi, Şekil 2'de belirtilen üç aşamadan geçer: her dalda farklı renkler kullanabilirsiniz. Gösterildiği gibi LTS, 24 saate kadar düzenli olarak birleştirilir. önemli bir parçasıdır.
Geliştirme aşaması
ACK KMI şubesi, oluşturulduğunda geliştirme aşamasına girer (
dev) temsil eder ve bir sonraki Android cihazlar için özellik
oldukça önemlidir. Şekil 2'de, android15-6.6
değeri 6.6 olduğunda oluşturulmuştur
yeni yukarı yayın LTS çekirdeği olarak tanımlanmıştır.
Sabitleme aşaması
ACK KMI dalı özellik tamamlandı olarak bildirildiğinde stabilizasyon aşaması (Şekil 2'de kararlı olarak etiketlenir). İş ortağı özellikleri ve hata düzeltmeleri hâlâ kabul edilmektedir ancak KMI izleme, değişiklikleri algılamak için etkindir Bunlar arayüzü etkiler. Bu aşamada, KMI'yi bozan değişiklikler kabul edilir KMI tanımı da önceden tanımlanmış bir tempoda güncellenir (normalde her iki hafta). Bkz. Şunun için GKI'ya genel bakış: KMI izlemesiyle ilgili ayrıntılar.
KMI donduruldu safha
Yeni bir platform sürümü AOSP'ye aktarılmadan önce ACK KMI dalı dondurulur. ve dalın kullanım süresi boyunca donmuş olarak kalır. Yani hayır, Ciddi bir güvenlik sorunu tespit edilmediği sürece KMI'yi bozan değişiklikler kabul edilir azaltılması mümkün olmayan bir uygulamadır. KMI'den kaçınmak için kesintiler varsa LTS'den birleştirilmiş bazı yamalar değiştirilebilir veya Android cihazlar için gerekli değildir.
Bir ACK KMI şubesi dondurulduğunda hata düzeltmeleri ve iş ortağı özellikleri kabul edilebilir mevcut KMI ortak çekirdeği bozuk olmadığı sürece bunu yapabilirsiniz. KMI uzatılabilir mevcut KMI'yi oluşturan arayüzler olduğu sürece, dışa aktarılan yeni simgeler için etkilenmez. KMI'ya yeni arayüzler eklendiğinde, kararlı hale gelir ve gelecekteki değişikliklerden etkilenemeyecekleridir.
Örneğin, KMI arayüzü tarafından kullanılan bir yapıya alan ekleyen değişiklik arayüz tanımını değiştirdiğinden genel çekirdeğe izin verilmez:
struct foo {
int original_field1;
int original_field2;
int new_field; // Not allowed
};
int do_foo(struct foo &myarg)
{
do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);
Ancak, yeni bir işlev eklemek herhangi bir sorun teşkil etmez:
struct foo2 {
struct foo orig_foo;
int new_field;
};
int do_foo2(struct foo2 &myarg)
{
do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);
GKI çekirdeğinin kullanım ömrü boyunca kullanıcı alanı ile geriye dönük uyumluluk
çekirdeğin Android platformu için güvenli bir şekilde kullanılabilmesini sağlamak üzere
lansman için faydalı olabilir. Önceki sürümlerle sürekli test
uyumluluğun korunmasını sağlar. Dolayısıyla Şekil 2'de, android15-6.6
çekirdek, Android 15 (AOSP deneysel) ve sonraki sürümlere sahip cihazlar için kullanılabilir
cihazlar. Çünkü Android platformu sürümü
önceki sürümlerle de uyumlu olduğundan android14-6.1
çekirdeği kullanılabilir
.
KMI oluşturma numarası
Sabitleme aşamasında LTS birleştirmesi olursa veya bir güvenlik sorunu olursa ya da
KMI değiştiren yamanın kabul edilmesini gerektiren başka bir etkinlik gerçekleşirse
build.config.common
için kaydedilen KMI oluşturma numarası artırılır. İlgili içeriği oluşturmak için kullanılan
mevcut KMI oluşturma işlemi uname
komutu kullanılarak bulunabilir:
$ uname -r
6.6.30-android15-6-g86d10b30f51f
Platform sürümünden sonraki sayı KMI neslidir (bu örnekte 6
).
KMI oluşturma yöntemi değişirse çekirdek, tedarikçi modülleriyle uyumlu değildir. Bu nedenle, modüllerin yeniden oluşturulması ve eşzamanlı olarak güncellenir. KMI dondurulduktan sonra KMI oluşturma süreci değişiyor çok nadir olması bekleniyor.
Çekirdekler arasında uyumluluk
Aynı LTS ailesindeki çekirdekler arasındaki uyumluluk şartları: yeni GKI çekirdeklerinden başlayarak değişiyor.
GKI çekirdekleri
GKI çekirdekleri tüm Android platformlarıyla geriye dönük uyumluluk sağlar
çekirdek sürümünü destekleyen yeni bir sürüm kullanın. Buna ek olarak, Android platformu
sürümleri, önceki sürümlerdeki GKI çekirdekleriyle geriye dönük uyumludur. ODK
android14-6.1
çekirdeğini güvenle kullanabilir,
Android 14 (2023) yüklü cihazlarda
Android 15 (AOSP deneysel sürümü) (2024). Uyumluluk,
GKI çekirdekleri için desteklenen tüm sürümlerde sürekli VTS ve CTS testleri.
KMI stabildir, böylece çekirdeğin yeniden derlenmeye gerek kalmadan güncellenebilmesi sağlanır tedarikçi firma görüntüsündeki çekirdek modüllerinin de altını çizin.
KMI uyumluluğu, farklı GKI çekirdekleri arasında korunmaz. Dolayısıyla,
örneğin, android14-6.1
çekirdeği android15-6.6
ile değiştirilemez
çekirdeğine sahip bir sürümü çalıştırmalıdır.
GKI çekirdekleri yalnızca ilk ve sonraki sürümleri için desteklenir.
Eski sürümlerde desteklenmez. Yani
android15-6.6
çekirdeği, çalışan devics desteklenmemektedir
Android 14 (2023).
Uyumluluk matrisi
Bu tabloda, her Android cihazda desteklenen ve test edilen çekirdek sürümleri gösterilmektedir oldukça önemlidir.
Android platform sürümü | Yükseltme için desteklenen çekirdekler | Kullanıma sunma için desteklenen çekirdekler |
---|---|---|
Android 15 (AOSP deneysel sürümü) (2024) |
android15-6.6
|
android15-6.6
|
Android 14 (2023) |
android14-6.1
|
android14-6.1
|
Android 13 (2022) |
android13-5.15
|
android13-5.15
|
Android 12 (2021) |
android12-5.10
|
android-4.19-stable
|
Android 11 (2020) |
android11-5.4
|
android11-5.4
|
Destek ömürleri ve güvenlik yamaları
ACK'ler, yukarı akıştan LTS birleştirmeleri ve Android'e özel kodlar için hata düzeltmeleri alır. Bu düzeltmeler, Android ACK ile ilgili Güvenlik Bültenleri.
ACK'ler, karşılık gelen yukarı akış kararlı çekirdeğinden daha uzun süre desteklenebilir. kernel.org adresinde bulabilirsiniz. Böyle durumlarda Google bu belgede gösterilen kullanım ömrü sonuna (EOL) kadar uzatılmış destek sunar. bölümüne bakın. Çekirdekler EOLe geçirildiğinde ve bu uygulamaları çalıştıran cihazların güvenlik açığı olduğu kabul edilir.
Çekirdek 6.6'dan itibaren kararlı çekirdeklerin destek ömrü 4 yıl.
Aşağıdaki tabloda, desteklenen ACK'lerin kullanım ömrü gösterilmektedir:
ACK şubesi | Lansman tarihi |
Destek ömür boyu (yıl) |
Kullanım Ömrü Sonu |
---|---|---|---|
android-4.19-kararlı | 2018-10-22 | 6 | 2025-01-01 |
android11-5,4 | 2019-11-24 | 6 | 2026-01-01 |
android12-5,4 | 2019-11-24 | 6 | 2026-01-01 |
android12-5.10 | 2020-12-13 | 6 | 2027-07-01 |
android13-5.10 | 2020-12-13 | 6 | 2027-07-01 |
android13-5,15 | 2021-10-31 | 6 | 2028-07-01 |
android14-5.15 | 2021-10-31 | 6 | 2028-07-01 |
android14-6.1 | 2022-12-11 | 6 | 2029-07-01 |
android15-6,6 | 2023-10-29 | 4 | 2028-07-01 |
Yaygın çekirdek testi
Yaygın çekirdekler, aşağı akışa ek olarak çeşitli CI sistemleriyle test edilir. tedarikçiler tarafından gerçekleştirilen testler.
Linux Kernel İşlev Testi
Linux Kernel İşlevsel Testi (LKFT) kselftest, LTP, VTS ve CTS dahil olmak üzere çeşitli test paketlerini bir dizi fiziksel kol32 ve arm64 cihazı. Son test sonuçları bulunabilir burada bulabilirsiniz.
KernelCI testi
KernelCI derleme ve başlatma testleri Yaygın bir çekirdek dalına yeni bir yama uygulandığında başlatılır. Birkaç farklı panolarda test edilip başlatılıyor. Son açtıklarım Android çekirdekleri için sonuçlar bulunabilir burada bulabilirsiniz.
Android yayın öncesi ve yayın sonrası testi
Gönderme öncesi testleri, test sırasında karşılaşılabilecek hataların önüne geçmek Android'in yaygın çekirdekleri. Test sonucu özeti "Kontroller"de bulunabilir sekmesinde bulabilirsiniz.
Android yayın sonrası testi yapılır
Android ortak çekirdek dallarında yayınlanan yeni derlemelerde Girerek
ci.android.com'da kısmi dal adı olarak aosp_kernel
göreceksiniz.
sonuç mevcut. Örneğin, android-mainline
için sonuçlar bulunabilir
burada bulabilirsiniz. Belirli bir derlemeyi tıkladığınızda Test Results
sekmesinde test durumunu görürsünüz.
Android platform kaynağı ağacındaki test grubu kernel-presubmit
ile test-eşleme yoluyla tanımlanan testler, Android çekirdek dalları için ön gönderme olarak çalıştırılacaktır. Örneğin, test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING yapılandırmasında aşağıdaki yapılandırmanın gerçekleştirilmesi, Android ortak çekirdek kodu giriş işleminde vts_kernel_proc_file_api_test'i presbumit testi olarak etkinleştirir.
{
"kernel-presubmit": [
{
"name": "vts_kernel_proc_file_api_test"
}
]
}
0 günlük test
0 günlük test, yama bazında test gerçekleştirir . Çeşitli başlatma, işlevsel ve performans testleri yapıldığını varsayalım. Herkese açık gruba katıl cros-kernel-buildreports (cros-kernel-derleme raporları)
Test matrisi
Android ortak çekirdeği | Android Platformu sürümleri | Test Paketleri | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Santral | 15 | 14 | 13 | 12 | 11 | 10 | LKFT | KernelCI | Gönderme Öncesi | Gönderi Gönderme | sıfır gün | |
android-mainline
|
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android15-6.6
|
✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android14-6.1
|
✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android13-5.15
|
✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android12-5.10
|
✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android11-5.4
|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android-4.19-stable
|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Android'in yaygın kullanılan çekirdeklerine katkıda bulunun
Genel olarak, özellik geliştirme çalışmaları anahat Linux'ta yapılmalı, Android'in yaygın çekirdekleri. Yukarı akış geliştirme kesinlikle teşvik edilir ve söz konusu ACK'ye kolayca geri aktarılabilir duruma getirilebilir. dalmasını isteyin. Android Kernel Ekibi Android ekosistemine fayda sağlayacak geliştirme çalışmalarını desteklemekten memnuniyet duyuyoruz.
Yamaları Gerrit'e gönderme ve bu politikalara uygun şekilde katkıda bulunma kurallarına uygun olmalıdır.