בנה גרעיני Pixel

מדריך זה מספק הוראות שלב אחר שלב כיצד להוריד, לקמפל ולהבזק ליבת 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 ואילך:

**איור 1.** תרשים זרימה של עדכון ליבה

הבזק את המכשיר באמצעות flash.android.com

  1. נווט אל flash.android.com
  2. בחר את מבנה האנדרואיד בהתבסס על שילובי פלטפורמת Android ו-Kernel הנתמכים .
  3. בחר את האפשרויות הבאות:
    • מחק מכשיר
    • כפה פלאש בכל המחיצות
    • השבת את האימות
  4. לחץ על לחצן התקן בנייה כדי להבהב את המכשיר.

**איור 2.** דוגמה לתחנת פלאש

הורד והידור של הליבה

סנכרן את מאגר הליבה

הפעל את הפקודות הבאות כדי להוריד את קוד המקור של הליבה. עיין בטבלה הנתמכת של 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 .
  1. הורד את תמונת היצרן הנתמכת עבור המכשיר שלך מ-https://developers.google.com/android/images.

  2. חלץ את 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
    
  3. פרק את ה- vendor_boot.img כדי להשיג את ה-ramdisk של הספק.

      KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \
          --out vendor_boot_out
    
  4. העתק את קובץ 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