本指南將逐步說明
刷新自訂 Pixel 核心以進行開發。由於 GKI,現在
更新核心,而無需另外更新 Android 平台版本。這些步驟
僅適用於 Pixel 6 和後續機型。這是因為 Pixel 5 和
早期的裝置需要更新 vendor
分區的核心模組,
而這要視這些裝置適用的 Android 平台而定。GKI
支援的 Pixel 核心分支表格包含
每種支援 GKI 的 Pixel 裝置的核心存放區資訊清單分支。詳情請參閱
舊版 Pixel 核心一節,瞭解 Pixel 5 和
包括先前核心資訊清單分支版本
GKI 支援 Pixel 核心分支
裝置 | Android 開放原始碼計畫樹狀結構中的二進位檔路徑 | 存放區分支版本 | GKI 核心 |
---|---|---|---|
Pixel 9 Pro Fold (喜劇) | 裝置/google/comet-kernel | android-gs-comet-6.1-android14-qpr3-d1 | android14-6.1 |
Pixel 9 (Tokay)
Pixel 9 Pro (Caiman)
Pixel 9 Pro XL (科莫多) |裝置/google/caimito-kernel |android-gs-caimito-6.1-android14-qpr3-d1 |android14-6.1
Pixel 8a (Akita) |裝置/google/akita-kernel |android-gs-akita-5.15-android14-qpr3 |Android14-5.15
Pixel 8 (護盾)
Pixel 8 Pro (哈士奇) |裝置/google/shusky-kernel |android-gs-shusky-5.15-android14-qpr3 |Android14-5.15
Pixel Fold (Felix) |裝置/google/felix-kernel |android-gs-felix-5.10-android14-qpr3 |android13-5.10
Pixel Tablet (tangorpro) |裝置/google/tangorpro-kernel |android-gs-tangorpro-5.10-android14-qpr3 |android13-5.10
Pixel 7a (Lynx) |裝置/google/lynx-kernel |android-gs-lynx-5.10-android14-qpr3 |android13-5.10
Pixel 7 (全景)
Pixel 7 Pro (獵豹) |裝置/google/pantah-kernel |android-gs-pantah-5.10-android14-qpr3 |android13-5.10
Pixel 6a (bluejay) |裝置/google/bluejay-kernel |android-gs-bluejay-5.10-android14-qpr3 |android13-5.10
Pixel 6 (或圓形)
Pixel 6 Pro (渡鴉) |裝置/google/raviole-kernel |android-gs-raviole-5.10-android14-qpr3 |android13-5.10
除了原廠支援的核心外,Pixel 6 和 6 Pro 裝置 僅適用於 Android 通用核心上的 GKI 開發 支援的 Pixel 6/6 Pro Android 平台和核心中包含分支版本 組合表格。這是因為供應商的 UAPI 差異 Android 平台 HAL 和 Pixel 核心驅動程式之間的區別 支援的建構組合
支援的 Pixel 6/6 Pro Android 平台與核心組合
Pixel 核心資訊清單分支版本 | GKI 分支版本 | Android 平台版本 | 「aosp-main 」支援服務? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (6.8 版) | AP1A.240505.004 (11583682) | 是 |
android14-gs-pixel-6.1 | android14-6.1 | AP1A.240505.004 (11583682) | 是 |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | 否 |
完成 Pixel 裝置準備
以下流程圖說明在 Pixel 上更新核心的程序 6 以上版本的裝置:
使用 flash.android.com 刷新裝置
- 前往 flash.android.com
- 根據支援的 Android 平台和核心選擇 Android 版本 組合。
- 選取下列選項:
- 抹除裝置資料
- 強制 Flash 所有隔斷
- 停用驗證功能
- 按下「Install build」按鈕刷新裝置。
下載並編譯核心
同步處理核心存放區
執行下列指令,下載核心原始碼。詳情請參閱 支援的 Pixel 6/6 Pro Android 平台和核心 Pixel 的組合表格 KERNEL_MANIFEST_BRANCH。
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
更新供應商 ramdisk
更新檔案 (vendor_ramdisk-DEVICE.img
) 中的
核心存放區,來比對
裝置。您可以追蹤幾個選項。
選項 1) 從 Pixel 原廠映像檔中擷取廠商 ramdisk 映像檔。
前往以下位置下載裝置支援的原廠映像檔: 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
即可取得供應商 ramdisk。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 (渡鴉)prebuilds/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
選項 2) 從本機建構的 Android 平台存放區複製 vendor_ramdisk
。
裝置 | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (或圓形) Pixel 6 Pro (渡鴉) |
prebuilds/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
編譯核心 (Kleaf)
在 Android 13 中,build.sh
指令碼已替換為新的核心建構系統
稱為 Kleaf。如果是搭載 android13-5.15
以上版本的裝置,
核心應使用 Kleaf 建構。
如果是搭載 android14
以上版本核心的 Pixel 6 和 6 Pro,請執行 Kleaf 版本
指令:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
如果是搭載 android13-5.15
核心的 Pixel 6 和 6 Pro,請執行 Kleaf 版本
指令:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
如果是所有其他 Pixel 核心,請執行 KERNEL_REPO_ROOT 中的 build_DEVICE.sh
指令碼。適用對象
例如在分支版本上建構 Pixel 6 的核心
android-gs-raviole-5.10-android14
,您可以執行下列指令:
build_slider.sh
根據預設,build_DEVICE.sh
指令碼會使用
預先建構的 GKI 核心加快建構程序。如要修改
,然後將環境變數 BUILD_AOSP_KERNEL=1
設為建構
取得本機來源的核心。
如要進一步瞭解核心建構系統和建構方式, 請參閱 Kleaf - 使用 Bazel 建構 Android 核心。
刷新核心映像檔
注意:如果尚未停用驗證功能,請先停用 才能刷新自訂核心操作指令如下:fastboot oem disable-verification
警告:如果要刷新自訂核心 平台版本,如果 與新核心相關聯的修補程式等級 (SPL) 降級。 這麼做會清除所有個人資料。請務必備份資料 再進行清除作業。fastboot -w
如要刷新核心映像檔,請為每個核心執行 fastboot flash
指令
裝置分區。如要使用動態分區,必須重新啟動
必須先進入 fastbootd
模式,才能刷新。
裝置 | 核心劃分 |
---|---|
Pixel 6
(oriole) Pixel 6 Pro (渡鴉) Pixel 6a (bluejay) |
開機 dtbo vendor_boot vendor_dlkm (動態分區) |
Pixel 8 (Shiba) Pixel 8 Pro (哈士奇) Pixel 折疊 Pixel 平板電腦 (tangorpro) Pixel 7a (Lynx) Pixel 7 (平移) Pixel 7 Pro (獵豹) |
開機 dtbo vendor_kernel_boot vendor_dlkm (動態分區) system_dlkm (動態分區) |
以下是 android-mainline
上的 Pixel 6 刷新指令:
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 |
5.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 核心分支版本
裝置 | Android 開放原始碼計畫樹狀結構中的二進位檔路徑 | 存放區分支版本 |
---|---|---|
Pixel 5a (條碼) Pixel 4a (5G) (巴西) Pixel 5 (紅榴色) |
裝置/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 (walleye) Pixel 2 XL (taimen) |
裝置/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (帆船) Pixel XL (馬林魚) |
裝置/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |