מדריך זה מספק הוראות שלב אחר שלב כיצד להוריד, לקמפל ולהבזק ליבת Pixel מותאמת אישית לפיתוח. בשל GKI, כעת ניתן לעדכן את הליבה ללא תלות בבניית פלטפורמת אנדרואיד. השלבים האלה חלים רק על מכשירי Pixel 6 ואילך. הסיבה לכך היא שמכשירי Pixel 5 וקודמים יותר דורשים עדכון של מודולי הליבה במחיצת vendor
, התלויה בבניית פלטפורמת אנדרואיד עבור אותם מכשירים. טבלת ענפי ה-GKI Supported Pixel Kernel כוללת את ענף המניפסט של מאגר הליבה עבור כל מכשיר Pixel נתמך ב-GKI. עיין בסעיף גרעיני פיקסל מדור קודם עבור ענפי מניפסט הליבה של Pixel 5 וקודמים יותר.
GKI תמכה בענפי ליבת Pixel
התקן | נתיב בינארי בעץ AOSP | סניפי מאגר | גרעין GKI |
---|---|---|---|
Pixel 8 (shiba) Pixel 8 Pro (האסקי) | device/google/shusky-kernel | android-gs-shusky-5.15-android14-d1 | אנדרואיד14-5.15 |
Pixel Fold (פליקס) | device/google/felix-kernel | android-gs-felix-5.10-android14 | אנדרואיד13-5.10 |
Pixel Tablet (tangorpro) | device/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14 | אנדרואיד13-5.10 |
Pixel 7a (לינקס) | device/google/lynx-kernel | android-gs-lynx-5.10-android14 | אנדרואיד13-5.10 |
Pixel 7 (פנתר) Pixel 7 Pro (צ'יטה) | device/google/pantah-kernel | android-gs-pantah-5.10-android14 | אנדרואיד13-5.10 |
Pixel 6a (bluejay) | device/google/bluejay-kernel | android-gs-bluejay-5.10-android14 | אנדרואיד13-5.10 |
Pixel 6 (oriole) Pixel 6 Pro (עורב) | device/google/raviole-kernel | android-gs-raviole-5.10-android14 | אנדרואיד13-5.10 |
בנוסף לליבות הנתמכות על ידי היצרן, מכשירי ה-Pixel 6 ו-6 Pro נתמכים למטרות פיתוח GKI רק בענפי הליבה הנפוצים של אנדרואיד הכלולים בטבלה נתמכת Pixel 6/6 Pro Android Platform ושילובי ליבה . בשל הבדלי UAPI של ספקים בין HALs של פלטפורמת אנדרואיד ומנהלי התקנים של ליבת Pixel, הטבלה מספקת את שילובי הבנייה הנתמכים.
נתמך בשילובי פלטפורמת אנדרואיד Pixel 6/6 Pro ושילובי ליבה
סניף מניפסט ליבה של פיקסל | סניף GKI | בניית פלטפורמת אנדרואיד | תמיכה aosp-main ? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline ( תג v6.7 ) | UP1A.231005.007.A1 (10762838) | כן |
android14-gs-pixel-6.1 | אנדרואיד14-6.1 | UP1A.231005.007.A1 (10762838) | כן |
gs-android13-gs-raviole-5.15 | אנדרואיד13-5.15 | TQ1A.230205.002 (9471150) | לא |
הכן את מכשיר ה-Pixel שלך
תרשים הזרימה הבא מתאר את התהליך לעדכון הליבה במכשירי Pixel 6 ואילך:
הבזק את המכשיר באמצעות flash.android.com
- נווט אל flash.android.com
- בחר את מבנה האנדרואיד בהתבסס על שילובי פלטפורמת Android ו-Kernel הנתמכים .
- בחר את האפשרויות הבאות:
- מחק מכשיר
- כפה פלאש בכל המחיצות
- השבת את האימות
- לחץ על לחצן התקן בנייה כדי להבהב את המכשיר.
הורד והידור של הליבה
סנכרן את מאגר הליבה
הפעל את הפקודות הבאות כדי להוריד את קוד המקור של הליבה. עיין בטבלה הנתמכת של 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
במאגר הליבה כך שיתאים ל-build של פלטפורמת אנדרואיד המובזק במכשיר. יש כמה אפשרויות שאתה יכול לעקוב אחריהם.
אפשרות 1) חלץ את תמונת ה-ramdisk של הספק מתמונת המפעל של Pixel .
הורד את תמונת היצרן הנתמכת עבור המכשיר שלך מ-https://developers.google.com/android/images.
חלץ את
vendor_boot.img
:- הפקודות הבאות משתמשות ב-Pixel 6 Pro UP1A.231005.007.a1 כדוגמה. החלף את שם קובץ ה-zip בשם הקובץ של תמונת היצרן שהורדת.
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
פרק את ה-
vendor_boot.img
כדי להשיג את ה-ramdisk של הספק.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
העתק את קובץ
ramdisk_
שחולץ למאגר הקרנל של Pixel.התקן DEVICE_RAMDISK_PATH Pixel 6 (oriole)
Pixel 6 Pro (עורב)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
אפשרות 2) העתק את vendor_ramdisk
ממאגר פלטפורמת אנדרואיד שנבנה באופן מקומי.
התקן | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (עורב) | 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
קומפיל את הגרעין (Kleaf)
באנדרואיד 13, הסקריפט build.sh
הוחלף במערכת בניית קרנל חדשה בשם Kleaf . עבור מכשירים המשתמשים ב- android13-5.15
ואילך, הליבה צריכה להיבנות באמצעות Kleaf.
עבור Pixel 6 ו-6 Pro עם גרעיני android14
ואילך, הפעל את פקודת ה-Kleaf build:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
עבור Pixel 6 ו-6 Pro עם גרעיני android13-5.15
, הפעל את פקודת Kleaf build:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
עבור כל שאר ליבות ה-Pixel, הפעל את הסקריפט build_ DEVICE.sh
שנמצא ב- KERNEL_REPO_ROOT . לדוגמה, כדי לבנות את הליבה עבור Pixel 6 על הענף android-gs-raviole-5.10-android14
, תפעיל את הפקודה:
build_slider.sh
כברירת מחדל, הסקריפטים build_ DEVICE .sh
משתמשים בקרנל GKI המובנה מראש כדי להאיץ את תהליך הבנייה. אם אתה רוצה לשנות את ליבת הליבה, הגדר את משתנה הסביבה BUILD_AOSP_KERNEL=1
כדי לבנות את הליבה מהמקורות המקומיים במקום זאת.
לפרטים נוספים על מערכת בניית הקרנל וכיצד להתאים אישית את המבנה, עיין בתיעוד Kleaf .
הבזק את תמונות הקרנל
הערה: אם לא השבתת את האימות, עליך לעשות זאת לפני הבהוב של הליבה המותאמת אישית. הנה הפקודה לעשות זאת:fastboot oem disable-verification
אזהרה: אם אתה מהבהב ליבה מותאמת אישית על גבי בניית פלטפורמה, ייתכן שיהיה עליך למחוק את המכשיר שלך אם יש שדרוג לאחור של רמת תיקון האבטחה (SPL) הקשור לליבה החדשה. תהליך זה מוחק את כל הנתונים האישיים שלך. הקפד לגבות את הנתונים שלך לפני המחיקה.fastboot -w
כדי להבהב את תמונות הקרנל, הפעל את פקודת fastboot flash
עבור כל מחיצת ליבה הרשומה עבור המכשיר שלך. עבור מחיצות דינמיות, עליך לאתחל למצב fastbootd
לפני ההבהוב.
התקן | מחיצות ליבה |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (עורב) Pixel 6a (bluejay) | מַגָף dtbo ספק_אתחול vendor_dlkm (מחיצה דינמית) |
Pixel 8 (shiba) Pixel 8 Pro (האסקי) Pixel Fold (Felix) Pixel Tablet (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 |
---|---|
v5.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) (דשן) Pixel 5 (אדום) | device/google/redbull-kernel | android-msm-redbull-4.19-android14 |
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 (סרגו) Pixel 3a XL (בוניטו) | 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 (ארנק) Pixel 2 XL (טיימן) | device/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
פיקסל (דג מפרש) Pixel XL (מרלין) | device/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |