Panduan ini menyediakan petunjuk langkah demi langkah tentang cara mengunduh, mengompilasi, dan
melakukan flash kernel Pixel kustom untuk pengembangan. Karena GKI, sekarang Anda
dapat melakukan
mengupdate kernel secara terpisah dari build platform Android. Langkah-langkah ini adalah
hanya berlaku untuk perangkat Pixel 6 dan yang lebih baru. Hal ini dikarenakan Pixel 5 dan
perangkat sebelumnya memerlukan update modul kernel pada partisi vendor
,
yang bergantung pada build platform
Android untuk perangkat tersebut. GKI
Tabel Cabang Pixel Kernel yang didukung mencakup
cabang manifes repositori kernel untuk setiap perangkat Pixel yang didukung GKI. Rujuk ke
bagian Kernel Pixel Lama untuk Pixel 5 dan
cabang manifes {i>kernel<i} sebelumnya.
Cabang kernel Pixel yang didukung GKI
Perangkat | Jalur biner dalam hierarki AOSP | Cabang repositori | Kernel GKI |
---|---|---|---|
Pixel 9 Pro Fold (komet) | perangkat/google/comet-kernel | android-gs-comet-6.1-android14-qpr3-d1 | Android 14-6.1 |
Pixel 9 (tokay)
Pixel 9 Pro (caiman)
Pixel 9 Pro XL (komodo) | device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | Android 14-6.1
Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | Android 14-5.15
Pixel 8 (shiba)
Pixel 8 Pro (husky) | perangkat/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | Android 14-5.15
Pixel Fold (felix) | device/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | Android 13-5.10
Pixel Tablet (tangorpro) | device/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | Android 13-5.10
Pixel 7a (lynx) | perangkat/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | Android 13-5.10
Pixel 7 (panther)
Pixel 7 Pro (cheetah) | perangkat/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | Android 13-5.10
Pixel 6a (bluejay) | perangkat/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | Android 13-5.10
Pixel 6 (oriole)
Pixel 6 Pro (raven) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | Android 13-5.10
Selain kernel yang didukung pabrik, perangkat Pixel 6 dan 6 Pro didukung untuk tujuan pengembangan GKI hanya pada kernel Android Common cabang yang disertakan dalam Platform Android dan Kernel Pixel 6/6 Pro yang didukung Kombinasi. Karena perbedaan UAPI vendor antara HAL platform Android dan driver kernel Pixel, tabel ini menyediakan kombinasi build yang didukung.
Kombinasi kernel dan platform Android Pixel 6/6 Pro yang didukung
Cabang Manifes Kernel Pixel | Cabang GKI | Build Platform Android | Dukungan aosp-main ? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (v6.8) | AP1A.240505.004 (11583682) | Ya |
android14-gs-pixel-6.1 | android14-6.1 | AP1A.240505.004 (11583682) | Ya |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | Tidak |
Siapkan perangkat Pixel Anda
Diagram alir berikut menjelaskan proses update kernel di Pixel Perangkat 6 dan yang lebih baru:
Mem-flash perangkat menggunakan flash.android.com
- Buka flash.android.com
- Memilih build Android berdasarkan Platform Android dan Kernel yang didukung kombinasi.
- Pilih opsi berikut:
- Hapus Total Perangkat
- Paksa Flash semua Partisi
- Nonaktifkan Verifikasi
- Tekan tombol Instal build untuk melakukan flash perangkat.
Mendownload dan mengompilasi kernel
Menyinkronkan repositori kernel
Jalankan perintah berikut untuk mendownload kode sumber kernel. Lihat Platform Android dan Kernel untuk Pixel 6/6 Pro yang Didukung Tabel kombinasi untuk Pixel KERNEL_MANIFEST_BRANCH.
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
Mengupdate ramdisk vendor
Update file vendor_ramdisk-DEVICE.img
di
repositori kernel agar sesuai dengan build platform Android yang di-flash pada
perangkat seluler. Ada beberapa opsi yang dapat Anda ikuti.
Opsi 1) Ekstrak image ramdisk vendor dari setelan pabrik Pixel.
Download setelan pabrik yang didukung untuk perangkat Anda dari https://developers.google.com/android/images.
Ekstrak
vendor_boot.img
:- Perintah berikut menggunakan Pixel 6 Pro AP1A.240505.004 sebagai contoh. Ganti nama {i>zipfile<i} dengan nama file {i>factory image<i} yang Anda unduh.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
Ekstrak
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
vendor-ramdisk-by-name/ramdisk_
yang diekstrak ke repositori kernel Pixel.Perangkat DEVICE_RAMDISK_PATH Pixel 6 (oriole)
Pixel 6 Pro (raven)prebuilts/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img Pixel 6a (bluejay) private/devices/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 |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (raven) |
prebuilts/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img |
Pixel 6a (bluejay) | private/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
Mengompilasi kernel (Kleaf)
Di Android 13, skrip build.sh
diganti dengan sistem build kernel baru
disebut Kleaf. Untuk perangkat yang menggunakan android13-5.15
dan yang lebih baru,
{i>kernel<i} harus dibangun menggunakan Kleaf.
Untuk Pixel 6 dan 6 Pro dengan kernel android14
dan yang lebih baru, jalankan build Kleaf
berikut:
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 build Kleaf
berikut:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
Untuk semua kernel Pixel lainnya, jalankan skrip build_DEVICE.sh
yang ada di KERNEL_REPO_ROOT. Sebagai
misalnya, untuk membangun kernel Pixel 6 di cabang
android-gs-raviole-5.10-android14
, Anda akan menjalankan perintah:
build_slider.sh
Secara default, skrip build_DEVICE.sh
menggunakan
{i>kernel<i} GKI bawaan untuk
mempercepat proses pembangunan. Jika Anda ingin memodifikasi
kernel inti, lalu setel variabel lingkungan BUILD_AOSP_KERNEL=1
untuk membangun
{i>kernel<i} dari sumber lokal.
Untuk detail selengkapnya tentang sistem build {i> kernel<i} dan cara menyesuaikan build, lihat Kleaf - Membuat Kernel Android dengan Bazel.
Melakukan flash image kernel
Catatan: Jika belum menonaktifkan verifikasi, Anda harus menonaktifkannya sebelum mem-flash {i>kernel<i} kustom. Berikut adalah perintah untuk melakukannya:fastboot oem disable-verification
PERINGATAN: Jika Anda melakukan flash kernel kustom pada build platform, maka Anda mungkin perlu menghapus perangkat Anda jika ada keamanan {i>downgrade level <i}level{i> patch level<i} (SPL) yang terkait dengan {i>kernel<i} baru. Proses ini akan menghapus semua data pribadi Anda. Pastikan untuk mencadangkan data Anda sebelum dihapus total.fastboot -w
Untuk melakukan flash image kernel, jalankan perintah fastboot flash
untuk setiap kernel
partisi yang terdaftar
untuk perangkat Anda. Untuk partisi dinamis, Anda perlu memulai ulang
ke mode fastbootd
sebelum berkedip.
Perangkat | Partisi {i>Kernel<i} |
---|---|
pixel 6
(oriole) Pixel 6 Pro (gagak) Pixel 6a (bluejay) |
booting dtbo vendor_boot vendor_dlkm (partisi dinamis) |
Pixel 8 (shiba) Pixel 8 Pro (husky) Pixel Fold (felix) Pixel Tablet (tangorpro) Pixel 7a (lynx) Pixel 7 (panther) Pixel 7 Pro (citah) |
booting dtbo vendor_kernel_boot vendor_dlkm (partisi dinamis) system_dlkm (partisi dinamis) |
Berikut adalah perintah flash untuk 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
Image kernel dapat ditemukan di DIST_DIR.
Cabang kernel | DIST_DIR |
---|---|
v5.10 | out/mixed/dist |
v5.15 dan yang lebih baru | out/DEVICE/dist |
Catatan: Jika Anda memiliki dongle serial dan ingin mengaktifkan log, perintahnya adalah:Contoh perintah untuk terhubung dari host:fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
Pulihkan setelan pabrik
Untuk memulihkan perangkat ke setelan pabrik, Anda dapat menggunakan flash.android.com.
Kernel Pixel lama
Sebagai referensi, cabang kernel Pixel lama menyediakan cabang repositori kernel untuk perangkat Pixel 5 dan versi sebelumnya. Ini adalah perangkat yang didukung non-GKI.
Cabang kernel Pixel lama
Perangkat | Jalur biner dalam hierarki AOSP | Cabang repositori |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (bramble) Pixel 5 (redfin) |
perangkat/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (ikan sunfish) | perangkat/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (flame) Pixel 4 XL (koral) |
perangkat/google/coral-kernel | android-msm-coral-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (bonito) |
perangkat/google/bonito-kernel | android-msm-bonito-4.9-android12L |
Pixel 3 (blueline) Pixel 3 XL (crosshatch) |
perangkat/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (walleye) Pixel 2 XL (taimen) |
perangkat/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (ikan layar) Pixel XL (marlin) |
perangkat/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |