סקירת ליבה

ליבת האנדרואיד מבוססת על ליבת Linux Long Term Supported (LTS) במעלה הזרם. ב-Google, ליבות LTS משולבות עם תיקונים ספציפיים לאנדרואיד כדי ליצור מה שידוע כ- Android Common Kernels (ACKs) .

ACKs חדשים יותר (גרסה 5.4 ומעלה) ידועים גם כ- GKI kernels . ליבות GKI תומכות בהפרדה של קוד הליבה הגנרי האגנסטי לחומרה וממודולי GKI ממודולי הספק הספציפיים לחומרה.

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

ארכיטקטורת GKI
איור 1. ארכיטקטורת GKI

מילון מונחים של גרעין

סעיף זה מכיל מונחים המשמשים בכל תיעוד הליבה.

סוגי גרעין

Android Common Kernel (ACK)
ליבה שנמצאת במורד הזרם של ליבת LTS וכוללת תיקונים המעניינים את קהילת אנדרואיד שלא מוזגו לתוך ליבות Linux mainline או Long Term Supported (LTS). ACKs חדשים יותר (גירסה 5.4 ומעלה) ידועים גם כגרעיני GKI מכיוון שהם תומכים בהפרדה בין קוד גרעין כללי לחומרה אגנוסטית לבין מודולי GKI אגנוסטיים לחומרה.
ליבת Android Open Source Project (AOSP).
עיין ב- Android Common Kernel.
ליבת תכונה
ליבה שעבורו מובטחות הטמעת תכונות שחרור הפלטפורמה. לדוגמה, באנדרואיד 12, שני גרעיני התכונות היו android12-5.4 ו-android12-5.10. לא ניתן להעביר תכונות אנדרואיד 12 לאחור לגרעיני 4.19; מערך התכונות יהיה דומה למכשיר שהושק עם 4.19 ב-R ושודרג ל-S).
גרעין ליבה גנרי
החלק של ליבת GKI המשותף בכל המכשירים.
ליבת תמונת ליבה כללית (GKI).
כל ליבת ACK חדשה יותר (5.4 ומעלה) (כרגע aarch64 בלבד). הליבה הזו כוללת שני חלקים: ליבת ה-GKI עם קוד משותף בכל המכשירים ומודולי GKI שפותחו על ידי גוגל, שניתן לטעון באופן דינמי במכשירים במידת האפשר.
ליבת ממשק מודול ליבה (KMI).
ראה גרעין GKI .
הפעל את Kernel
ליבה שתקפה להפעלת מכשיר עבור מהדורת פלטפורמת אנדרואיד נתונה. לדוגמה, באנדרואיד 12, גרעיני ההשקה התקפים היו 4.19, 5.4 ו-5.10.
קרנל נתמך לטווח ארוך (LTS).
ליבת לינוקס הנתמכת למשך שנתיים עד 6 שנים. גרעיני LTS משוחררים פעם בשנה והם הבסיס לכל אחד מה- ACKs של Google.

סוגי סניפים

סניף ליבת ACK KMI
הענף עבורו בנויים גרעיני GKI . לדוגמה, android12-5.10 ו-android13-5.15.
אנדרואיד-קו הראשי
ענף הפיתוח העיקרי לתכונות אנדרואיד. כאשר מוכרז קרנל LTS חדש במעלה הזרם, ליבת ה-GKI החדשה המקבילה מסועפת מ-android-mainline.
קו מרכזי של לינוקס
ענף הפיתוח העיקרי של ליבות לינוקס במעלה הזרם, כולל ליבות LTS.

תנאים אחרים

תמונת אתחול מאושרת
הקרנל נמסר בצורה בינארית ( boot.img ) והבזק על המכשיר. תמונה זו מאושרת במובן זה שהיא מכילה אישורים משובצים כך שגוגל יכולה לאמת שהמכשיר נשלח עם ליבה מאושרת על ידי גוגל.
מודול ליבה הניתן לטעינה דינמית (DLKM)
מודול שניתן לטעון באופן דינמי במהלך אתחול המכשיר בהתאם לצרכי המכשיר. GKI ומודול ספקים הם שני סוגי DLKMs. DLKMs משוחררים בצורת .ko ויכולים להיות מנהלי התקנים או יכולים לספק פונקציונליות קרנל אחרת.
פרויקט GKI
פרויקט של Google העוסק בפיצול ליבה על ידי הפרדת פונקציונליות ליבה משותפת מתמיכה ב-SoC ולוח ספציפיים לספקים למודולים הניתנים לטעינה.
תמונת ליבה כללית (GKI)
תמונת אתחול מאושרת על ידי גוגל המכילה ליבת GKI הבנויה מעץ מקור ACK ומתאימה להבהב למחיצת האתחול של מכשיר אנדרואיד.
KMI
ממשק בין ליבת ה-GKI למודולי הספק המאפשר לעדכן מודולי ספקים ללא תלות בליבת ה-GKI. ממשק זה מורכב מפונקציות ליבה ונתונים גלובליים שזוהו כתלות בספק/OEM באמצעות רשימות סמלים לכל שותף.
מודולי GKI
מודולי ליבה שנבנו על ידי Google וניתנים לטעינה דינמית במכשירים במידת הצורך. מודולים אלו בנויים כחפצים של ליבת GKI ומסופקים לצד GKI כארכיון system_dlkm_staging_archive.tar.gz . מודולי GKI נחתמים על ידי Google באמצעות צמד המפתחות של זמן בניית הליבה והם תואמים רק לליבת ה-GKI שאיתה הם בנויים.
מודול ספק
מודול ספציפי לחומרה שפותח על ידי שותף ומכיל SoC ופונקציונליות ספציפית למכשיר. מודול ספק הוא סוג של מודול ליבה הניתן לטעינה דינמית.

מה הלאה?