این صفحه پروژه «تصویر هسته عمومی» (GKI) و نحوه افزایش پایداری Android و بهبود امنیت را توضیح میدهد.
سابقه
هر دستگاه مجهز به Android به یک هسته تولید نیاز دارد. پیشاز GKI، هستهها سفارشی بودند و براساس «هسته مشترک Android» (ACK) ساخته میشدند و تغییرات مختص دستگاه توسط فروشندگان «سیستم روی تراشه» (SoC) و «تولیدکنندگان تجهیزات اصلی» (OEM) اعمال میشد.
این سفارشیسازی میتواند منجر به این شود که تا ۵۰٪ از کد هسته کد خارج از درخت باشد و از هستههای Linux بالادستی یا ACK نباشد. بههمین دلیل، ماهیت سفارشی هستههای پیشGKI منجر به تکهتکه شدن قابلتوجه هسته شد.
هزینههای تکهتکهسازی
تکهتکهسازی هسته چندین تأثیر منفی بر انجمن Android دارد.
بهروزرسانیهای امنیتی نیازمند کار فشرده است
وصلههای امنیتی ذکرشده در بولتن امنیتی Android (ASB) باید به هریک از هستههای دستگاه برگردانده شوند. بااینحال، بهدلیل تکهتکهسازی هسته، انتشار اصلاحات امنیتی در دستگاههای Android درحال استفاده بسیار پرهزینه است.
ادغام بهروزرسانیهای «پشتیبانی بلندمدت» دشوار است
نسخههای پشتیبانی بلندمدت (LTS) شامل اصلاحات امنیتی و دیگر اصلاحات اشکال مهم است. بهروز ماندن با نسخههای LTS ثابت کرده است که مؤثرترین راه برای ارائه اصلاحات امنیتی است. در دستگاههای Pixel، مشخص شد که ۹۰٪ از مشکلات امنیتی هسته گزارششده در «بولتن امنیتی Android» قبلاً برای دستگاههایی که بهروز میمانند برطرف شده است.
بااینحال، با وجود همه اصلاحات سفارشی در هستههای دستگاه، ادغام اصلاحات LTS در هستههای دستگاه دشوار است.
جلوگیری از ارتقای نسخه پخش پلاتفرم Android
تکهتکه بودن باعث میشود افزودن ویژگیهای جدید Android که نیاز به تغییرات هسته دارند به دستگاههای درحال استفاده دشوار شود. کد چارچوب Android باید انواع مختلف هسته را درنظر میگرفت و نمیتوانست به ویژگیهای جدید Android که در هسته پیادهسازی شدهاند تکیه کند. این امر نوآوری را کند میکرد و باعث افزایش اندازه و پیچیدگی کد میشد.
مشارکت در تغییرات هسته به Linux بالادستی دشوار است
روش تکهتکه وارد کردن وصلهها به هستههای تولید باعث میشد تا ۱۸ ماه از زمانی که نسخه LTS در بالادست دردسترس قرار میگرفت تا زمانی که در دستگاه قرار میگرفت تأخیر ایجاد شود. این تأخیر طولانی بین انتشار هسته بالادستی و محصولات باعث میشود که جامعه Android نتواند ویژگیها و درایورهای موردنیاز را در هستههای بالادستی تزریق کند. تا زمانی که کاربر پیشنهادهای بهبود را ارسال میکرد، پایگاه کد تغییر کرده بود و نشان دادن ارتباط وصله را دشوار میکرد.
رفع تکهتکه شدن: تصویر هسته عمومی
پروژه «تصویر هسته عمومی» (GKI) با یکپارچه کردن هسته اصلی و انتقال پشتیبانی از SoC و برد از هسته اصلی به واحدهای فروشنده بارشدنی، به مشکل تکهتکه شدن هسته میپردازد. GKI همچنین یک «میانای واحد هسته» (KMI) پایدار برای واحدهای فروشنده ارائه میدهد تا واحدها و هسته بتوانند بهطور مستقل بهروز شوند. برخیاز ویژگیهای هسته GKI عبارتاند از:
- هسته GKI از منابع ACK ساخته میشود.
- هسته GKI یک دودویی تکهستهای بهعلاوه ماژولهای قابلبارگیری مرتبط بهازای هر معماری و بهازای هر نسخه LTS است.
- هسته GKI با همه نسخههای پخش «پلاتفرم Android» که برای ACK مرتبط پشتیبانی میشوند آزمایش میشود. برای طول عمر نسخه هسته GKI، هیچ ویژگیای منسوخ نمیشود.
- هسته GKI یک KMI پایدار را برای درایورها در یک LTS معین آشکار میکند.
- هسته GKI حاوی کد مختص SoC یا کد مختص برد نیست.
برای تصویر معماری GKI، به نمای کلی هسته مراجعه کنید.
تصویر مشترک
از Android 12 به بعد، دستگاههایی که با هسته نسخه ۵.۱۰ یا بالاتر عرضه میشوند باید با هسته GKI عرضه شوند. نسخههای «تصویر هسته عمومی» (GKI) ساخت بهطور منظم بهروزرسانی میشوند و بهطور منظم با «پشتیبانی بلندمدت» و رفع اشکالات حیاتی بهروزرسانی میشوند. ازآنجاییکه پایداری باینری برای KMI حفظ میشود، میتوانید این تصاویر را بدون ایجاد تغییر در تصاویر فروشنده نصب کنید. پروژه GKI این اهداف را دارد:
- هنگام جایگزین کردن هسته محصول با هسته GKI، افت عملکرد یا افت توان قابلتوجهی ایجاد نکنید.
- به شرکا امکان میدهد تا اصلاحات امنیتی هسته و رفع اشکالها را بدون دخالت فروشنده ارائه دهند.
- هزینه ارتقا نسخه اصلی هسته برای دستگاهها را کاهش دهید.
- با بهروزرسانی نسخههای هسته با فرایندی واضح برای ارتقا، برای هر معماری یک دودویی هسته GKI حفظ کنید.