در کنفرانس لینوکس Plumbers 2021، گوگل در مورد موفقیت ابتکار خود برای انتقال پلتفرم اندروید به استفاده از هسته لینوکس معمولی به جای استفاده از نسخه خود هسته که شامل تغییرات مختص پلتفرم اندروید است صحبت کرد.
مهمترین تغییر در توسعه، تصمیم به تغییر پس از سال 2023 به مدل "Upstream First" بود، که به توسعه تمام ویژگی های هسته جدید مورد نیاز در پلتفرم اندروید به طور مستقیم در هسته اصلی لینوکس و نه در شاخه های جداگانه خود اشاره دارد. عملکرد ابتدا به اصلی ارتقا داده می شود). همچنین برنامه ریزی شده است که در سال های 2023 و 2024 تمام وصله های اضافی باقی مانده در شاخه Android Common Kernel به هسته اصلی منتقل شود.
در مورد آینده نزدیک، برای پلتفرم اندروید 12 که در اوایل اکتبر انتظار میرود، مجموعههای هسته «تصویر هسته عمومی» (GKI) تا حد امکان نزدیک به هسته معمولی 5.10 ارائه میشوند. برای این بیلدها، نسخه های منظم به روز رسانی ارائه می شود که در مخزن ci.android.com پست می شود. در هسته GKI، افزودنیهای خاص پلتفرم اندروید، و همچنین کنترلکنندههای مرتبط با پشتیبانی سختافزار از OEMها، در ماژولهای هسته جداگانه قرار میگیرند. این ماژول ها به نسخه هسته اصلی گره خورده نیستند و می توانند به طور جداگانه توسعه داده شوند، که نگهداری و انتقال دستگاه ها به شاخه های هسته جدید را بسیار ساده می کند.
اینترفیس های مورد نیاز سازندگان دستگاه به صورت هوک پیاده سازی شده اند که به شما امکان می دهد بدون ایجاد تغییر در کد، رفتار هسته را تغییر دهید. در مجموع، هسته android12-5.10 194 قلاب معمولی، مشابه نقاط ردیابی، و 107 قلاب تخصصی را ارائه میدهد که به شما امکان میدهد کنترلکنندهها را در یک زمینه غیر اتمی اجرا کنید. در هسته GKI، تولیدکنندگان سختافزار از اعمال وصلههای خاص بر روی هسته اصلی منع شدهاند و اجزای پشتیبانی سختافزار باید توسط فروشندگان فقط در قالب ماژولهای هسته اضافی عرضه شوند که باید از سازگاری با هسته اصلی اطمینان حاصل کنند.
بیایید به یاد بیاوریم که پلت فرم اندروید در حال توسعه شاخه هسته خود است - هسته مشترک Android، که بر اساس آن مجموعه های خاص جداگانه برای هر دستگاه تشکیل می شود. هر شاخه از اندروید چندین گزینه برای چیدمان هسته برای دستگاه های خود به تولیدکنندگان می دهد. به عنوان مثال، اندروید 11 انتخابی از سه هسته اصلی - 4.14، 4.19 و 5.4 را ارائه می دهد و اندروید 12 هسته های اصلی 4.19، 5.4 و 5.10 را ارائه می دهد. گزینه 5.10 به عنوان یک تصویر هسته عمومی طراحی شده است که در آن قابلیت های لازم برای OEM ها به بالادست منتقل می شود، در ماژول ها قرار می گیرد یا به هسته مشترک Android منتقل می شود.
قبل از ظهور GKI، هسته اندروید چندین مرحله آماده سازی را پشت سر گذاشت:
- بر اساس هسته های اصلی LTS (3.18، 4.4، 4.9، 4.14، 4.19، 5.4)، شاخه ای از "کرنل مشترک اندروید" ایجاد شد که وصله های مخصوص اندروید به آن منتقل شد (قبلا اندازه تغییرات به چندین میلیون خط می رسید. ).
- بر اساس "Android Common Kernel"، سازندگان تراشه مانند Qualcomm، Samsung و MediaTek "SoC Kernel" را تشکیل دادند که شامل افزونه هایی برای پشتیبانی از سخت افزار بود.
- بر اساس SoC Kernel، سازندگان دستگاه Device Kernel را ایجاد کردند که شامل تغییرات مربوط به پشتیبانی از تجهیزات اضافی، صفحه نمایش، دوربین، سیستم های صوتی و غیره بود.
این رویکرد به طور قابل توجهی اجرای به روز رسانی ها را برای از بین بردن آسیب پذیری ها و انتقال به شاخه های هسته جدید پیچیده کرد. اگرچه Google مرتباً بهروزرسانیهایی را برای هستههای اندرویدی خود منتشر میکند (کرنل مشترک اندروید)، فروشندگان اغلب در ارائه این بهروزرسانیها کند هستند یا معمولاً از هسته یکسانی در کل چرخه عمر دستگاه استفاده میکنند.
منبع: opennet.ru