Hướng dẫn này cung cấp hướng dẫn từng bước về cách tải xuống, biên dịch và flash hạt nhân Pixel tùy chỉnh để phát triển. Nhờ có GKI, giờ đây có thể cập nhật kernel độc lập với bản dựng nền tảng Android. Các bước này chỉ áp dụng cho thiết bị Pixel 6 trở lên. Điều này là do các thiết bị Pixel 5 trở xuống yêu cầu cập nhật mô-đun hạt nhân trên phân vùng vendor
. Điều này phụ thuộc vào bản dựng nền tảng Android cho các thiết bị đó. Bảng nhánh hạt nhân pixel được GKI hỗ trợ bao gồm nhánh tệp kê khai kho lưu trữ hạt nhân cho từng thiết bị Pixel được GKI hỗ trợ. Tham khảo phần Hạt nhân pixel cũ để biết các nhánh tệp kê khai hạt nhân Pixel 5 trở về trước.
Các nhánh hạt nhân Pixel được GKI hỗ trợ
Thiết bị | Đường dẫn nhị phân trong cây AOSP | Chi nhánh kho lưu trữ | Hạt nhân GKI |
---|---|---|---|
Pixel 8 (shiba) Pixel 8 Pro (khàn khàn) | thiết bị/google/shusky-kernel | android-gs-shusky-5.15-android14-d1 | android14-5.15 |
Pixel Fold (felix) | thiết bị/google/felix-kernel | android-gs-felix-5.10-android14 | android13-5.10 |
Máy tính bảng Pixel (tangorpro) | thiết bị/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14 | android13-5.10 |
Pixel 7a (linh miêu) | thiết bị/google/lynx-kernel | android-gs-lynx-5.10-android14 | android13-5.10 |
Pixel 7 (con báo) Pixel 7 Pro (báo gêpa) | thiết bị/google/pantah-kernel | android-gs-pantah-5.10-android14 | android13-5.10 |
Pixel 6a (bluejay) | thiết bị/google/bluejay-kernel | android-gs-bluejay-5.10-android14 | android13-5.10 |
Pixel 6 (chim vàng anh) Pixel 6 Pro (quạ) | thiết bị/google/raviole-kernel | android-gs-raviole-5.10-android14 | android13-5.10 |
Ngoài các hạt nhân được nhà máy hỗ trợ, các thiết bị Pixel 6 và 6 Pro chỉ được hỗ trợ cho mục đích phát triển GKI trên các nhánh hạt nhân Android Common có trong bảng Kết hợp hạt nhân và Nền tảng Android Pixel 6/6 Pro được hỗ trợ . Do sự khác biệt về UAPI của nhà cung cấp giữa HAL nền tảng Android và trình điều khiển hạt nhân Pixel, bảng này cung cấp các kết hợp bản dựng được hỗ trợ.
Hỗ trợ kết hợp hạt nhân và nền tảng Pixel 6/6 Pro Android
Nhánh tệp kê khai hạt nhân Pixel | Chi nhánh GKI | Xây dựng nền tảng Android | hỗ trợ aosp-main ? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline ( thẻ v6.7 ) | UP1A.231005.007.A1 (10762838) | Đúng |
android14-gs-pixel-6.1 | android14-6.1 | UP1A.231005.007.A1 (10762838) | Đúng |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | KHÔNG |
Chuẩn bị thiết bị Pixel của bạn
Lưu đồ sau đây mô tả quy trình cập nhật kernel trên thiết bị Pixel 6 trở lên:
Flash thiết bị bằng flash.android.com
- Điều hướng đến flash.android.com
- Chọn bản dựng Android dựa trên sự kết hợp Nền tảng Android và Hạt nhân được hỗ trợ .
- Chọn các tùy chọn sau:
- Thiết bị lau chùi
- Buộc Flash tất cả các phân vùng
- Tắt xác minh
- Nhấn nút Install build để flash thiết bị.
Tải xuống và biên dịch kernel
Đồng bộ hóa kho kernel
Chạy các lệnh sau để tải xuống mã nguồn kernel. Tham khảo bảng Kết hợp hạt nhân và nền tảng Android Pixel 6/6 Pro được hỗ trợ để biết Pixel KERNEL_MANIFEST_BRANCH .
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
Cập nhật ramdisk của nhà cung cấp
Cập nhật tệp vendor_ramdisk- DEVICE .img
trong kho kernel để phù hợp với bản dựng nền tảng Android được flash trên thiết bị. Có một số lựa chọn bạn có thể làm theo.
Tùy chọn 1) Trích xuất hình ảnh ramdisk của nhà cung cấp từ hình ảnh nhà máy Pixel .
Tải xuống hình ảnh nhà máy được hỗ trợ cho thiết bị của bạn từ https://developers.google.com/android/images.
Giải nén
vendor_boot.img
:- Các lệnh sau đây sử dụng Pixel 6 Pro UP1A.231005.007.a1 làm ví dụ. Thay thế tên tệp zip bằng tên tệp của hình ảnh nhà máy mà bạn đã tải xuống.
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
Giải nén
vendor_boot.img
để lấy ramdisk của nhà cung cấp.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
Sao chép tệp
ramdisk_
đã giải nén vào kho lưu trữ hạt nhân Pixel.Thiết bị DEVICE_RAMDISK_PATH Pixel 6 (chim vàng anh)
Pixel 6 Pro (quạ)prebuilds/boot-artifacts/ramdisks/vendor_ramdisk- oriole.img Pixel 6a (bluejay) riêng tư/thiết bị/google/bluejay/vendor_ramdisk- bluejay.img cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \ KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
Tùy chọn 2) Sao chép vendor_ramdisk
từ kho lưu trữ nền tảng Android được xây dựng cục bộ.
Thiết bị | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (chim vàng anh) Pixel 6 Pro (quạ) | prebuilds/boot-artifacts/ramdisks/vendor_ramdisk- oriole.img |
Pixel 6a (bluejay) | riêng tư/thiết bị/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
Biên dịch kernel (Kleaf)
Trong Android 13, tập lệnh build.sh
đã được thay thế bằng hệ thống xây dựng kernel mới có tên Kleaf . Đối với các thiết bị sử dụng android13-5.15
trở lên, kernel phải được xây dựng bằng Kleaf.
Đối với Pixel 6 và 6 Pro có nhân android14
trở lên, hãy chạy lệnh xây dựng Kleaf:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
Đối với Pixel 6 và 6 Pro có nhân android13-5.15
, hãy chạy lệnh xây dựng Kleaf:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
Đối với tất cả các hạt nhân Pixel khác, hãy chạy tập lệnh build_ DEVICE.sh
có tại KERNEL_REPO_ROOT . Ví dụ: để xây dựng kernel cho Pixel 6 trên nhánh android-gs-raviole-5.10-android14
, bạn sẽ chạy lệnh:
build_slider.sh
Theo mặc định, tập lệnh build_ DEVICE .sh
sử dụng hạt nhân GKI dựng sẵn để tăng tốc quá trình xây dựng. Nếu bạn muốn sửa đổi hạt nhân lõi, hãy đặt biến môi trường BUILD_AOSP_KERNEL=1
để xây dựng hạt nhân từ các nguồn cục bộ.
Để biết thêm chi tiết về hệ thống xây dựng kernel và cách tùy chỉnh bản dựng, hãy tham khảo Tài liệu Kleaf .
Flash hình ảnh hạt nhân
Lưu ý: Nếu chưa tắt xác minh, bạn cần thực hiện việc này trước khi flash kernel tùy chỉnh. Đây là lệnh để làm như vậy:fastboot oem disable-verification
CẢNH BÁO: Nếu bạn đang cài đặt một hạt nhân tùy chỉnh trên bản dựng nền tảng thì bạn có thể cần phải xóa thiết bị của mình nếu có sự hạ cấp cấp bản vá bảo mật (SPL) liên quan đến hạt nhân mới. Quá trình này sẽ xóa tất cả dữ liệu cá nhân của bạn. Hãy chắc chắn sao lưu dữ liệu của bạn trước khi xóa.fastboot -w
Để flash ảnh kernel, hãy chạy lệnh fastboot flash
cho từng phân vùng kernel được liệt kê cho thiết bị của bạn. Đối với phân vùng động, bạn cần khởi động lại vào chế độ fastbootd
trước khi flash.
Thiết bị | Phân vùng hạt nhân |
---|---|
Pixel 6 (chim vàng anh) Pixel 6 Pro (quạ) Pixel 6a (bluejay) | khởi động dtbo nhà cung cấp_boot nhà cung cấp_dlkm (phân vùng động) |
Pixel 8 (shiba) Pixel 8 Pro (khàn khàn) Pixel Fold (felix) Máy tính bảng Pixel (tangorpro) Pixel 7a (linh miêu) Pixel 7 (con báo) Pixel 7 Pro (báo gêpa) | khởi động dtbo nhà cung cấp_kernel_boot nhà cung cấp_dlkm (phân vùng động) system_dlkm (phân vùng động) |
Dưới đây là các lệnh nhấp nháy cho Pixel 6 trên 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
Hình ảnh hạt nhân có thể được tìm thấy trong DIST_DIR .
Nhánh hạt nhân | DIST_DIR |
---|---|
v5.10 | out/mixed/dist |
v5.15 trở lên | out/ DEVICE /dist |
Lưu ý: Nếu bạn có dongle nối tiếp và muốn bật nhật ký nối tiếp, lệnh là:Lệnh ví dụ để kết nối từ máy chủ:fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
Khôi phục hình ảnh nhà máy
Để khôi phục thiết bị của bạn về hình ảnh gốc, bạn có thể sử dụng flash.android.com .
Hạt nhân Pixel kế thừa
Để tham khảo, bảng nhánh hạt nhân Pixel cũ cung cấp các nhánh kho lưu trữ hạt nhân cho các thiết bị Pixel 5 trở xuống. Đây là những thiết bị không được hỗ trợ GKI.
Các nhánh hạt nhân Pixel kế thừa
Thiết bị | Đường dẫn nhị phân trong cây AOSP | Chi nhánh kho lưu trữ |
---|---|---|
Pixel 5a (thịt nướng) Pixel 4a (5G) (mâm xôi) Pixel 5 (vây đỏ) | thiết bị/google/redbull-kernel | android-msm-redbull-4.19-android14 |
Pixel 4a (cá mặt trời) | thiết bị/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (ngọn lửa) Pixel 4 XL (san hô) | thiết bị/google/hạt nhân san hô | android-msm-san hô-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (cá ngừ) | thiết bị/google/bonito-kernel | android-msm-bonito-4.9-android12L |
Pixel 3 (đường xanh) Pixel 3 XL (chéo) | thiết bị/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (walleye) Pixel 2 XL (taimen) | thiết bị/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (cá cờ) Pixel XL (marlin) | thiết bị/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |