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:
Flash perangkat menggunakan flash.android.com
- Navigasikan ke flash.android.com
- Pilih build Android berdasarkan kombinasi Platform dan Kernel Android yang didukung .
- Pilih opsi berikut:
- Hapus Perangkat
- Paksa Flash semua Partisi
- Nonaktifkan Verifikasi
- Tekan tombol Instal build untuk mem-flash perangkat.
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 .
Unduh image pabrik yang didukung untuk perangkat Anda dari https://developers.google.com/android/images.
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
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
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:Contoh perintah untuk terhubung dari host:fastboot oem uart enable
fastboot oem uart config 3000000
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 |