Bu kılavuzda, geliştirme için özel Pixel çekirdeğinin nasıl indirileceği, derleneceği ve yenileneceği ile ilgili adım adım talimatlar sağlanmaktadır. GKI nedeniyle, çekirdek artık Android platformu derlemesinden
bağımsız olarak güncellenebilir. Bu adımlar yalnızca Pixel 6 ve sonraki cihaz cihazlar için geçerlidir. Bunun nedeni, Pixel 5 ve önceki model cihazların vendor
bölümündeki çekirdek modüllerinin güncellenmesini gerektirmesidir. Bu, cihazlar için Android platformu derlemesine bağlıdır. GKI Desteklenen Pixel Kernel dalları tablosu, GKI tarafından desteklenen her Pixel cihaz için çekirdek deposu manifest dalını içerir. Pixel 5 ve önceki çekirdek manifest dalları için Eski Pixel Kernels bölümüne bakın.
GKI tarafından desteklenen Pixel çekirdek dalları
Cihaz | AOSP ağacındaki ikili yol | Kod deposu dalları | GKI Çekirdeği |
---|---|---|---|
Pixel 8a (akita) | cihaz/google/akita-çekirdek | android-gs-akita-5.15-android14-qpr3 | android14-5.15 |
Pixel 8 (shiba) Pixel 8 Pro (sibirya kurt kuşu) |
cihaz/google/shusky-çekirdek | android-gs-shusky-5.15-android14-qpr3 | android14-5.15 |
Pixel Fold (felix) | cihaz/google/felix-çekirdek | android-gs-felix-5.10-android14-qpr3 | android13-5.10 |
Pixel Tablet (tangorpro) | cihaz/google/tangorpro-çekirdek | android-gs-tangorpro-5.10-android14-qpr3 | android13-5.10 |
Pixel 7a (vaşak) | device/google/lynx-çekirdek | android-gs-lynx-5.10-android14-qpr3 | android13-5.10 |
Pixel 7 (panter) Pixel 7 Pro (çita) |
cihaz/google/pantah-çekirdek | android-gs-pantah-5.10-android14-qpr3 | android13-5.10 |
Pixel 6a (bluejay) | cihaz/google/bluejay-çekirdek | android-gs-bluejay-5.10-android14-qpr3 | android13-5.10 |
Pixel 6 (oriole) Pixel 6 Pro (kuzgun) |
device/google/raviole-çekirdek | android-gs-raviole-5.10-android14-qpr3 | android13-5.10 |
Fabrika tarafından desteklenen çekirdeklere ek olarak Pixel 6 ve 6 Pro cihazlar, GKI geliştirme amacıyla yalnızca Desteklenen Pixel 6/6 Pro Android Platformu ve Kernel Kombinasyonları tablosunda yer alan Android Ortak çekirdek dallarında desteklenir. Android platformu HAL'leri ile Pixel çekirdek sürücüleri arasındaki satıcı UAPI farklılıkları nedeniyle, tabloda desteklenen derleme kombinasyonları sağlanmaktadır.
Desteklenen Pixel 6/6 Pro Android platformu ve çekirdek kombinasyonları
Piksel Kernel Manifest Dalı | GKI Şubesi | Android Platformu Derlemesi | aosp-main desteği var mı? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (sürüm 6.8) | AP1A.240505.004 (11583682) | Evet |
android14-gs-pixel-6.1 | android14-6.1 | AP1A.240505.004 (11583682) | Evet |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | Hayır |
Pixel cihazınızı hazırlayın
Aşağıdaki akış grafiğinde, Pixel 6 ve sonraki model cihazlarda çekirdeği güncelleme süreci açıklanmaktadır:
flash.android.com'u kullanarak cihazı yanıp söndür
- flash.android.com adresine gidin.
- Desteklenen Android Platformu ve Kernel kombinasyonlarına dayalı olarak Android derlemesini seçin.
- Aşağıdaki seçenekleri belirleyin:
- Cihazı Temizle
- Tüm Bölümleri Flash'ı Zorunlu Kıl
- Doğrulamayı Devre Dışı Bırak
- Cihaza yüklemek için Derlemeyi yükle düğmesine basın.
Çekirdeği indirin ve derleyin
Çekirdek deposunu senkronize etme
Çekirdek kaynak kodunu indirmek için aşağıdaki komutları çalıştırın. Pixel için Desteklenen Pixel 6/6 Pro Android Platformu ve Kernel Kombinasyonları tablosuna bakın KERNEL_MANIFEST_BRANCH.
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
Tedarikçi firma RAM'ini güncelleme
Çekirdek deposundaki vendor_ramdisk-DEVICE.img
dosyasını, cihazda yüklenen Android platformu derlemesiyle eşleşecek şekilde güncelleyin. Takip edebileceğiniz birkaç seçenek var.
1. Seçenek) Pixel fabrika görüntüsünden tedarikçi firma ramdisk görüntüsünü çıkarın.
Cihazınız için desteklenen fabrika imajını https://developers.google.com/android/images adresinden indirin.
vendor_boot.img
öğesini çıkartın:- Aşağıdaki komutlarda örnek olarak Pixel 6 Pro AP1A.240505.004 kullanılır. ZIPfile adını, indirdiğiniz fabrika görüntüsünün dosya adıyla değiştirin.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
Satıcının RAM diskini almak için
vendor_boot.img
paketini açın.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
Çıkarılan
vendor-ramdisk-by-name/ramdisk_
dosyasını Pixel çekirdek deposuna kopyalayın.Cihaz DEVICE_RAMDISK_PATH Pixel 6 (oriole)
Pixel 6 Pro (kuzgun)önceden oluşturulmuş/boot-artifacts/ramdisk/tedarikçi_saglamdisk-oriole.img Pixel 6a (bluejay) özel/cihazlar/google/bluejay/tedarikçi_saglamdisk-bluejay.img cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \ KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
2. Seçenek) vendor_ramdisk
öğesini yerel olarak derlenmiş bir Android platform deposundan kopyalayın.
Cihaz | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (kuzgun) |
önceden oluşturulmuş/boot-artifacts/ramdisk/tedarikçi_saglamdisk-oriole.img |
Pixel 6a (bluejay) | özel/cihazlar/google/bluejay/tedarikçi_saglamdisk-bluejay.img |
cp ANDROID_ROOT/out/target/product/DEVICE/vendor_ramdisk-debug.img \
KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH/vendor_ramdisk-DEVICE.img
Çekirdek derleyin (Kleaf)
Android 13'te build.sh
komut dosyasının yerini Kleaf adlı yeni bir çekirdek derleme sistemi aldı. android13-5.15
ve sonraki sürümleri kullanan cihazlar için çekirdek, Kleaf kullanılarak oluşturulmalıdır.
android14
ve sonraki çekirdeklere sahip Pixel 6 ve 6 Pro'da Kleaf derleme komutunu çalıştırın:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
android13-5.15
çekirdekli Pixel 6 ve 6 Pro'da Kleaf derleme komutunu çalıştırın:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
Diğer tüm Pixel çekirdekleri için KERNEL_REPO_ROOT konumunda bulunan build_DEVICE.sh
komut dosyasını çalıştırın. Örneğin, android-gs-raviole-5.10-android14
dalında Pixel 6 çekirdeğini oluşturmak için şu komutu çalıştırırsınız:
build_slider.sh
Varsayılan olarak build_DEVICE.sh
komut dosyaları, derleme işlemini hızlandırmak için önceden oluşturulmuş GKI çekirdeğini kullanır. Çekirdek çekirdeğinde değişiklik yapmak istiyorsanız bunun yerine çekirdeği yerel kaynaklardan oluşturmak için ortam değişkenini BUILD_AOSP_KERNEL=1
olarak ayarlayın.
Çekirdek derleme sistemi ve derlemenin nasıl özelleştirileceği hakkında daha fazla bilgi için Kleaf - Bazel ile Android Çekirdekleri Derleme sayfasına bakın.
Çekirdek görüntülerini Flash
Not: Doğrulamayı devre dışı bırakmadıysanız özel çekirdeği yanıp söndürmeden önce bunu yapmanız gerekir. Bunun için şu komutu kullanabilirsiniz:fastboot oem disable-verification
UYARI: Bir platform derlemesinin üzerinde özel bir çekirdeği güncelliyorsanız yeni çekirdekle ilişkili bir güvenlik yaması düzeyi (SPL) düşürme işlemi varsa cihazınızı silmeniz gerekebilir. Bu işlem tüm kişisel verilerinizi siler. Silmeden önce verilerinizi yedeklediğinizden emin olun.fastboot -w
Çekirdek görüntülerini yüklemek üzere cihazınız için listelenen her çekirdek bölümünde fastboot flash
komutunu çalıştırın. Dinamik bölümler için yanıp sönmeden önce fastbootd
modunda yeniden başlatmanız gerekir.
Cihaz | Çekirdek Bölümleri |
---|---|
Pixel 6
(oriole) Pixel 6 Pro (kuzgun) Pixel 6a (bluejay) |
önyükleme dtbo vendor_boot vendor_dlkm (dinamik bölüm) |
Pixel 8 (shiba) Pixel 8 Pro (husky) Pixel Kat (felix) Pixel Tablet (tangorpro) Pixel 7a (lynx) Pixel 7 (panter) Pixel 7 Pro (çita) |
başlatma dtbo vendor_kernel_boot vendor_dlkm (dinamik bölüm) system_dlkm (dinamik bölüm) |
Aşağıda, android-mainline
cihazında Pixel 6 için yanıp sönen komutlar verilmiştir:
fastboot flash boot out/slider/dist/boot.img
fastboot flash dtbo out/slider/dist/dtbo.img
fastboot flash vendor_boot out/slider/dist/vendor_boot.img
fastboot reboot fastboot
fastboot flash vendor_dlkm out/slider/dist/vendor_dlkm.img
Çekirdek görüntüleri DIST_DIR içinde bulunabilir.
Çekirdek dalı | DIST_DIR |
---|---|
sürüm 5.10 | out/mixed/dist |
sürüm 5.15 ve sonraki sürümler | out/DEVICE/dist |
Not: Seri donanım anahtarınız varsa ve seri günlüklerini etkinleştirmek istiyorsanız komut şu şekildedir:Ana makineden bağlanmaya yönelik örnek komut:fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
Fabrika imajlarını geri yükleme
Cihazınızı fabrika görüntülerine geri yüklemek için flash.android.com adresini kullanabilirsiniz.
Eski Pixel çekirdekleri
Eski Pixel çekirdek dalları tablosunda Pixel 5 ve önceki modeller için çekirdek deposu dalları verilmiştir. Bunlar, GKI tarafından desteklenmeyen cihazlardır.
Eski Pixel çekirdek dalları
Cihaz | AOSP ağacındaki ikili yol | Kod deposu dalları |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (brezon) Pixel 5 (kırmızı) |
cihaz/google/redbull-çekirdek | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (güneş balığı) | cihaz/google/güneş balığı-çekirdek | android-msm-güneş-balığı-4.14-android13-qpr3 |
Pixel 4 (alev) Pixel 4 XL (mercan) |
cihaz/google/mercan-çekirdek | android-msm-mercan-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (bonito) |
cihaz/google/bonito-çekirdek | android-msm-bonito-4.9-android12L |
Pixel 3 (mavi çizgi) Pixel 3 XL (çapraz çizgili) |
cihaz/google/çapraz-çekirdek | android-msm-crosshatch-4.9-android12 |
Pixel 2 (duvar gözü) Pixel 2 XL (taimen) |
cihaz/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (yelken balığı) Pixel XL (marlin) |
cihaz/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |