ליבת אנדרואיד שאלות נפוצות

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

האם ניתן לשנות רשימות סמלים של ממשק מודול ליבה (KMI) בליבה יציבה?

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

האם אני יכול לשנות מבנים המשמשים את מודולי הספק בליבה יציבה?

מבנים שהם חלק מממשק KMI לא ניתנים לשינוי בקרנלים עם KMI קפוא. לפני הקפאת KMI, ניתן לשנות מבנים אלה.

האם אני יכול לשנות את הקרנל כל עוד אני לא שובר את התאימות בינארית/מקור?

ניתן לבצע שינויים שאינם משפיעים על ה-KMI כמתואר בתיקונים ספציפיים לאנדרואיד .

כיצד GKI מטפל בתצורת ליבה?

למידע על תצורת הליבה, עיין ב- Changes to gki_defconfig .

כיצד אוכל לטפל בתיקוני באגים במעלה הזרם עבור החלפות על מודולי GKI קיימים?

אם אתה יוצר מודול ספק המבוסס על מנהל התקן ב- Android Common Kernel (ACK) , זה תלוי בך כדי להבטיח שתיקוני באגים ממעלה הזרם ו-ACK יופצו למודול שלך. באופן כללי, זה האינטרס שלך להשתמש בליבת GKI ובמודולי GKI ללא שינוי, כך שעדכונים אלה מסופקים באופן עקבי על ידי Google.

האם יש בדיקות ספציפיות ל-GKI?

ישנן בדיקות של Vendor Test Suite (VTS) המאמתות שמותקן מבנה GKI מוסמך וגם כדי לאכוף דרישות GKI לכל מהדורה. לדוגמה, ישנן בדיקות Android 12 VTS עבור כותרת האתחול v3 וכדי לוודא את קיומן של מחיצות נדרשות במכשיר המריץ ליבה 5.10.

איך אני יוצר את קובץ הפרגמנט של הפרויקט defconfig עבור בניית מכשירים?

התקנים רבים תואמי GKI משתמשים בקטע תצורה כדי לתאר את אפשרויות התצורה הדרושות, בנוסף ל- gki_defconfig , כדי לבנות את מודולי הספק. דוגמאות שהן חלק מבסיס הקוד של ACK כוללות Cuttlefish ו-DB845c. אין דרך להימנע מבדיקה ידנית של אפשרויות תצורה כדי לייעל את הפרגמנט, אבל scripts/diffconfig ממקורות הליבה שימושיים להשוואת התוצאות של gki_defconfig ו- gki_defconfig+device.fragment .

האם יש דרך לעקיפת הטיפול ב-modprobe - וב-_ כשווה ערך?

דף האדם של modprobe מכיל את התיאור הזה: " modprobe מוסיף או מסיר באופן חכם מודול מקרנל הלינוקס: שימו לב שלצורך הנוחות, אין הבדל בין _ ו- בשמות המודולים (המרת קו תחתון אוטומטי מתבצעת)." צוות GKI דבק במוסכמה הסטנדרטית במעלה הזרם, כך שכלי ספקים או מוסכמות שמות של מודולים חייבים לקחת בחשבון ציות זה.

כיצד אוכל להפעיל ניפוי באגים לשימוש פנימי?

לפרטים על הפעלת ניפוי באגים, ראה תכונות ניפוי באגים פולשניות במורד הזרם .

כיצד אוכל לפתור ABIs לא תואמים בין ליבת GKI עם תצורת מודול ספציפי מופעלת?

ABIs לא תואמים בין ליבת ה-GKI לתצורת המודול מייצגים תלות מרומזת בתצורת מודול, כאשר הפעלת מודול גורמת לתצורה בינארית להיבנות בתמונת הליבה המתקבלת. פנה לצוות ליבת אנדרואיד ( kernel-team@android.com ) כדי לקבוע מסלול קדימה. לאחר קביעת רשימת הסמלים, צור באג ב- Issue Tracker והעלה שינוי לרשימת הסמלים.

יש לי מכשירים תואמי GKI 1.0 בשטח המריצים את ליבת ה-5.4 שהושקה עם אנדרואיד 11 ו-12. אילו אפשרויות שדרוג ליבה זמינות, וכיצד אוכל לבדוק את המכשירים הללו בעת שדרוג לאנדרואיד 12 ו-13?

עיין במטריצת התאימות לקבלת רשימה של גרסאות ליבה נתמכות עבור גרסאות השקה ושדרוג. הנה שתי דוגמאות לשדרוג.

דוגמה 1: משתמש עם מכשיר המופעל עם אנדרואיד 11 עם ליבת android11-5.4 ( GKI 1.0 ) יכול לבחור כל אחת מהאפשרויות הבאות בעת שדרוג לאנדרואיד 12:

  • שדרג לגרעין android12-5.10 GKI 2.0 (מומלץ בחום).

  • שמור על ליבת android11-5.4 .

  • שדרג לגרעין android12-5.4 .

דוגמה 2: משתמש עם מכשיר המופעל עם אנדרואיד 12 עם ליבת android12-5.4 או android12-5.10 יכול לבחור בכל אחת מהאפשרויות הבאות בעת שדרוג לאנדרואיד 13:

  • שדרג לגרעין android13-5.10 או android13-5.15 GKI 2.0 (מומלץ בחום).

  • שמור את ליבת android12-5.4 GKI 1.0 .

  • שמור את ליבת android12-5.10 GKI 2.0 .

במיוחד עבור בדיקות תאימות של טרבל, אנו ממליצים לבצע אחת מהפעולות הבאות:

  • החלף את ליבת השותף בליבת GKI 1.0 המאושרת ( android11-5.4 או android12-5.4 ).

  • שלח עם ליבת GKI 2.0 המאושרת ( android12-5.10 , android13-5.10 , או android13-5.15 ) בהתאם לבחירתך.

אתה יכול להוריד גרסאות של GKI 2.0 מ- Generic Kernel Image (GKI) מהדורת builds .