סקירה כללית על הליבה

ליבת Android מבוססת על ליבת Linux Long Term Supported (LTS). ב-Google, ליבות LTS משולבות עם תיקונים ספציפיים ל-Android כדי ליצור ליבות משותפות של Android‏ (ACK).

ה-ACK נוצר ממאגר kernel/common. המאגר הזה הוא קבוצה רחבה יותר של ליבת Linux, עם תיקונים נוספים שספציפיים ל-Android.

‫ACKs בגרסה 5.10 ומעלה נקראים גם ליבות *generic kernel images (GKI). ליבות GKI תומכות בהפרדה בין קוד הליבה הגנרית שאינו תלוי בחומרה לבין מודולי GKI, לבין מודולי הספק שספציפיים לחומרה.

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

ארכיטקטורה של מודול ספק וליבת GKI.

איור 1. ארכיטקטורה של מודול ספק וליבת GKI.

מילון מונחים בנושא ליבה

בהמשך מפורטים מונחים שמופיעים במשאבי העזרה בנושא ליבת המערכת.

סוגי ליבה

Android Common Kernel (ACK)
ליבת מערכת הפעלה שהיא downstream של ליבת LTS וכוללת תיקונים שחשובים לקהילת Android. התיקונים האלה לא מוזגו לליבת Linux או לליבות GKI לטווח ארוך.

ליבות עם גרסאות 5.10 ואילך נקראות גם ליבות Generic Kernel Image (GKI).

ליבת Android Open Source Project (AOSP)
ראו Android Common Kernel.

אי אפשר להעביר תכונות של Android 12 לגרסאות קודמות של ליבות 4.19. קבוצת התכונות תהיה דומה לזו של מכשיר שהושק עם גרסה 4.19 ב-Android 11 ושודרג ל-Android 12.

ליבת Generic Kernel Image (GKI)

כל ליבת ACK מגרסה 5.10 ואילך(רק aarch64). ליבת ה-GKI מורכבת משני חלקים:

  • ליבת מערכת הפעלה גנרית – החלק בליבת ה-GKI שמשותף לכל המכשירים.

  • מודולי GKI – מודולי ליבה שנוצרו על ידי Google ואפשר לטעון אותם באופן דינמי במכשירים שבהם זה רלוונטי. המודולים האלה נוצרים כארטיפקטים של ליבת GKI ונמסרים לצד GKI כארכיון system_dlkm_staging_archive.tar.gz. מודולי GKI נחתמים על ידי Google באמצעות צמד המפתחות של זמן בניית הליבה, והם תואמים רק לליבת GKI שבה הם נבנו.

ליבת Kernel Module Interface‏ (KMI)

מידע נוסף על ליבת GKI

Long Term Supported (LTS) kernel

ליבת Linux שנתמכת למשך שנתיים עד 6 שנים. ליבות LTS יוצאות פעם בשנה ומהוות את הבסיס לכל הליבות המשותפות של Android של Google.

סוגי הסתעפויות

ענף ליבת ACK KMI
הענף שעבורו נוצרים ליבות GKI. שמות הסניפים תואמים לגרסאות הליבה, כמו android15-6.6.
Android-mainline
ההסתעפות הראשית של הפיתוח לתכונות של Android. כשמכריזים על ליבת LTS חדשה במעלה הזרם, יוצרים הסתעפות של ליבת GKI חדשה תואמת מ-android-mainline.

Linux mainline : ענף הפיתוח הראשי של ליבות Linux במעלה הזרם, כולל ליבות LTS.

תנאים אחרים

תמונת אתחול מאומתת
הליבה מועברת בפורמט בינארי (boot.img) ומוצגת במכשיר. התמונה הזו נחשבת מאושרת כי היא מכילה אישורים מוטמעים, ולכן Google יכולה לאמת שהמכשיר נשלח עם ליבת מערכת שאושרה על ידי Google.
מודול ליבה שניתן לטעינה באופן דינמי (DLKM)
מודול שאפשר לטעון באופן דינמי במהלך אתחול המכשיר, בהתאם לצרכים של המכשיר. ‫GKI ומודולים של ספקים הם שני סוגים של DLKM. מודולי DLKM מופצים בפורמט .ko ויכולים להיות מנהלי התקנים או לספק פונקציונליות אחרת של ליבת מערכת ההפעלה.
פרויקט GKI
פרויקט Google שמטפל בפיצול של ליבת המערכת על ידי הפרדה של פונקציונליות ליבה משותפת מתמיכה ב-SoC וב-board ספציפיים לספק, למודולים שאפשר לטעון.

Generic Kernel Image (GKI): תמונת אתחול שאושרה על ידי Google ומכילה GKI kernel שנבנה מתוך עץ מקור של ACK ומתאים להעברה למחיצת האתחול של מכשיר מבוסס-Android.

ממשק מודול ליבת המערכת (KMI)
ממשק בין ליבת GKI לבין מודולים של ספקים, שמאפשר למודולים של ספקים להתעדכן באופן עצמאי בלי קשר לליבת GKI. הממשק הזה מורכב מפונקציות ליבה ומנתונים גלובליים שזוהו כתלות בספק או ביצרן ציוד מקורי (OEM) באמצעות רשימות סמלים לכל שותף.
Vendor module
מודול ספציפי לחומרה שפותח על ידי שותף ומכיל SoC ופונקציונליות ספציפית למכשיר. מודול ספק הוא סוג של מודול ליבה שאפשר לטעון באופן דינמי.

השלבים הבאים

אם אתם חדשים בפיתוח ליבת Android, כדאי להתחיל בקריאת המאמרים הבאים:

אם אתם חדשים בפיתוח ליבת GKI, כדאי להתחיל בקריאת המאמר פיתוח GKI.