Pixel çekirdekleri oluşturun

Bu kılavuz, geliştirme için özel bir Pixel çekirdeğinin nasıl indirileceği, derleneceği ve flaşlanacağı konusunda adım adım talimatlar sağlar. GKI sayesinde artık çekirdeği Android platformu yapısından bağımsız olarak güncellemek mümkün. Bu adımlar yalnızca Pixel 6 ve sonraki cihazlar için geçerlidir. Bunun nedeni, Pixel 5 ve önceki cihazların, vendor bölümündeki çekirdek modüllerinin güncellenmesini gerektirmesidir; bu, söz konusu cihazların Android platformu yapısına bağlıdır. GKI Destekli Piksel Çekirdek dalları tablosu, GKI destekli her Pixel cihazı için çekirdek veri havuzu bildirim dalını içerir. Pixel 5 ve önceki çekirdek bildirim dalları için Eski Piksel Çekirdekleri bölümüne bakın.

GKI destekli Pixel çekirdek dalları
Cihaz AOSP ağacındaki ikili yol Depo şubeleri GKI Çekirdeği
Piksel 8 (shiba)
Pixel 8 Pro (boğuk)
cihaz/google/shusky-çekirdeği android-gs-shusky-5.15-android14-d1 android14-5.15
Piksel Katlama (felix) cihaz/google/felix-çekirdeği android-gs-felix-5.10-android14 android13-5.10
Piksel Tablet (tangorpro) cihaz/google/tangorpro-çekirdek android-gs-tangorpro-5.10-android14 android13-5.10
Piksel 7a (vaşak) cihaz/google/lynx-çekirdeği android-gs-lynx-5.10-android14 android13-5.10
Piksel 7 (panter)
Pixel 7 Pro (çita)
cihaz/google/pantah-çekirdeği android-gs-pantah-5.10-android14 android13-5.10
Piksel 6a (mavi alakarga) cihaz/google/bluejay-çekirdeği android-gs-bluejay-5.10-android14 android13-5.10
Piksel 6 (sarıya)
Pixel 6 Pro (kuzgun)
cihaz/google/raviole-çekirdeği android-gs-raviole-5.10-android14 android13-5.10

Fabrikada desteklenen çekirdeklere ek olarak Pixel 6 ve 6 Pro cihazları, yalnızca Desteklenen Pixel 6/6 Pro Android Platformu ve Çekirdek Kombinasyonları tablosunda yer alan Android Common çekirdek dallarında GKI geliştirme amacıyla desteklenir. Android platformu HAL'leri ile Pixel çekirdek sürücüleri arasındaki satıcı UAPI farklılıkları nedeniyle, tabloda desteklenen yapı kombinasyonları sunulmaktadır.

Desteklenen Pixel 6/6 Pro Android platformu ve çekirdek kombinasyonları
Piksel Çekirdek Bildirim Şubesi GKI Şubesi Android Platformu Oluşturma aosp-main desteği?
gs-android-gs-raviole-ana hat android-ana hat ( v6.7 etiketi ) UP1A.231005.007.A1 (10762838) Evet
android14-gs-piksel-6.1 android14-6.1 UP1A.231005.007.A1 (10762838) Evet
gs-android13-gs-raviole-5.15 android13-5.15 TQ1A.230205.002 (9471150) HAYIR

Pixel cihazınızı hazırlayın

Aşağıdaki akış şeması, Pixel 6 ve sonraki sürümlere sahip cihazlarda çekirdeğin güncellenmesi sürecini açıklamaktadır:

**Şekil 1.** Çekirdek Güncelleme Akış Şeması

Flash.android.com'u kullanarak cihazı flaşlayın

  1. flash.android.com'a gidin
  2. Desteklenen Android Platformu ve Çekirdek kombinasyonlarına göre Android yapısını seçin.
  3. Aşağıdaki seçenekleri seçin:
    • Cihazı Sil
    • Tüm Bölümleri Flash'a Zorla
    • Doğrulamayı Devre Dışı Bırak
  4. Cihazı flaşlamak için Kurulumu yükle düğmesine basın.

**Şekil 2.** Flash İstasyonu Örneği

Çekirdeği indirin ve derleyin

Çekirdek deposunu senkronize edin

Çekirdek kaynak kodunu indirmek için aşağıdaki komutları çalıştırın. Pixel KERNEL_MANIFEST_BRANCH için Desteklenen Pixel 6/6 Pro Android Platformu ve Çekirdek Kombinasyonları tablosuna bakın.

repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags

Satıcının ramdiskini güncelleyin

Çekirdek deposundaki vendor_ramdisk- DEVICE .img dosyasını, cihazda yüklü olan Android platformu yapısıyla eşleşecek şekilde güncelleyin. Takip edebileceğiniz birkaç seçenek var.

Seçenek 1) Satıcının ramdisk görüntüsünü Pixel fabrika görüntüsünden çıkarın.
  1. Cihazınız için desteklenen fabrika görüntüsünü https://developers.google.com/android/images adresinden indirin.

  2. vendor_boot.img dosyasını çıkartın:

    • Aşağıdaki komutlarda örnek olarak Pixel 6 Pro UP1A.231005.007.a1 kullanılmıştır. Zip dosyası adını, indirdiğiniz fabrika görüntüsünün dosya adıyla değiştirin.
      unzip raven-up1a.231005.007.a1-factory-5d927f3e.zip
    
      cd raven-up1a.231005.007.a1
    
      unzip image-raven-up1a.231005.007.a1.zip vendor_boot.img
    
  3. Satıcının ramdisk'ini edinmek için vendor_boot.img açın.

      KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \
          --out vendor_boot_out
    
  4. Çıkarılan ramdisk_ dosyasını Pixel çekirdek deposuna kopyalayın.

    Cihaz DEVICE_RAMDISK_PATH
    Piksel 6 (sarıya)
    Pixel 6 Pro (kuzgun)
    önceden oluşturulmuş yapılar/önyükleme-artifacts/ramdisks/vendor_ramdisk- oriole.img
    Piksel 6a (mavi alakarga) özel/devices/google/bluejay/vendor_ramdisk- bluejay.img
      cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \
          KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
    
Seçenek 2) vendor_ramdisk yerel olarak oluşturulmuş bir Android platformu deposundan kopyalayın.
Cihaz DEVICE_RAMDISK_PATH
Piksel 6 (sarıya)
Pixel 6 Pro (kuzgun)
önceden oluşturulmuş yapılar/önyükleme-artifacts/ramdisks/vendor_ramdisk- oriole.img
Piksel 6a (mavi alakarga) özel/devices/google/bluejay/vendor_ramdisk- bluejay.img
cp ANDROID_ROOT/out/target/product/DEVICE/vendor_ramdisk-debug.img \
   KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH/vendor_ramdisk-DEVICE.img

Çekirdeği derleyin (Kleaf)

Android 13'te build.sh betiğinin yerini Kleaf adlı yeni bir çekirdek derleme sistemi aldı. android13-5.15 ve üzerini kullanan cihazlar için çekirdek, Kleaf kullanılarak oluşturulmalıdır.

android14 ve üzeri çekirdeklere sahip Pixel 6 ve 6 Pro için Kleaf build 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 için Kleaf build 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 betiğini çalıştırın. Örneğin, android-gs-raviole-5.10-android14 dalında Pixel 6 çekirdeği oluşturmak için şu komutu çalıştırırsınız:

build_slider.sh

build_ DEVICE .sh komut dosyaları, derleme sürecini hızlandırmak için varsayılan olarak önceden oluşturulmuş GKI çekirdeğini kullanır. Çekirdek çekirdeği değiştirmek istiyorsanız, çekirdeği yerel kaynaklardan oluşturmak için BUILD_AOSP_KERNEL=1 ortam değişkenini ayarlayın.

Çekirdek yapı sistemi ve yapının nasıl özelleştirileceği hakkında daha fazla ayrıntı için Kleaf Dokümantasyonuna bakın.

Çekirdek resimlerini flaşla

Not: Doğrulamayı devre dışı bırakmadıysanız, özel çekirdeği flashlamadan önce bunu yapmanız gerekir. İşte bunu yapacak komut:
fastboot oem disable-verification
UYARI: Bir platform yapısının üzerinde özel bir çekirdeğin flaşını yapıyorsanız, yeni çekirdekle ilişkili bir güvenlik yaması düzeyi (SPL) sürüm düşürmesi varsa cihazınızı silmeniz gerekebilir. Bu işlem tüm kişisel verilerinizi siler. Silmeden önce verilerinizi yedeklemeyi unutmayın.
fastboot -w

Çekirdek görüntülerini flaşlamak için, cihazınız için listelenen her çekirdek bölümü için fastboot flash komutunu çalıştırın. Dinamik bölümler için, yanıp sönmeden önce fastbootd moduna yeniden başlatmanız gerekir.

Cihaz Çekirdek Bölümleri
Piksel 6 (sarıya)
Pixel 6 Pro (kuzgun)
Piksel 6a (mavi alakarga)
bot
dtbo
satıcı_önyükleme
satıcı_dlkm (dinamik bölüm)
Piksel 8 (shiba)
Pixel 8 Pro (boğuk)
Piksel Katlama (felix)
Piksel Tablet (tangorpro)
Piksel 7a (vaşak)
Piksel 7 (panter)
Pixel 7 Pro (çita)
bot
dtbo
satıcı_kernel_boot
satıcı_dlkm (dinamik bölüm)
system_dlkm (dinamik bölüm)

android-mainline Pixel 6 için yanıp sönen komutlar şunlardır:

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 dizininde bulunabilir.

Çekirdek dalı DIST_DIR
v5.10 out/mixed/dist
v5.15 ve üzeri out/ DEVICE /dist
Not: Seri bir donanım kilidiniz varsa ve seri günlükleri etkinleştirmek istiyorsanız komut şu şekildedir:
fastboot oem uart enable
fastboot oem uart config 3000000
Ana bilgisayardan bağlanmak için örnek komut:
screen -fn /dev/ttyUSB* 3000000

Fabrika görüntülerini geri yükleyin

Cihazınızı fabrika görüntülerine geri döndürmek için flash.android.com adresini kullanabilirsiniz.

Eski Pixel çekirdekleri

Referans olarak eski Pixel çekirdek dalları tablosu, Pixel 5 ve önceki cihazlar için çekirdek deposu dallarını sağlar. Bunlar GKI destekli olmayan cihazlardır.

Eski Pixel çekirdek dalları
Cihaz AOSP ağacındaki ikili yol Depo şubeleri
Piksel 5a (barbet)
Pixel 4a (5G) (böğürtlen)
Piksel 5 (kırmızı yüzgeçli)
cihaz/google/redbull-çekirdeği android-msm-redbull-4.19-android14
Piksel 4a (güneş balığı) cihaz/google/sunfish-çekirdeği android-msm-sunfish-4.14-android13-qpr3
Piksel 4 (alev)
Pixel 4 XL (mercan)
cihaz/google/mercan çekirdeği android-msm-mercan-4.14-android13
Piksel 3a (sargo)
Pixel 3a XL (palamut)
cihaz/google/bonito-çekirdek android-msm-bonito-4.9-android12L
Piksel 3 (mavi çizgi)
Pixel 3 XL (çapraz tarama)
cihaz/google/çapraz tarama çekirdeği android-msm-crosshatch-4.9-android12
Piksel 2 (duvar gözü)
Pixel 2 XL (tamamen)
cihaz/google/wahoo-çekirdek android-msm-wahoo-4.4-android10-qpr3
Piksel (yelken balığı)
Piksel XL (marlin)
cihaz/google/marlin-çekirdeği android-msm-marlin-3.18-pie-qpr2