คู่มือนี้บอกวิธีดาวน์โหลด คอมไพล์ และวิธีการแบบทีละขั้นตอน
แฟลชเคอร์เนลของ Pixel ที่กำหนดเองเพื่อการพัฒนา และจาก GKI ตอนนี้คุณสามารถ
อัปเดตเคอร์เนลโดยไม่ขึ้นอยู่กับบิลด์ของแพลตฟอร์ม Android ขั้นตอนเหล่านี้คือ
ใช้ได้กับอุปกรณ์ Pixel 6 ขึ้นไปเท่านั้น เนื่องจาก Pixel 5 และ
อุปกรณ์รุ่นก่อนหน้าต้องมีการอัปเดตโมดูลเคอร์เนลในพาร์ติชัน vendor
ซึ่งจะขึ้นอยู่กับบิลด์ของแพลตฟอร์ม Android สำหรับอุปกรณ์เหล่านั้น GKI
ตาราง Bernel ของ Pixel ที่รองรับประกอบไปด้วย
สาขาไฟล์ Manifest ของที่เก็บเคอร์เนลสำหรับอุปกรณ์ Pixel แต่ละเครื่องที่รองรับ GKI โปรดดู
ส่วนเคอร์เนล Pixel รุ่นเดิมสำหรับ Pixel 5 และ
สาขาของไฟล์ Manifest ของเคอร์เนลก่อนหน้านี้
สาขาเคอร์เนลของ Pixel ที่รองรับ GKI
อุปกรณ์ | เส้นทางไบนารีในแผนผัง AOSP | สาขาของที่เก็บ | เคอร์เนล GKI |
---|---|---|---|
Pixel 9 Pro Fold (ดาวหาง) | อุปกรณ์/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) | อุปกรณ์/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | Android 14-6.1
Pixel 8a (อะกิตะ) | อุปกรณ์/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | Android 14-5.15
Pixel 8 (ชิบะ)
Pixel 8 Pro (ฮัสกี้) | อุปกรณ์/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | Android 14-5.15
Pixel Fold (Felix) | อุปกรณ์/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | Android 13-5.10
Pixel Tablet (Tangorpro) | อุปกรณ์/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | Android 13-5.10
Pixel 7a (Lynx) | อุปกรณ์/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | Android 13-5.10
Pixel 7 (เสือดำ)
Pixel 7 Pro (เสือชีตาห์) | อุปกรณ์/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | Android 13-5.10
Pixel 6a (บลูเจย์) | อุปกรณ์/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | Android 13-5.10
Pixel 6 (ออริโอล)
Pixel 6 Pro (นกกาเหว่า) | อุปกรณ์/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | Android 13-5.10
นอกจากเคอร์เนลที่โรงงานรองรับแล้ว อุปกรณ์ Pixel 6 และ 6 Pro รองรับการพัฒนา GKI เฉพาะในเคอร์เนล Android Common เท่านั้น สาขาที่รวมอยู่ในแพลตฟอร์ม Android และ Kernel สำหรับ Pixel 6/6 Pro ที่รองรับ ชุดค่าผสม เนื่องจากความแตกต่างของ UAPI ของผู้ให้บริการ ระหว่าง HAL และไดรเวอร์เคอร์เนลของแพลตฟอร์ม Android ชุดค่าผสมบิลด์ที่รองรับ
การรองรับแพลตฟอร์ม Pixel 6/6 Pro สำหรับ Android และการผสมผสานเคอร์เนล
สาขาไฟล์ Manifest ของเคอร์เนล Pixel | สาขา GKI | บิลด์แพลตฟอร์ม Android | รองรับ aosp-main ไหม |
---|---|---|---|
gs-android-gs-raviole-mainline | Android-mainline (v6.8) | AP1A.240505.004 (11583682) | ใช่ |
android14-gs-pixel-6.1 | Android 14-6.1 | AP1A.240505.004 (11583682) | ใช่ |
gs-android13-gs-raviole-5.15 | Android 13-5.15 | TQ1A.230205.002 (9471150) | ไม่ |
เตรียมอุปกรณ์ Pixel ของคุณให้พร้อม
โฟลว์ชาร์ตต่อไปนี้อธิบายกระบวนการอัปเดตเคอร์เนลใน Pixel อุปกรณ์ 6 เครื่องขึ้นไป:
แฟลชอุปกรณ์โดยใช้ Flash.android.com
- ไปที่ flash.android.com
- เลือกบิลด์ของ Android ตามแพลตฟอร์ม Android และ Kernel ที่รองรับ ชุดค่าผสม
- เลือกตัวเลือกต่อไปนี้
- ล้างข้อมูลอุปกรณ์
- บังคับใช้พาร์ติชันทั้งหมดของ Flash
- ปิดการใช้งานการยืนยัน
- กดปุ่มติดตั้งบิลด์เพื่อแฟลชอุปกรณ์
ดาวน์โหลดและคอมไพล์เคอร์เนล
ซิงค์ที่เก็บเคอร์เนล
เรียกใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลดซอร์สโค้ดของเคอร์เนล โปรดดู แพลตฟอร์ม Android และ Kernel สำหรับ Pixel 6/6 Pro ที่รองรับ ตารางชุดค่าผสมของ Pixel KERNEL_MANIFEST_BRANCH
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
อัปเดต RAM ของผู้ให้บริการ
อัปเดตไฟล์ vendor_ramdisk-DEVICE.img
ใน
ที่เก็บเคอร์เนลเพื่อให้ตรงกับรุ่นของแพลตฟอร์ม Android ที่แฟลชอยู่ใน
อุปกรณ์ มีตัวเลือกอยู่ 2-3 อย่างที่คุณติดตามได้
ตัวเลือกที่ 1) ดึงอิมเมจ RAM ของผู้ให้บริการจากอิมเมจเริ่มต้นของ Pixel
ดาวน์โหลดอิมเมจเริ่มต้นที่รองรับสำหรับอุปกรณ์ของคุณจาก https://developers.google.com/android/images
ดึงข้อมูล
vendor_boot.img
:- คำสั่งต่อไปนี้ใช้ Pixel 6 Pro AP1A.240505.004 เป็นตัวอย่าง แทนที่ ชื่อไฟล์ ZIP ด้วยชื่อไฟล์ของอิมเมจเริ่มต้นที่คุณดาวน์โหลด
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
คลายการแพคข้อมูล
vendor_boot.img
เพื่อรับ RAM ของผู้ให้บริการKERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
คัดลอกไฟล์
vendor-ramdisk-by-name/ramdisk_
ที่แยกไว้ไปยังที่เก็บเคอร์เนลของ Pixelอุปกรณ์ DEVICE_RAMDISK_PATH Pixel 6 (ออริโอล)
Pixel 6 Pro (นกกาเหว่า)สิ่งที่สร้างไว้ล่วงหน้า/บูต-สิ่งประดิษฐ์/ramdisks/vendor_ramdisk-oriole.img Pixel 6a (บลูเจย์) ส่วนตัว/devices/google/bluejay/vendor_ramdisk-bluejay.img cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \ KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
ตัวเลือกที่ 2) คัดลอก vendor_ramdisk
จากที่เก็บของแพลตฟอร์ม Android ที่สร้างขึ้นในเครื่อง
อุปกรณ์ | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (ออริโอล) Pixel 6 Pro (นกกาเหว่า) |
สิ่งที่สร้างไว้ล่วงหน้า/บูต-สิ่งประดิษฐ์/ramdisks/vendor_ramdisk-oriole.img |
Pixel 6a (บลูเจย์) | ส่วนตัว/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
คอมไพล์เคอร์เนล (Kleaf)
ใน Android 13 ระบบได้แทนที่สคริปต์ build.sh
ด้วยระบบบิลด์เคอร์เนลใหม่
ที่ชื่อ Kleaf สำหรับอุปกรณ์ที่ใช้ android13-5.15
ขึ้นไป
เคอร์เนลควรสร้างโดยใช้ Kleaf
สำหรับ Pixel 6 และ 6 Pro ที่ใช้เคอร์เนล android14
ขึ้นไป ให้ใช้บิลด์ Kleaf
คำสั่ง:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
สำหรับ Pixel 6 และ 6 Pro ที่มีเคอร์เนล android13-5.15
ให้ใช้เวอร์ชัน Kleaf
คำสั่ง:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
สำหรับเคอร์เนลอื่นๆ ทั้งหมดของ Pixel ให้เรียกใช้สคริปต์ build_DEVICE.sh
ที่พบที่ KERNEL_REPO_ROOT สำหรับ
เช่น ในการสร้างเคอร์เนลสำหรับ Pixel 6 ใน Branch
android-gs-raviole-5.10-android14
คุณจะเรียกใช้คำสั่งนี้
build_slider.sh
โดยค่าเริ่มต้น สคริปต์ build_DEVICE.sh
จะใช้
เคอร์เนล GKI ที่สร้างไว้ล่วงหน้าเพื่อเร่งกระบวนการสร้าง หากต้องการแก้ไข
เคอร์เนลหลัก จากนั้นตั้งค่าตัวแปรสภาพแวดล้อม BUILD_AOSP_KERNEL=1
เพื่อสร้าง
เคอร์เนลจากแหล่งที่มาในเครื่องแทน
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับระบบบิลด์เคอร์เนลและวิธีปรับแต่งบิลด์ โปรดดูที่ Kleaf - การสร้างเคอร์เนล Android ด้วย Bazel
แฟลชอิมเมจเคอร์เนล
หมายเหตุ: หากคุณยังไม่ได้ปิดใช้การยืนยัน คุณจะต้องดำเนินการ ก่อนที่จะกะพริบเคอร์เนลที่กำหนดเอง โดยใช้คำสั่งต่อไปนี้fastboot oem disable-verification
คำเตือน: หากคุณกะพริบเคอร์เนลที่กำหนดเองที่ด้านบนของ สร้างแพลตฟอร์มแล้ว คุณอาจต้องล้างข้อมูลอุปกรณ์หากมีการรักษาความปลอดภัย การดาวน์เกรดระดับแพตช์ (SPL) ที่เชื่อมโยงกับเคอร์เนลใหม่ ขั้นตอนนี้จะลบข้อมูลส่วนตัวของคุณทั้งหมด อย่าลืมสำรองข้อมูลของคุณ ก่อนล้างข้อมูลfastboot -w
หากต้องการแฟลชอิมเมจเคอร์เนล ให้เรียกใช้คำสั่ง fastboot flash
สำหรับเคอร์เนลแต่ละรายการ
ที่ระบุไว้สำหรับอุปกรณ์ของคุณ สำหรับพาร์ติชันแบบไดนามิก คุณต้องรีบูต
เข้าสู่โหมด fastbootd
ก่อนกะพริบ
อุปกรณ์ | ฉากกั้นเคอร์เนล |
---|---|
Pixel 6
(เดิม) Pixel 6 Pro (นกกาเหว่า) Pixel 6a (บลูเจย์) |
เปิดเครื่อง dtbo vendor_boot vendor_dlkm (พาร์ติชันแบบไดนามิก) |
Pixel 8 (ชิบะ) Pixel 8 Pro (ฮัสกี) Pixel Fold (Felix) Pixel แท็บเล็ต (Tangorpro) Pixel 7a (แมวป่า) Pixel 7 (เสือดำ) Pixel 7 Pro (เสือชีตาห์) |
เปิดเครื่อง dtbo vendor_kernel_boot vendor_dlkm (พาร์ติชันแบบไดนามิก) system_dlkm (พาร์ติชันแบบไดนามิก) |
คำสั่งแฟลชสำหรับ Pixel 6 ใน 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
คุณดูอิมเมจเคอร์เนลได้ใน DIST_DIR
สาขาเคอร์เนล | DIST_DIR |
---|---|
เวอร์ชัน 5.10 | out/mixed/dist |
v5.15 ขึ้นไป | out/DEVICE/dist |
หมายเหตุ: หากคุณมีดองเกิลซีเรียลและต้องการเปิดใช้ดองเกิลอนุกรม บันทึก คำสั่งคือตัวอย่างคำสั่งสำหรับเชื่อมต่อจากโฮสต์fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
คืนค่าอิมเมจเริ่มต้น
หากต้องการคืนค่าอุปกรณ์กลับเป็นอิมเมจเริ่มต้น คุณสามารถใช้ flash.android.com
เคอร์เนล Pixel รุ่นเดิม
เวอร์ชันเคอร์เนลของ Pixel เดิมสำหรับการอ้างอิง ตารางจะระบุสาขาที่เก็บเคอร์เนลสำหรับอุปกรณ์ Pixel 5 และรุ่นก่อนหน้า อุปกรณ์เหล่านี้ไม่รองรับ GKI
สาขาเคอร์เนลของ Pixel รุ่นเดิม
อุปกรณ์ | เส้นทางไบนารีในแผนผัง AOSP | สาขาของที่เก็บ |
---|---|---|
Pixel 5a (สีดำบาร์) Pixel 4a (5G) (bramble) Pixel 5 (redfin) |
อุปกรณ์/google/redbull-kernel | Android-MSm-redbull-4.19-Android14-Qpr3 |
Pixel 4a (ปลาซันฟิช) | อุปกรณ์/google/sunfish-kernel | Android-MSm-sunfish-4.14-android13-Qpr3 |
Pixel 4 (เปลวไฟ) Pixel 4 XL (ส้มแดงคอรัล) |
อุปกรณ์/google/coral-kernel | Android-MSm-coral-4.14-Android13 |
Pixel 3a (ซาร์โก) Pixel 3a XL (bonito) |
อุปกรณ์/google/bonito-kernel | Android-MSm-bonito-4.9-Android12L |
Pixel 3 (สีน้ำเงิน) Pixel 3 XL (สายครอส) |
อุปกรณ์/google/crosshatch-kernel | Android-MSm-crosshatch-4.9-Android12 |
Pixel 2 (วอลเลย์) Pixel 2 XL (ไทเมน) |
อุปกรณ์/google/wahoo-kernel | Android-MSm-wahoo-4.4-Android10-Qpr3 |
Pixel (ปลากระโทงร่ม) Pixel XL (มาร์ลิน) |
อุปกรณ์/google/marlin-kernel | Android-MSm-Marlin-3.18-Pie-Qpr2 |