نمای کلی هسته

هسته اندروید مبتنی بر یک هسته بالادستی لینوکس با پشتیبانی طولانی مدت (LTS) است. در Google، هسته‌های LTS با وصله‌های مخصوص اندروید ترکیب می‌شوند تا هسته‌های مشترک Android (ACK) را تشکیل دهند.

ACK ها از مخزن هسته/مشترک ساخته می شوند. این مخزن یک ابرمجموعه از هسته بالادست لینوکس، با وصله های اضافی مخصوص اندروید است.

ACKهایی که 5.10 و بالاتر هستند به عنوان هسته *عمومی کرنل (GKI) نیز شناخته می شوند. هسته‌های GKI از جداسازی کد هسته عمومی و ماژول‌های GKI از ماژول‌های فروشنده مخصوص سخت‌افزار پشتیبانی می‌کنند.

تعامل بین هسته GKI و ماژول های فروشنده توسط رابط ماژول هسته (KMI) فعال می شود که از لیست های نمادی تشکیل شده است که عملکردها و داده های جهانی مورد نیاز ماژول های فروشنده را شناسایی می کند. شکل 1 ساختار هسته GKI و ماژول فروشنده را نشان می دهد:

هسته GKI و معماری ماژول فروشنده.

شکل 1. معماری هسته GKI و ماژول فروشنده.

واژه نامه هسته

در زیر اصطلاحاتی که در اسناد هسته استفاده می شوند آورده شده است.

انواع هسته

هسته مشترک اندروید (ACK)
هسته ای که در پایین دست یک هسته LTS است و شامل وصله هایی است که برای جامعه اندروید مهم هستند. این وصله‌ها در هسته اصلی لینوکس یا هسته‌های بلندمدت GKI ادغام نشده‌اند.

هسته‌های دارای نسخه‌های 5.10 و بالاتر به عنوان هسته‌های تصویر هسته عمومی (GKI) نیز شناخته می‌شوند.

هسته پروژه منبع باز اندروید (AOSP).
Android Common Kernel را ببینید.

ویژگی‌های اندروید 12 را نمی‌توان به هسته‌های 4.19 پشتیبان‌گیری کرد. مجموعه ویژگی مشابه دستگاهی است که با نسخه 4.19 در اندروید 11 راه اندازی شده و به اندروید 12 ارتقا یافته است.

هسته تصویر هسته عمومی (GKI).

هر هسته ACK 5.10 و بالاتر (فقط aarch64). هسته GKI دارای دو بخش است:

  • هسته عمومی - بخشی از هسته GKI که در همه دستگاه ها مشترک است.

  • ماژول‌های GKI - ماژول‌های هسته ساخته‌شده توسط Google که می‌توانند به صورت پویا در دستگاه‌ها در صورت لزوم بارگیری شوند. این ماژول ها به عنوان مصنوعات هسته GKI ساخته شده اند و در کنار GKI به عنوان بایگانی system_dlkm_staging_archive.tar.gz تحویل داده می شوند. ماژول‌های GKI توسط Google با استفاده از جفت کلید زمان ساخت هسته امضا می‌شوند و فقط با هسته GKI که با آن ساخته شده‌اند سازگار هستند.

هسته رابط ماژول هسته (KMI).

به هسته GKI مراجعه کنید.

هسته با پشتیبانی طولانی مدت (LTS).

یک هسته لینوکس که برای 2 تا 6 سال پشتیبانی می شود. هسته های LTS یک بار در سال منتشر می شوند و اساس هر یک از هسته های مشترک اندروید گوگل هستند.

انواع شاخه

شاخه هسته ACK KMI
شاخه ای که هسته های GKI برای آن ساخته می شوند. نام شاخه ها با نسخه های هسته، مانند android15-6.6 مطابقت دارد.
Android-Mainline
شاخه توسعه اولیه برای ویژگی های اندروید. هنگامی که یک هسته LTS جدید در بالادست اعلام می شود، هسته GKI جدید مربوط به آن از android-mainline منشعب می شود.

خط اصلی لینوکس : شاخه توسعه اولیه برای هسته های بالادستی لینوکس، از جمله هسته های LTS.

سایر اصطلاحات

تصویر بوت تایید شده
هسته به شکل باینری ( boot.img ) تحویل داده شد و بر روی دستگاه فلش شد. این تصویر تأیید شده در نظر گرفته می‌شود زیرا حاوی گواهی‌های جاسازی‌شده است، بنابراین Google می‌تواند تأیید کند که دستگاه با یک هسته تأیید شده توسط Google ارسال می‌شود.
ماژول هسته قابل بارگذاری پویا (DLKM)
ماژولی که می تواند به صورت پویا در هنگام بوت دستگاه بسته به نیاز دستگاه بارگذاری شود. ماژول‌های GKI و فروشنده هر دو نوع DLKM هستند. DLKM ها به شکل .ko منتشر می شوند و می توانند درایور باشند یا سایر عملکردهای هسته را ارائه دهند.
پروژه GKI
یک پروژه Google که با جداسازی عملکرد هسته هسته مشترک از SoC و پشتیبانی برد مخصوص فروشنده به ماژول های قابل بارگذاری، به تجزیه هسته پرداخته است.

Generic Kernel Image (GKI) : یک تصویر بوت تایید شده توسط Google که حاوی یک هسته GKI است که از درخت منبع ACK ساخته شده است و برای فلش شدن در پارتیشن بوت یک دستگاه مجهز به اندروید مناسب است.

رابط ماژول هسته (KMI)
یک رابط بین هسته GKI و ماژول های فروشنده که به ماژول های فروشنده اجازه می دهد مستقل از هسته GKI به روز شوند. این رابط شامل توابع هسته و داده های جهانی است که با استفاده از لیست نمادهای هر شریک به عنوان وابستگی های فروشنده/OEM شناسایی شده اند.
ماژول فروشنده
یک ماژول مخصوص سخت افزار که توسط یک شریک توسعه یافته است و حاوی SoC و عملکردهای خاص دستگاه است. ماژول فروشنده نوعی ماژول هسته قابل بارگذاری پویا است.

بعدش چی

اگر در توسعه هسته اندروید تازه کار هستید، با خواندن مطالب زیر شروع کنید:

اگر در توسعه هسته GKI تازه کار هستید، با خواندن توسعه GKI شروع کنید.