תהליך שחרור תמונת ליבה כללית (GKI).

מסמך זה מתאר כיצד GKI משוחרר, כולל מהדורות חירום שבועיות, חודשיות ומחוץ ללהקה. המטרה של מסמך זה היא לתת ליצרני ציוד מקורי הנחיה לגבי היכן לאסוף את ה-GKI וכן את התהליך לתיקוני חירום מחוץ לתחום. יצרני OEM יכולים גם להשתמש במדריך הפיתוח של GKI כדי ללמוד עוד על האופן שבו הם יכולים לעבוד עם צוות Android Kernel כדי לייעל את ליבת GKI עבור המוצרים שלהם.

קצב שחרור GKI

GKI משוחרר בהקפאה חודשית לאחר ה-KMI.

מהדורת אנדרואיד 13 ו-14 GKI

הטבלה הבאה חלה רק על android13-5.10 , android13-5.15 ו- android14-6.1 .

בנייה מוסמכת חודשית של GKI תאריך הפסקת הצ'ק-אין תאריך מוכן לטעינה מראש של GKI מְאוּשָׁר?
אוֹקְטוֹבֶּר 14 באוקטובר 2022 31 באוקטובר 2022 כן
נוֹבֶמבֶּר 14 בנובמבר 2022 30 בנובמבר 2022 כן
דֵצֶמבֶּר 9 בדצמבר 2022 21 בדצמבר 2022 כן
יָנוּאָר 17 בינואר 2023 31 בינואר 2023 כן
פברואר 15 בפברואר 2023 28 בפברואר 2023 כן
מרץ 15 במרץ 2023 31 במרץ 2023 כן
אַפּרִיל 13 באפריל, 2023 28 באפריל, 2023 כן
מאי 17 במאי 2023 31 במאי 2023 כן
יוני 15 ביוני 2023 30 ביוני 2023 כן
יולי 18 ביולי 2023 31 ביולי 2023 כן
אוגוסט 16 באוגוסט 2023 31 באוגוסט 2023 כן
סֶפּטֶמבֶּר 14 בספטמבר 2023 29 בספטמבר 2023 כן
אוֹקְטוֹבֶּר 18 באוקטובר 2023 31 באוקטובר 2023 כן
נוֹבֶמבֶּר 10 בנובמבר, 2023 30 בנובמבר 2023 כן
דֵצֶמבֶּר 7 בדצמבר 2023 22 בדצמבר 2023 כן
יָנוּאָר 16 בינואר 2024 31 בינואר 2024 כן
פברואר 13 בפברואר 2024 29 בפברואר 2024 כן
מרץ 13 במרץ, 2024 29 במרץ 2024 כן
אַפּרִיל 16 באפריל, 2024 30 באפריל, 2024 כן
מאי 14 במאי 2024 31 במאי 2024 כן
יוני 12 ביוני 2024 28 ביוני 2024 כן
יולי 16 ביולי 2024 31 ביולי 2024 כן
אוגוסט 15 באוגוסט 2024 30 באוגוסט 2024 כן
סֶפּטֶמבֶּר 17 בספטמבר 2024 30 בספטמבר 2024 כן
אוֹקְטוֹבֶּר 15 באוקטובר 2024 31 באוקטובר 2024 כן
נוֹבֶמבֶּר 11 בנובמבר 2024 27 בנובמבר 2024 כן
דֵצֶמבֶּר 6 בדצמבר 2024 23 בדצמבר 2024 כן

החל מינואר 2024, נחדש את ההפצות החודשיות של android14-5.15 בהתאם לקצב החודשי שצוין המתואר בטבלה למטה.

בנייה מוסמכת חודשית של GKI תאריך הפסקת הצ'ק-אין תאריך מוכן לטעינה מראש של GKI מְאוּשָׁר?
יָנוּאָר 16 בינואר 2024 31 בינואר 2024 כן
פברואר 13 בפברואר 2024 29 בפברואר 2024 כן
מרץ 4 במרץ 2024 15 במרץ, 2024 כן
אַפּרִיל 1 באפריל, 2024 17 באפריל, 2024 כן
מאי 1 במאי 2024 17 במאי 2024 כן
יוני 3 ביוני 2024 17 ביוני 2024 כן
יולי 1 ביולי 2024 15 ביולי 2024 כן
אוגוסט 1 באוגוסט 2024 16 באוגוסט 2024 כן
סֶפּטֶמבֶּר 2 בספטמבר 2024 16 בספטמבר 2024 כן
אוֹקְטוֹבֶּר 1 באוקטובר 2024 14 באוקטובר 2024 כן
נוֹבֶמבֶּר 1 בנובמבר 2024 15 בנובמבר 2024 כן
דֵצֶמבֶּר 2 בדצמבר 2024 16 בדצמבר 2024 כן

שחרור אנדרואיד 12 GKI

לאחר מאי 2023, מהדורות android12-5.10 GKI נמצאות בקצב של חודשיים ומתפרסמות באמצע החודש. הטבלה הבאה חלה רק על android12-5.10 .

בנייה מוסמכת חודשית של GKI תאריך הפסקת הצ'ק-אין תאריך מוכן לטעינה מראש של GKI מְאוּשָׁר?
יולי 3 ביולי 2023 14 ביולי 2023 כן
סֶפּטֶמבֶּר 1 בספטמבר 2023 15 בספטמבר 2023 כן
נוֹבֶמבֶּר 3 בנובמבר 2023 17 בנובמבר 2023 כן
יָנוּאָר 5 בינואר 2024 19 בינואר 2024 כן
מרץ 4 במרץ 2024 15 במרץ, 2024 כן
מאי 1 במאי 2024 17 במאי 2024 כן

תוקף בניית GKI עבור יצרני OEM

יצרני OEM יכולים להשתמש ב-Android GKI שיצא לאחרונה. יצרני ציוד מקורי יכולים להשיק עם רכיבים מאושרים עם GKI כל עוד הם עומדים בדרישות ה-LTS בעלון האבטחה של Android (ASB).

מהדורות פיתוח שבועיות

נבדקו עם דיונון כדי להבטיח שהם עוברים רף איכות מינימלי .

קבצי GKI בינאריים זמינים לשירות עצמי מ- ci.android.com כאשר השינויים מתמזגים. בנייה שבועית לא תאושר, אם כי יכולה לשמש כבסיס לפיתוח ובדיקות. לא ניתן להשתמש בבנייה שבועית לבניית מכשירי ייצור עבור משתמשי קצה.

שחרורים מוסמכים חודשיים

מהדורות חודשיות של GKI מכילות boot.img שנבדק הכולל אישור שהוכנס מ-Google כדי להעיד שהקבצים הבינאריים נבנו מבסיס קוד מקור ידוע.

בכל חודש, מועמד לשחרור חודשי של GKI (לא מוסמך) נבחר לאחר תאריך הפסקת הצ'ק-אין, שהוא בדרך כלל הבנייה השבועית השנייה של אותו חודש. לאחר בחירת המועמד לשחרור חודשי, שינויים חדשים לא יתקבלו לשחרור של אותו חודש. במהלך תקופת החלון הסגור, ניתן לטפל רק בתיקונים עבור באגים שגורמים לכישלון בבדיקה. המועמד לשחרור עובר הבטחת איכות - כמתואר בסעיף ההסמכה של GKI - כדי להבטיח שמבחני תאימות עוברים על מבנה GSI+GKI עם מכשיר ייחוס וכן דיונון.

ציר זמן קצב שחרור GKI איור 1. ציר זמן לשחרור GKI

תהליך ספין חירום

Respin מתייחס לתהליך של מיזוג מחדש, בנייה מחדש, בדיקה חוזרת ואישור מחדש של קובץ בינארי לאחר פרסום פומבי של ליבת GKI . אתה יכול לבקש ספין חוזר של קובץ בינארי מאושר בכל אחת מהנסיבות הבאות:

  • לעדכון רשימת סמלים.
  • כדי להחיל תיקון לבאג, כולל באגים שנמצאו במהלך אישור מעבדת הספק.
  • כדי להוסיף וו ספק .
  • להחלת תיקון על תכונה קיימת.
  • להחלת תיקון אבטחה (לאחר 6 חודשים).

תיקוני אבטחה מתמזגים אוטומטית לסניף שחרור עד 6 חודשים לאחר שחרורו של הסניף. לאחר הפסקת 6 חודשים, עליך לבקש respin כדי להחיל תיקוני אבטחה על סניף.

לפני בקשת ספין חוזר, שים לב להנחיות הבאות:

  • ספינים חוזרים מותרים רק בסניפי שחרור לאחר שהושקה שחרור פומבי ראשוני של מבנה חודשי .

  • בקשות Respin מתקבלות רק עבור ענף שחרור נתון למשך שישה חודשים לכל היותר לאחר השחרור הראשוני לציבור. לאחר שישה חודשים, סניפים זכאים ל-respin רק עבור תיקוני אבטחה שצוינו בעלון אבטחה של אנדרואיד .

  • כאשר דרישות ה-LTS , המוגדרות על-ידי עלון האבטחה של Android (ASB) גורמות לכך שהסניף אינו תואם, הסניף מוצא משימוש. בקשות ספין חוזר לסניפים שהוצאו משימוש לא יתקבלו. תאריך ההוצאה משימוש עבור ענף שחרור GKI נתון כלול בהערות הבנייה החודשיות של GKI שחרור תחת מהדורות . לתכנון עתידי, דרישות ה-LTS מתעדכנות בחודשים מאי ונובמבר מדי שנה. לדוגמה, הסניף android12-5.10-2023-07 (5.10.177) אינו נתמך עבור ספינים חוזרים לאחר 1 במאי 2024, מכיוון שהענף android12-5.10-2023-07 (5.10.177) אינו תואם את דרישות LTS של ASB-2024-05.

  • Respins ישימים רק עבור תיקוני באגים דחופים, עדכוני רשימת סמלים, או להחלת תיקון לתיקון תכונה קיימת.

  • כל התיקונים הנכנסים לענף השחרור החודשי כבר חייבים להיות מוזגים לענף הפיתוח הראשי של GKI. לדוגמה, אם נדרש תיקון עבור ספין חוזר של android12-5.10-2022-09 , יש למזג אותו כבר ל- android12-5.10 .

  • עליך לבחור טלאי דובדבן מסניף הפיתוח הראשי של GKI ולהעלות את התיקון לסניף השחרור החודשי.

  • בבקשת ה-respin, עליך להקצות עדיפות (דחיפות) לבקשה. עדיפות זו עוזרת לצוות GKI לסייע טוב יותר לשותפים בזמן. עבור בקשות קריטיות או רגישות לזמן, סמן עדיפות כ- P0 . עבור בקשות P0 ו-P1, עליך גם לנמק את הדחיפות. הטבלה הבאה מספקת מיפוי של עדיפות באג וזמן לפתרון (ESRT):

    עדיפות ESRT
    P0 2 ימי עסקים
    P1 5 ימי עסקים
    P2 10 ימי עסקים
    P3 15 ימי עסקים
  • עליך להגיש בקשת ספין נפרדת לכל ענף שחרור. לדוגמה, אם יש צורך ב-respin הן עבור android12-5.10-2022-08 והן android12-5.10-2022-09 , עליך ליצור שתי בקשות ספין חוזר.

  • לאחר ש-build מסופק ובקשת ספין חוזר מסומנת כקבועה, אין לפתוח מחדש את בקשת ה-respin כדי להוסיף CLs נוספים. עליך להגיש בקשת respin חדשה אם יש תיקונים נוספים שצריך למזג.

  • עבור כל CL שנבדק, הוסף את התגים הבאים. התקדמות בקשת ה-respin חסומה ללא מידע זה.

    • Bug : יש להוסיף את מזהה הבאג להודעת ה-commit עבור כל CL.
    • Change-Id : חייב להיות זהה ל-Change-Id של שינוי ענף הבסיס.
  • אם בקשת ספין חוזרת מחייבת את תגובתך, ואתה לא מגיב תוך שלושה ימי עסקים, העדיפות יורדת ברמה אחת (לדוגמה, P0 יורדת ל- P1 ). אם לא תגיב במשך שבועיים, הבאג מסומן בתור לא יתוקן (מיושן) .

שלח בקשת ספין חוזר

התרשים הבא מציג את תהליך ה-respin. התהליך מתחיל כאשר שותף OEM (אתה) מגיש את בקשת ה-respin.

תהליך ספין חירום איור 2. תהליך ה-respin

כדי להיכנס לתהליך ה-respin:

  1. מלא את טופס הבקשה של GKI Respin . ופנה למנהל החשבון הטכני שלך ב-Google באופן מיידי. טופס זה יוצר באג בבקשת ספין של GKI. באגים של בקשת Respin גלויים לך (המבקש), לצוות GKI ולאנשים ספציפיים שאתה מוסיף לרשימת ה-CC של הבאג.
    • אם כבר יש לך תיקון, הבקשה צריכה להצביע על הגשת התיקון ב-AOSP כדי שגוגל תוכל לבדוק אותו. אם שליחת התיקון אינה ריאלית, יש לצרף את התיקון כקובץ טקסט לבקשה.
    • אם אין לך תיקון, הבקשה חייבת להכיל מידע רב ככל האפשר, כולל מספר גרסת הליבה ויומנים, כדי ש-Google תוכל לעזור בניפוי באגים בבעיה.
  2. צוות Google GKI בוחן את הבקשה ומאשר אותה או מקצה אותה אליך אם יש צורך במידע נוסף.
  3. לאחר הסכמה על תיקון, קוד צוות GKI של Google בוחן (CR+2) את השינוי. הסקירה מתחילה את מסגרת הזמן של ESRT. צוות GKI ממזג, בונה, בודק רגרסיה ומאשר את השינוי.
  4. הקובץ הבינארי משוחרר אל ci.android.com . מסגרת הזמן של ESRT מסתיימת וצוות ה-GKI של Google מסמן את הבקשה כקבועה ומתייחס למבנה ה-respin. בניית ה-respin תפורסם גם בדף בניית הגרסה הגנרית של תמונת ליבה (GKI) .

כישורי GKI

סוגי בניית GKI אכיפה איכותית הערות
שְׁבוּעִי בדיקת דיונון
  • מַגָף
  • קבוצת משנה של VTS
  • קבוצת משנה של CTS
  • לא מוסמך. רק לבדיקה ו
    להעלות מכשיר.
  • לא ניתן להשתמש להפעלת מכשירים.
חודשי (מוסמך) בדיקת דיונון
  • מַגָף
  • VTS
  • CTS
בדיקת חומרה התייחסות
  • מַגָף
  • VTS
  • CTS
    סיבובים חוזרים (מוסמך) בדיקת דיונון
    • מַגָף
    • VTS
    • קבוצת משנה של CTS
    בדיקת מכשירי התייחסות
    • מַגָף
    • VTS
    • נבנה על גבי מבנה מוסמך GKI.
    • המבנה מאושר לאחר הסמכה.

    היכן ניתן להשיג חפצי בנייה

    ניתן להשיג חפצים עבור כל המהדורות מ- ci.android.com .

    תוכל למצוא מידע נוסף על ה-CI, כולל תוצאות הבדיקה בלוח המחוונים של Android Continuous Integration .

    שאלות נפוצות

    האם ניתן לבנות GKI בינארי חדש המבוסס על GKI שכבר פורסם?

    כן, זה ידוע בתור respin. תהליך ה-respin נתמך כל עוד מבנה ה-GKI ששוחרר (עליו מתבקש ה-respin) תואם לדרישות LTS בעלון האבטחה של Android (ASB).

    האם ניתן לשחזר קבצים בינאריים של GKI?

    כן, עיין בדוגמה למטה.

    GKI 2.0
    5.10 kernel prebuilts from build 7364300
    https://ci.android.com/builds/submitted/7364300/kernel_aarch64/latest
    

    כדי לשחזר את הדוגמה, הורד את manifest_$id.xml והפעל את הפקודה הבאה:

    repo init -u https://android.googlesource.com/kernel/manifest
    mv manifest_7364300.xml .repo/manifests
    repo init -m manifest_7364300.xml --depth=1
    repo sync
    # build the GKI images
    # You may want to use LTO=thin to build faster for development
    BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
    # (optional) build virtual platform modules
    BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh
    

    אתה יכול לאחזר את עותק החפץ GKI שלך מ- out/.../dist .

    האם ה-GKI הבינארי (כולל תיקון ספין חירום) נבנה על בסיס הקוד העדכני ביותר?

    לא. Respins מכילים רק תיקונים שנמצאים על גבי הגרעינים המאושרים החודשיים שנבחרו. ה-respins הללו מכילים את כל תיקוני הבאגים חוסמי ההשקה שדווחו עד כל זמן נתון על ידי יצרני OEM המשתמשים במהדורה החודשית הבסיסית המתאימה. ראה את הדוגמה הבאה לאופן שבו סוג זה של תרחיש מתרחש.

    • OEM1 ו-OEM2 מחליטים להשתמש במהדורה הבינארית של GKI מנובמבר 2021.
    • OEM1 ו-OEM2 מוצאים בעיות הדורשות תיקונים לתמיכה. תיקונים אלה עשויים להיות שונים או עשויים להיות זהים.
    • ל-respins מעל ה-respin הבינארי של נובמבר 2021 יש תיקוני חסימת השקה שדווחו על ידי OEM1 ו- OEM2 במהלך חלון ה-respin, אבל לא יותר מזה.
    • הבעיות המוזכרות בתבליט השני נכללות גם במהדורות החודשיות הבאות של GKI.

    ב-respin של אוקטובר יש את כל התיקונים של OEM שנשלחו, אבל תיקוני OEM אחרים משפיעים עלינו, מכיוון שהם לא נבדקו ספציפית עם המוצרים שלנו. האם אפשר לכלול רק את התיקון שלנו?

    זה לא אפשרי. נתיב respin "לכל OEM" אינו ניתן להרחבה כרגע. במקום זאת, צוות GKI בוחן כל שינוי שנכנס ל-respin build, ובודק את השינויים עם כל החומרה הזמינה לפני יצירת build חדש. אם צוות GKI מגלה שהבעיה היא ספציפית ל-OEM/מכשיר/דגם, צוות GKI יכול להבטיח שהקוד שנוסף על ידי השינוי יתבצע רק במכשיר/דגם/SKU המושפעים.

    היתרון העיקרי מ-respin מאוחד הוא שכל מכשיר שמשתמש באותו בסיס מהדורה מרוויח אחד מהשני, במיוחד אם הבאגים שהם מגלים הם גנריים וישימים לכל המשתמשים. באגי ליבה שנמצאו בבדיקת ספקים הם דוגמה ספציפית למושג זה.

    האם ישנם מצבים שבהם Google מספקת מידע ספציפי על תיקוני OEM ותרחישי בעיות, כדי שיצרני OEM יכולים להעריך את ההשפעה והסיכון של יישום התיקונים עם המוצרים שלהם?

    גוגל לעולם לא תוסיף שינוי למבנה respin עד שהבעיה תובן ולאיסוף כל הפרטים. זה נראה ב-changelog (הודעת commit). גוגל לא חושפת על איזה מכשיר ספציפי זה משפיע, אבל יצרני OEM תמיד יכולים למצוא את תיאור הבעיה והפתרון ביומן השינויים.