Pixel çekirdekleri oluşturma

Bu kılavuzda indirme, derleme ve özel bir Pixel çekirdeğinin yanıp sönmesini sağlar. GKI sayesinde artık çekirdeği Android platformu derlemesinden bağımsız olarak güncelleyin. Bu adımlar yalnızca Pixel 6 ve sonraki cihazlarda geçerlidir. Bunun nedeni Pixel 5 ve Daha eski cihazlar, vendor bölümündeki çekirdek modüllerinin güncellenmesini gerektiriyor. bu cihazlar için tasarlanan Android platformuna bağlıdır. GKI Desteklenen Pixel Kernel dalları tablosunda şunlar yer alır: GKI tarafından desteklenen her Pixel cihaz için çekirdek deposu manifest dalı. Referans Pixel 5 ve Pixel 5 için Eski Pixel Kernels bölümü önceki çekirdek manifest dalları için geçerlidir.

GKI tarafından desteklenen Pixel çekirdek dalları
Cihaz AOSP ağacındaki ikili yol Kod deposu dalları GKI Çekirdeği
Pixel 9 Pro Fold (kuyruklu yıldız) cihaz/google/comet-çekirdek android-gs-comet-6.1-android14-qpr3-d1 android14-6.1

Pixel 9 (kayıp)
Pixel 9 Pro (caiman)
Pixel 9 Pro XL (komodo) | device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | android14-6.1 Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14-5.15 Pixel 8 (shiba)
Pixel 8 Pro (sibirya kurt) | device/google/shusky-çekirdek | android-gs-shusky-5.15-android14-qpr3 | android14-5.15 Pixel Fold (felix) | device/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | android13-5.10 Pixel Tablet (tangorpro) | device/google/tangorpro-çekirdek | android-gs-tangorpro-5.10-android14-qpr3 | android13-5.10 Pixel 7a (vaşak) | device/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | android13-5.10 Pixel 7 (panter)
Pixel 7 Pro (çita) | device/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | android13-5.10 Pixel 6a (bluejay) | device/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

Pixel 6 ve 6 Pro cihazlar, fabrika tarafından desteklenen çekirdeklere ek olarak yalnızca Android Common çekirdeğinde GKI geliştirme amaçları için desteklenir Desteklenen Pixel 6/6 Pro Android Platformu ve Kernel Kombinasyonlar tablosunu kullanmanız gerekir. Satıcı UAPI'si farklılıkları nedeniyle Android platform HAL'leri ile Pixel çekirdek sürücüleri arasında bağlantı kurmak için tablo, desteklenen derleme kombinasyonlarını inceleyin.

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'de çekirdeği güncelleme süreci açıklanmaktadır 6 ve sonraki sürümlerin yüklü olduğu cihazlar:

**Şekil 1.** Kernel Güncelleme Akış Grafiği

flash.android.com'u kullanarak cihazı yanıp söndür

  1. flash.android.com adresine gidin.
  2. Desteklenen Android Platformu ve Kernel'ine dayalı olarak Android derlemesini seçin: kombinasyonlar arasından bir liste oluşturabilirsiniz.
  3. Aşağıdaki seçenekleri belirleyin:
    • Cihazı Temizle
    • Tüm Bölümleri Flash'ı Zorunlu Kıl
    • Doğrulamayı Devre Dışı Bırak
  4. Cihaza yüklemek için Derlemeyi yükle düğmesine basın.

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

Çekirdeği indirin ve derleyin

Çekirdek deposunu senkronize etme

Çekirdek kaynak kodunu indirmek için aşağıdaki komutları çalıştırın. Daha fazla bilgi için Desteklenen Pixel 6/6 Pro Android Platformu ve Kernel Pixel için Kombinasyonlar tablosu 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

vendor_ramdisk-DEVICE.img dosyasını eşleşen Android platformu derlemesi ile eşleşen olanak tanır. 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.
  1. Cihazınız için desteklenen fabrika imajını şuradan indirin: https://developers.google.com/android/images adresine gidin.

  2. vendor_boot.img öğesini çıkartın:

    • Aşağıdaki komutlar Pixel 6 Pro'yu kullanır AP1A.240505.004. indirdiğiniz fabrika görüntüsünün dosya adını içeren ZIPfile adı.
      unzip raven-ap1a.240505.004-factory-9d783215.zip
    
      cd raven-ap1a.240505.004
    
      unzip image-raven-ap1a.240505.004.zip vendor_boot.img
    
  3. 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
    
  4. Çı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 yeni bir çekirdek derleme sistemi aldı adı Kleaf'tır. android13-5.15 ve sonraki sürümleri kullanan cihazlarda Kleaf kullanılarak oluşturulmalıdır.

android14 ve sonraki çekirdeklere sahip Pixel 6 ve 6 Pro'da Kleaf derlemesini çalıştırın komut:

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 derlemesini çalıştırın komut:

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, örnek olarak, dalda Pixel 6'nın çekirdeğini oluşturabilirsiniz. android-gs-raviole-5.10-android14 şu komutu çalıştırırsınız:

build_slider.sh

Varsayılan olarak, build_DEVICE.sh komut dosyaları GKI çekirdeği çekirdeğinin kullanıldığını inceleyebilirsiniz. Etikette değişiklik yapmak isterseniz Ardından, yeni bir sürüm oluşturmak için BUILD_AOSP_KERNEL=1 çekirdeği yerel kaynaklardan alınır.

Çekirdek derleme sistemi ve derlemenin nasıl özelleştirileceği hakkında daha fazla bilgi için Kleaf - Bazel ile Android Kernels Derleme başlıklı makaleyi inceleyin.

Çekirdek görüntülerini Flash

Not: Doğrulamayı devre dışı bırakmadıysanız bunu yapmanız gerekir . Bu işlemi gerçekleştirmek için gereken komutu aşağıda bulabilirsiniz:
fastboot oem disable-verification
.
'nı inceleyin.
UYARI: Üstünde bir özel çekirdeği yüklüyorsanız bir güvenlik sistemi varsa cihazınızı temizlemeniz gerekebilir. Yeni çekirdekle ilişkili yama düzeyi (SPL) düşürme işlemi. Bu işlem tüm kişisel verilerinizi siler. Verilerinizi yedeklediğinizden emin olun kullanın.
fastboot -w

Çekirdek görüntülerini yüklemek için her bir çekirdekte fastboot flash komutunu çalıştırın bölümü için desteklenmektedir. Dinamik bölümler için, yeniden başlatma yanıp sönmeden önce fastbootd moduna getirin.

Cihaz Çekirdek Bölümleri
Pixel 6 (oriole)
Pixel 6 Pro (kuzgun)
Pixel 6a (bluejay)
önyükleme
dtbo
vendor_boot
tedarikçi_dlkm (dinamik bölüm)
Pixel 8 (shiba)
Pixel 8 Pro (sibirya kurtsi)
Pixel Katla (felix)
Pixel Tabletler (tangorpro)
Pixel 7a (lynx)
Pixel 7 (panter)
Pixel 7 Pro (çita)
başlatma
dtbo
tedarikçi_kernel_boot
tedarikçi_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 bağlantı anahtarını etkinleştirmek istiyorsanız komutu şu şekildedir:
fastboot oem uart enable
fastboot oem uart config 3000000
Ana makineden bağlanmak için örnek komut:
screen -fn /dev/ttyUSB* 3000000

Fabrika imajlarını geri yükleme

Cihazınızı fabrika görüntülerine geri yüklemek için şunları kullanabilirsiniz: flash.android.com

Eski Pixel çekirdekleri

Eski Pixel çekirdek dalları tablosunda Pixel 5 ve önceki modeller için çekirdek deposu dalları yer almaktadır. 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