نمای کلی هسته

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

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

«پیام‌های تأییدیه» ۵.۱۰ و بالاتر به‌عنوان هسته‌های *تصویر هسته عمومی (GKI) نیز شناخته می‌شوند. هسته‌های GKI از جداسازی کد هسته اصلی عمومی مستقل از سخت‌افزار و واحدهای GKI از واحدهای فروشنده سخت‌افزار-ویژه پشتیبانی می‌کنند.

تعامل بین هسته GKI و واحدهای فروشنده توسط میانای واحد هسته (KMI) فعال می‌شود که شامل فهرست‌های نمادی است که توابع و داده‌های سراسری موردنیاز واحدهای فروشنده را شناسایی می‌کند. شکل ۱ معماری هسته GKI و واحد فروشنده را نشان می‌دهد:

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

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

واژه‌نامه Kernel

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

انواع هسته

Android Common Kernel (ACK)
هسته‌ای که پایین‌دست هسته LTS است و شامل وصله‌هایی است که برای انجمن Android مهم هستند. این وصله‌ها در هسته‌های Linux mainline یا Long Term GKI ادغام نشده‌اند.

به هسته‌های نسخه ۵.۱۰ و بالاتر، تصویر هسته عمومی (GKI) نیز گفته می‌شود.

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

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

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

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

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

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

هسته «میانای واحد هسته» (KMI)

هسته GKI را ببینید.

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

هسته Linux که ۲ تا ۶ سال پشتیبانی می‌شود. هسته‌های LTS سالی یک‌بار منتشر می‌شوند و پایه هریک از هسته‌های مشترک Android Google هستند.

انواع انشعاب

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

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

شرایط دیگر

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

تصویر هسته عمومی (GKI) :تصویر راه‌اندازی گواهی‌شده توسط Google که حاوی هسته GKI ساخته‌شده از درخت منبع ACK است و برای نوشتن در پارتیشن راه‌اندازی دستگاه Android مناسب است.

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

قدم بعدی چیست

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

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