این صفحه پروژه Generic Kernel Image (GKI) و چگونگی افزایش پایداری اندروید و بهبود امنیت را توضیح میدهد.
تاریخچه
هر دستگاه مجهز به اندروید به یک هسته تولیدی نیاز دارد. قبل از GKI، هستهها سفارشی و مبتنی بر هسته مشترک اندروید (ACK) بودند، با تغییرات خاص دستگاه توسط فروشندگان سیستم روی تراشه (SoC) و OEMها.
این سفارشیسازی میتواند منجر به این شود که تا 50 درصد از کدهای هسته کد خارج از درخت باشد و نه از هستههای بالادستی لینوکس یا ACK. به این ترتیب، ماهیت سفارشی هسته های قبل از GKI منجر به تکه تکه شدن هسته قابل توجهی شد.
هزینه های تکه تکه شدن
تکه تکه شدن هسته چندین اثر منفی روی جامعه اندروید دارد.
به روز رسانی های امنیتی کار فشرده هستند
وصلههای امنیتی ذکر شده در بولتن امنیتی Android (ASB) باید در هر یک از هستههای دستگاه بکپورت شوند. با این حال، به دلیل تکه تکه شدن هسته، انتشار اصلاحات امنیتی در دستگاه های Android در این زمینه بسیار گران است.
ادغام به روز رسانی های طولانی مدت پشتیبانی شده دشوار است
نسخههای با پشتیبانی طولانیمدت (LTS) شامل رفعهای امنیتی و سایر رفع اشکالهای حیاتی است. ثابت شده است که به روز بودن با نسخه های LTS موثرترین راه برای ارائه اصلاحات امنیتی است. در دستگاههای پیکسل، مشخص شد که ۹۰ درصد از مشکلات امنیتی هسته گزارششده در ASB قبلاً برای دستگاههایی که بهروز میمانند برطرف شدهاند.
با این حال، با تمام تغییرات سفارشی در هستههای دستگاه، ادغام اصلاحات LTS در هستههای دستگاه دشوار است.
جلوگیری از ارتقاء انتشار پلتفرم اندروید
تکه تکه شدن، ویژگی های جدید اندروید را که نیاز به تغییرات هسته به دستگاه های موجود در این زمینه دارند، دشوار می کند. کد فریمورک اندروید باید تغییرات هستههای مختلف را در نظر میگرفت و نمیتوانست به ویژگیهای جدید اندرویدی که در هسته پیادهسازی میشوند تکیه کند، این امر نوآوری را کند کرد و باعث افزایش حجم و پیچیدگی کد شد.
بازگرداندن تغییرات هسته به لینوکس بالادست دشوار است
روش تکه تکهکشیدن وصلهها به هستههای تولید باعث تأخیر 18 ماهه از زمانی که نسخه LTS در بالادست در دسترس بود تا زمانی که در دستگاه بود، شد. این تأخیر طولانی بین انتشار هسته بالادستی و محصولات باعث میشود که انجمن اندروید نتواند ویژگیها و درایورهای مورد نیاز را به هستههای بالادستی وارد کند. زمانی که کاربر پیشنهاداتی را برای بهبود ارسال کرد، پایگاه کد تغییر کرده بود و نشان دادن ارتباط وصله را دشوار میکرد.
رفع تکه تکه شدن: Generic Kernel Image
پروژه Generic Kernel Image (GKI) با یکپارچه سازی هسته اصلی و انتقال SoC و پشتیبانی برد به خارج از هسته هسته به ماژول های فروشنده قابل بارگذاری، به تکه تکه شدن هسته می پردازد. GKI همچنین یک رابط ماژول هسته (KMI) پایدار برای ماژول های فروشنده ارائه می دهد، بنابراین ماژول ها و هسته را می توان به طور مستقل به روز کرد. برخی از ویژگی های هسته GKI عبارتند از:
- هسته GKI از منابع ACK ساخته شده است.
- هسته GKI یک ماژول باینری تک هسته ای به همراه ماژول های قابل بارگیری در هر معماری، در هر نسخه LTS است.
- هسته GKI با تمام نسخههای پلتفرم Android که برای ACK مرتبط پشتیبانی میشوند، آزمایش میشود. هیچ ویژگی برای طول عمر نسخه هسته GKI حذف نشده است.
- هسته GKI یک KMI پایدار را در معرض رانندگان یک LTS معین قرار می دهد.
- هسته GKI حاوی کد مخصوص SoC یا برد نیست.
برای تصویری از معماری GKI، به نمای کلی هسته مراجعه کنید.
تصویر مشترک
با Android 12، دستگاههایی که هسته نسخه 5.10 یا بالاتر دارند باید با هسته GKI ارسال شوند. بیلدهای انتشار تصویر هسته عمومی (GKI) به طور منظم به روز می شوند و به طور منظم با LTS و رفع اشکالات حیاتی به روز می شوند. از آنجایی که ثبات باینری برای KMI حفظ می شود، می توانید این تصاویر بوت را بدون ایجاد تغییرات در تصاویر فروشنده نصب کنید. پروژه GKI این اهداف را دارد:
- هنگام جایگزینی هسته محصول با هسته GKI، رگرسیون عملکرد یا قدرت قابل توجهی را معرفی نکنید.
- شرکا را فعال کنید تا رفعهای امنیتی هسته و رفع اشکال را بدون دخالت فروشنده ارائه کنند.
- هزینه ارتقاء نسخه اصلی هسته برای دستگاه ها را کاهش دهید.
- با بهروزرسانی نسخههای هسته با فرآیندی واضح برای ارتقا، یک هسته باینری واحد GKI را در هر معماری حفظ کنید.