מדריך זה מספק הוראות מפורטות להורדה, הידור
בליבה (kernel) מותאמת אישית של Pixel לפיתוח. הודות ל-GKI, עכשיו אפשר
לעדכן את הליבה בנפרד מגרסת ה-build של פלטפורמת Android. השלבים האלה
רלוונטי רק למכשירים מדגם Pixel 6 ואילך. הסיבה לכך היא ש-Pixel 5
במכשירים קודמים נדרש עדכון מודולים של הליבה במחיצה vendor
,
שתלויות ב-build של פלטפורמת Android במכשירים האלה. ה-GKI
הטבלה של הסתעפויות ליבה נתמכות של Pixel כוללת את
הסתעפות המניפסט של מאגר הליבה לכל מכשיר Pixel שנתמך ב-GKI. פרטים נוספים
הקטע Legacy Pixel Kernels של Pixel 5
הסתעפויות במניפסט של הליבה.
הסתעפויות ליבה (kernel) של Pixel שנתמכות ב-GKI
מכשירים | נתיב בינארי בעץ AOSP | הסתעפויות מאגר | ליבת GKI |
---|---|---|---|
Pixel 9 Pro Fold (שביט) | device/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 (komodo) | device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | android14-6.1
Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14-5.15
Pixel 8 (shiba)
Pixel 8 Pro (האסקי) | device/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | android14-5.15
Pixel Fold (felix) | device/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | android13-5.10
Pixel Tablet (tangorpro) | device/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | android13-5.10
Pixel 7a (lynx) | device/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | android13-5.10
Pixel 7 (פנתר)
Pixel 7 Pro (צ'יטה) | device/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | android13-5.10
Pixel 6a (bluejay) | device/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | android13-5.10
Pixel 6 (oriole)
Pixel 6 Pro (עורב) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | android13-5.10
בנוסף לליבה (kernel) שנתמכת על ידי היצרן, מכשירי Pixel 6 ו-Pixel 6 Pro נתמכת למטרות פיתוח של GKI רק בליבה (kernel) של Android Common. ההסתעפויות שכלולות בפלטפורמה והליבה (kernel) הנתמכות של Android 6 או 6 Pro הטבלה 'שילובים'. בגלל הבדלים ב-UAPI של הספק בין מנהלי התקנים של פלטפורמת Android ומנהלי התקנים של ליבה (kernel) של Pixel, הטבלה מספקת אילו שילובי build נתמכים.
שילובים נתמכים של פלטפורמת Android וליבה של Pixel 6/6 Pro
הסתעפות מניפסט ליבה של Pixel | סניף GKI | Build של פלטפורמת Android | תמיכה בaosp-main ? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (v6.8) | AP1A.240505.004 (11583682) | כן |
android14-gs-pixel-6.1 | android14-6.1 | AP1A.240505.004 (11583682) | כן |
gs-android13-gs-rawavee-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | לא |
הכנת מכשיר Pixel
תרשים הזרימה הבא מתאר את התהליך של עדכון הליבה ב-Pixel מכשירים מדגם 6 ואילך:
ביצוע Flash של המכשיר באמצעות flash.android.com
- מעבר אל Flash.android.com
- בוחרים את גרסת ה-build של Android על סמך הליבה והפלטפורמה הנתמכים של Android. שילובים שונים.
- צריך לבחור אחת מהאפשרויות האלה:
- איפוס נתוני המכשיר
- אילוץ הפעלה של כל המחיצות ב-Flash
- השבתת האימות
- לוחצים על הלחצן Install build כדי להבהב את המכשיר.
מורידים ומרכיבים את הליבה
סנכרון מאגר הליבה
מריצים את הפקודות הבאות כדי להוריד את קוד המקור של הליבה. עיינו ב ליבה ופלטפורמה נתמכות של Android Pro 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
עדכון של Ramdisk של הספק
מעדכנים את הקובץ vendor_ramdisk-DEVICE.img
באמצעות
מאגר ליבה (kernel) תואמת ל-build של פלטפורמת Android שמובנית
במכשיר. יש כמה אפשרויות שאפשר לעקוב אחריהן.
אפשרות 1) מחלצים את תמונת הרדיסק של הספק מתמונת היצרן של 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
כדי לקבל את ה-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 (עורב)prestructureds/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img Pixel 6a (bluejay) פרטי/מכשירים/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 (עורב) |
prestructureds/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img |
Pixel 6a (bluejay) | פרטי/מכשירים/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
הוחלף במערכת build חדשה של ליבה (kernel)
שנקרא Kleaf. במכשירים עם android13-5.15
ואילך,
את הליבה צריך לבנות באמצעות Kleaf.
בטלפונים מדגם Pixel 6 ו-Pixel 6 Pro עם ליבה (kernel) של android14
ואילך, צריך להריץ את Kleaf build
הפקודה:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
בטלפונים מדגמי Pixel 6 ו-Pixel 6 Pro עם ליבות של android13-5.15
, צריך להריץ את Kleaf build
הפקודה:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
עבור כל שאר הליבות (kernel) של Pixel, מריצים את הסקריפט build_DEVICE.sh
שנמצא ב-KERNEL_REPO_ROOT. עבור
לדוגמה, לבנות את הליבה של Pixel 6 בהסתעפות
android-gs-raviole-5.10-android14
, מריצים את הפקודה:
build_slider.sh
כברירת מחדל, הסקריפטים build_DEVICE.sh
משתמשים
ליבת GKI מוגדרת מראש כדי להאיץ את תהליך ה-build. אם רוצים לשנות את
הליבה של הליבה, ואז להגדיר את משתנה הסביבה BUILD_AOSP_KERNEL=1
כדי ליצור
את הליבה מהמקורות המקומיים.
לפרטים נוספים על מערכת הליבה של גרסת ה-build ואיך להתאים אישית את ה-build, קראו את המאמר Kleaf - בניית ליבות של Android בעזרת Bazel.
יצירת Flash של תמונות הליבה
הערה: אם לא השבתת את האימות, צריך לעשות אותו לפני ההבהוב של הליבה (kernel) המותאמת אישית. זוהי הפקודה:fastboot oem disable-verification
אזהרה: אם מפעילים ליבה (kernel) מותאמת אישית מעל build של פלטפורמה, ייתכן שיהיה צורך לאפס את נתוני המכשיר אם שדרוג לאחור ברמת התיקון (SPL) שמשויך לליבה החדשה. התהליך הזה מוחק את כל המידע האישי שלך. חשוב לגבות את הנתונים לפני איפוס הנתונים.fastboot -w
כדי להריץ את תמונות הליבה ב-Flash, מריצים את הפקודה fastboot flash
על כל ליבה
המחיצה שצוינה עבור המכשיר שלך. עבור מחיצות דינמיות, צריך להפעיל מחדש
למצב fastbootd
לפני הבהוב.
מכשירים | מחיצות ליבה |
---|---|
6 Pixel
(אוריל) Pixel 6 Pro (עורב) Pixel 6a (bluejay) |
אתחול dtbo vendor_boot vendor_dlkm (חלוקה דינמית) |
Pixel 8 (שיבה) Pixel 8 Pro (האסקי) Pixel Fold (פליקס) Pixel טאבלט (tangorpro) Pixel 7a (lynx) Pixel 7 (פנתר) Pixel 7 Pro (צ'יטה) |
אתחול dtbo vendor_kernel_boot ספק_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 |
גרסה 5.15 ואילך | out/DEVICE/dist |
הערה: אם יש לכם מתאם טורי וברצונך להפעיל את האפשרות הסידורית ביומנים, הפקודה היא:דוגמה לפקודה להתחברות מהמארח:fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
שחזור תמונות היצרן
כדי לשחזר את המכשיר לתמונות המקוריות, אפשר להשתמש Flash.android.com.
ליבות (kernel) של Pixel מדור קודם
לידיעתך, הסתעפויות הליבה (kernel) של Pixel מדור קודם בטבלה מופיעים בהסתעפויות מאגר הליבה של מכשירים מדגם Pixel 5 ודגמים קודמים. המכשירים האלה לא נתמכים ב-GKI.
הסתעפויות ליבה (kernel) של Pixel מדור קודם
מכשירים | נתיב בינארי בעץ AOSP | הסתעפויות מאגר |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (בראמבל) Pixel 5 (redfin) |
device/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (דג שמש) | device/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (להבה) Pixel 4 XL (קורל) |
device/google/coral-kernel | android-msm-coral-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (bonito) |
device/google/bonito-kernel | android-msm-bonito-4.9-android12L |
Pixel 3 (קו כחול) Pixel 3 XL (צלב) |
device/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (walleye) Pixel 2 XL (טייוואן) |
device/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (דג מפרשים) Pixel XL (מרלין) |
device/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |