מסמך זה מתאר כיצד 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 עם מכשיר ייחוס וכן דיונון.
איור 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:
- מלא את טופס הבקשה של GKI Respin . ופנה למנהל החשבון הטכני שלך ב-Google באופן מיידי. טופס זה יוצר באג בבקשת ספין של GKI. באגים של בקשת Respin גלויים לך (המבקש), לצוות GKI ולאנשים ספציפיים שאתה מוסיף לרשימת ה-CC של הבאג.
- אם כבר יש לך תיקון, הבקשה צריכה להצביע על הגשת התיקון ב-AOSP כדי שגוגל תוכל לבדוק אותו. אם שליחת התיקון אינה ריאלית, יש לצרף את התיקון כקובץ טקסט לבקשה.
- אם אין לך תיקון, הבקשה חייבת להכיל מידע רב ככל האפשר, כולל מספר גרסת הליבה ויומנים, כדי ש-Google תוכל לעזור בניפוי באגים בבעיה.
- צוות Google GKI בוחן את הבקשה ומאשר אותה או מקצה אותה אליך אם יש צורך במידע נוסף.
- לאחר הסכמה על תיקון, קוד צוות GKI של Google בוחן (CR+2) את השינוי. הסקירה מתחילה את מסגרת הזמן של ESRT. צוות GKI ממזג, בונה, בודק רגרסיה ומאשר את השינוי.
- הקובץ הבינארי משוחרר אל ci.android.com . מסגרת הזמן של ESRT מסתיימת וצוות ה-GKI של Google מסמן את הבקשה כקבועה ומתייחס למבנה ה-respin. בניית ה-respin תפורסם גם בדף בניית הגרסה הגנרית של תמונת ליבה (GKI) .
כישורי GKI
סוגי בניית 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 תמיד יכולים למצוא את תיאור הבעיה והפתרון ביומן השינויים.