Google va continua să dezvolte inovații pentru Android în nucleul principal Linux

La conferința Linux Plumbers 2021, Google a vorbit despre succesul inițiativei sale de a trece platforma Android pentru a utiliza un nucleu Linux obișnuit în loc să folosească propria versiune a nucleului, care include modificări specifice platformei Android.

Cea mai importantă schimbare în dezvoltare a fost decizia de a trece după 2023 la modelul „Upstream First”, ceea ce implică dezvoltarea tuturor caracteristicilor noi ale nucleului necesare în platforma Android direct în nucleul principal Linux, și nu în propriile ramuri separate ( funcționalitatea va fi mai întâi promovată la cea principală).kernel și apoi folosită în Android și nu invers). Transferul tuturor patch-urilor suplimentare rămase în ramura Android Common Kernel către nucleul principal este, de asemenea, planificat pentru 2023 și 2024.

În ceea ce privește viitorul apropiat, pentru platforma Android 12 așteptată la începutul lunii octombrie, vor fi oferite ansambluri de kernel „Generic Kernel Image” (GKI), cât mai apropiate de kernel-ul obișnuit 5.10. Pentru aceste versiuni, vor fi furnizate versiuni regulate de actualizări, care vor fi postate în depozitul ci.android.com. În nucleul GKI, completările specifice platformei Android, precum și handlerele legate de suport hardware de la OEM, sunt plasate în module de nucleu separate. Aceste module nu sunt legate de versiunea nucleului principal și pot fi dezvoltate separat, ceea ce simplifică foarte mult întreținerea și tranziția dispozitivelor la noi ramuri ale nucleului.

Google va continua să dezvolte inovații pentru Android în nucleul principal Linux

Interfețele cerute de producătorii de dispozitive sunt implementate sub formă de cârlige, care vă permit să schimbați comportamentul nucleului fără a face modificări codului. În total, nucleul android12-5.10 oferă 194 de cârlige obișnuite, similare cu punctele de urmărire, și 107 de cârlige specializate care vă permit să rulați handlere într-un context non-atomic. În nucleul GKI, producătorilor de hardware le este interzis să aplice patch-uri specifice nucleului principal, iar componentele de suport hardware trebuie furnizate de furnizori numai sub formă de module suplimentare de kernel, care trebuie să asigure compatibilitatea cu nucleul principal.

Să reamintim că platforma Android își dezvoltă propria ramură a nucleului - Android Common Kernel, pe baza căreia se formează ansambluri specifice separate pentru fiecare dispozitiv. Fiecare ramură a Android oferă producătorilor mai multe opțiuni pentru aspectul nucleului pentru dispozitivele lor. De exemplu, Android 11 a oferit o alegere dintre trei nuclee de bază - 4.14, 4.19 și 5.4, iar Android 12 va oferi nuclee de bază 4.19, 5.4 și 5.10. Opțiunea 5.10 este concepută ca o imagine generică a kernelului, în care capacitățile necesare pentru OEM sunt transferate în amonte, plasate în module sau transferate către kernelul comun Android.

Înainte de apariția GKI, nucleul Android a trecut prin mai multe etape de pregătire:

  • Pe baza principalelor nuclee LTS (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), a fost creată o ramură a „Android Common Kernel”, în care au fost transferate patch-uri specifice Android (anterior dimensiunea modificărilor a ajuns la câteva milioane de linii). ).
  • Pe baza „Android Common Kernel”, producătorii de cipuri precum Qualcomm, Samsung și MediaTek au format „SoC Kernel” care includea suplimente pentru a susține hardware-ul.
  • Pe baza kernel-ului SoC, producătorii de dispozitive au creat kernel-ul dispozitivului, care includea modificări legate de suportul pentru echipamente suplimentare, ecrane, camere, sisteme de sunet etc.

Această abordare a complicat semnificativ implementarea actualizărilor pentru a elimina vulnerabilitățile și tranziția la noi ramuri ale nucleului. Deși Google lansează în mod regulat actualizări pentru kernel-urile sale Android (Android Common Kernel), furnizorii întârzie adesea să furnizeze aceste actualizări sau, în general, folosesc același nucleu pe parcursul întregului ciclu de viață al unui dispozitiv.



Sursa: opennet.ru

Adauga un comentariu