Bangun kernel Pixel

Panduan ini memberikan petunjuk langkah demi langkah tentang cara mengunduh, mengkompilasi, dan mem-flash kernel Pixel khusus untuk pengembangan. Karena GKI, sekarang dimungkinkan untuk mengupdate kernel secara independen dari platform Android build. Langkah-langkah ini hanya berlaku untuk perangkat Pixel 6 dan yang lebih baru. Hal ini karena Pixel 5 dan perangkat yang lebih lama memerlukan pembaruan modul kernel di partisi vendor , yang bergantung pada platform Android yang dibuat untuk perangkat tersebut. Tabel cabang Kernel Piksel yang Didukung GKI mencakup cabang manifes repositori kernel untuk setiap perangkat Piksel yang didukung GKI. Lihat bagian Kernel Piksel Lama untuk Pixel 5 dan cabang manifes kernel yang lebih lama.

GKI mendukung cabang kernel Pixel
Perangkat Jalur biner di pohon AOSP Cabang repositori Kernel GKI
Piksel 8 (shiba)
Pixel 8 Pro (serak)
perangkat/google/shusky-kernel android-gs-shusky-5.15-android14-d1 android14-5.15
Lipatan Piksel (felix) perangkat/google/felix-kernel android-gs-felix-5.10-android14 android13-5.10
Tablet Piksel (tangorpro) perangkat/google/tangorpro-kernel android-gs-tangorpro-5.10-android14 android13-5.10
Piksel 7a (lynx) perangkat/google/lynx-kernel android-gs-lynx-5.10-android14 android13-5.10
Piksel 7 (macan kumbang)
Piksel 7 Pro (cheetah)
perangkat/google/pantah-kernel android-gs-pantah-5.10-android14 android13-5.10
Piksel 6a (blue jay) perangkat/google/bluejay-kernel android-gs-bluejay-5.10-android14 android13-5.10
Piksel 6 (oriole)
Pixel 6 Pro (gagak)
perangkat/google/raviole-kernel android-gs-raviole-5.10-android14 android13-5.10

Selain kernel yang didukung pabrik, perangkat Pixel 6 dan 6 Pro hanya didukung untuk tujuan pengembangan GKI di cabang kernel Android Common yang disertakan dalam tabel Kombinasi Kernel dan Platform Android Pixel 6/6 Pro yang Didukung . Karena perbedaan UAPI vendor antara HAL platform Android dan driver kernel Pixel, tabel ini menyediakan kombinasi build yang didukung.

Mendukung platform Android Pixel 6/6 Pro dan kombinasi kernel
Cabang Manifes Kernel Piksel Cabang GKI Pembuatan Platform Android dukungan aosp-main ?
gs-Android-gs-raviole-mainline android-jalur utama ( tag v6.7 ) UP1A.231005.007.A1 (10762838) Ya
android14-gs-piksel-6.1 android14-6.1 UP1A.231005.007.A1 (10762838) Ya
gs-android13-gs-raviole-5.15 android13-5.15 TQ1A.230205.002 (9471150) TIDAK

Siapkan perangkat Pixel Anda

Diagram alur berikut menjelaskan proses update kernel di perangkat Pixel 6 dan yang lebih baru:

**Gambar 1.** Diagram Alir Pembaruan Kernel

Flash perangkat menggunakan flash.android.com

  1. Navigasikan ke flash.android.com
  2. Pilih build Android berdasarkan kombinasi Platform dan Kernel Android yang didukung .
  3. Pilih opsi berikut:
    • Hapus Perangkat
    • Paksa Flash semua Partisi
    • Nonaktifkan Verifikasi
  4. Tekan tombol Instal build untuk mem-flash perangkat.

**Gambar 2.** Contoh Stasiun Flash

Unduh dan kompilasi kernel

Sinkronkan repositori kernel

Jalankan perintah berikut untuk mengunduh kode sumber kernel. Lihat tabel Kombinasi Kernel dan Platform Android Pixel 6/6 Pro yang Didukung untuk Pixel KERNEL_MANIFEST_BRANCH .

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

Perbarui ramdisk vendor

Perbarui file vendor_ramdisk- DEVICE .img di repositori kernel agar sesuai dengan versi platform Android yang di-flash pada perangkat. Ada beberapa opsi yang bisa Anda ikuti.

Opsi 1) Ekstrak gambar ramdisk vendor dari gambar pabrik Pixel .
  1. Unduh image pabrik yang didukung untuk perangkat Anda dari https://developers.google.com/android/images.

  2. Ekstrak vendor_boot.img :

    • Perintah berikut menggunakan Pixel 6 Pro UP1A.231005.007.a1 sebagai contoh. Ganti nama file zip dengan nama file image pabrik yang Anda unduh.
      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. Buka paket vendor_boot.img untuk mendapatkan ramdisk vendor.

      KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \
          --out vendor_boot_out
    
  4. Salin file ramdisk_ yang diekstrak ke repositori kernel Pixel.

    Perangkat DEVICE_RAMDISK_PATH
    Piksel 6 (oriole)
    Pixel 6 Pro (gagak)
    prebuilts/boot-artifacts/ramdisks/vendor_ramdisk- oriole.img
    Piksel 6a (blue jay) pribadi/perangkat/google/bluejay/vendor_ramdisk- bluejay.img
      cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \
          KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
    
Opsi 2) Salin vendor_ramdisk dari repositori platform Android yang dibuat secara lokal.
Perangkat DEVICE_RAMDISK_PATH
Piksel 6 (oriole)
Pixel 6 Pro (gagak)
prebuilts/boot-artifacts/ramdisks/vendor_ramdisk- oriole.img
Piksel 6a (blue jay) pribadi/perangkat/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

Kompilasi kernel (Kleaf)

Di Android 13, skrip build.sh diganti dengan sistem build kernel baru yang disebut Kleaf . Untuk perangkat yang menggunakan android13-5.15 dan lebih baru, kernel harus dibuat menggunakan Kleaf.

Untuk Pixel 6 dan 6 Pro dengan kernel android14 dan yang lebih baru, jalankan perintah Kleaf build:

tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist

Untuk Pixel 6 dan 6 Pro dengan kernel android13-5.15 , jalankan perintah Kleaf build:

tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist

Untuk semua kernel Pixel lainnya, jalankan skrip build_ DEVICE.sh yang terdapat di KERNEL_REPO_ROOT . Misalnya, untuk membangun kernel untuk Pixel 6 di cabang android-gs-raviole-5.10-android14 , Anda akan menjalankan perintah:

build_slider.sh

Secara default, skrip build_ DEVICE .sh menggunakan kernel GKI bawaan untuk mempercepat proses pembangunan. Jika Anda ingin memodifikasi kernel inti, atur variabel lingkungan BUILD_AOSP_KERNEL=1 untuk membangun kernel dari sumber lokal.

Untuk rincian lebih lanjut tentang sistem pembangunan kernel dan cara menyesuaikan pembangunan, lihat Dokumentasi Kleaf .

Flash gambar kernel

Catatan: Jika Anda belum menonaktifkan verifikasi, Anda perlu melakukannya sebelum mem-flash kernel khusus. Berikut adalah perintah untuk melakukannya:
fastboot oem disable-verification
PERINGATAN: Jika Anda mem-flash kernel khusus di atas versi platform, Anda mungkin perlu menghapus perangkat Anda jika ada penurunan versi tingkat patch keamanan (SPL) yang terkait dengan kernel baru. Proses ini menghapus semua data pribadi Anda. Pastikan untuk membuat cadangan data Anda sebelum menghapus.
fastboot -w

Untuk mem-flash image kernel, jalankan perintah fastboot flash untuk setiap partisi kernel yang terdaftar untuk perangkat Anda. Untuk partisi dinamis, Anda perlu reboot ke mode fastbootd sebelum melakukan flashing.

Perangkat Partisi Kernel
Piksel 6 (oriole)
Pixel 6 Pro (gagak)
Piksel 6a (blue jay)
boot
dtbo
vendor_boot
vendor_dlkm (partisi dinamis)
Piksel 8 (shiba)
Pixel 8 Pro (serak)
Lipatan Piksel (felix)
Tablet Piksel (tangorpro)
Piksel 7a (lynx)
Piksel 7 (macan kumbang)
Piksel 7 Pro (cheetah)
boot
dtbo
vendor_kernel_boot
vendor_dlkm (partisi dinamis)
system_dlkm (partisi dinamis)

Berikut perintah flashing Pixel 6 di android-mainline :

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

Gambar kernel dapat ditemukan di DIST_DIR .

Cabang kernel DIST_DIR
v5.10 out/mixed/dist
v5.15 dan lebih baru out/ DEVICE /dist
Catatan: Jika Anda memiliki dongle serial dan ingin mengaktifkan log serial, perintahnya adalah:
fastboot oem uart enable
fastboot oem uart config 3000000
Contoh perintah untuk terhubung dari host:
screen -fn /dev/ttyUSB* 3000000

Kembalikan gambar pabrik

Untuk mengembalikan perangkat Anda kembali ke gambar pabrik, Anda dapat menggunakan flash.android.com .

Kernel Pixel lama

Sebagai referensi, tabel cabang kernel Pixel lama menyediakan cabang repositori kernel untuk Pixel 5 dan perangkat yang lebih lama. Ini adalah perangkat yang tidak didukung GKI.

Cabang kernel Pixel lama
Perangkat Jalur biner di pohon AOSP Cabang repositori
Piksel 5a (barbet)
Pixel 4a (5G) (semak duri)
Pixel 5 (sirip merah)
perangkat/google/redbull-kernel android-msm-redbull-4.19-android14
Pixel 4a (mola-mola) perangkat/google/sunfish-kernel android-msm-sunfish-4.14-android13-qpr3
Piksel 4 (api)
Pixel 4 XL (karang)
perangkat/google/coral-kernel android-msm-coral-4.14-android13
Piksel 3a (sargo)
Piksel 3a XL (bonito)
perangkat/google/bonito-kernel android-msm-bonito-4.9-android12L
Piksel 3 (garis biru)
Pixel 3 XL (garis silang)
perangkat/google/crosshatch-kernel android-msm-crosshatch-4.9-android12
Piksel 2 (mata dinding)
Piksel 2 XL (taimen)
perangkat/google/wahoo-kernel android-msm-wahoo-4.4-android10-qpr3
Piksel (ikan layar)
Piksel XL (marlin)
perangkat/google/marlin-kernel android-msm-marlin-3.18-pie-qpr2