Android trece la modelul „în amonte mai întâi” pentru noile funcții ale nucleului Linux

Google intenționează să treacă la un model de dezvoltare „în amonte” pentru funcțiile kernel-ului Linux în Android începând cu 2023. Citiți mai departe pentru a afla mai multe.

Când vezi cuvintele „Android” și „fragmentare” în aceeași propoziție, probabil că mintea ta sare imediat la Diagrama de distribuție a versiunii Android. Există câteva entități spre care majoritatea oamenilor își arată cu degetul atunci când se plâng că actualizările sistemului de operare Android întârzie să se difuzeze peste tot, dar Google poate face doar atâtea forta OEM să dezvolte și să lanseze actualizări mai rapid. Ceea ce poate face Google, totuși, este să reducă timpul de dezvoltare și, prin urmare, costul lansării actualizărilor.

Prima inițiativă majoră din proiectul pe termen lung al Google de reducere a sarcinilor de dezvoltare este Proiect Treble. Anunțat împreună cu Android 8.0 Oreo în 2017, Project Treble a modularizat Android, separând cadrul sistemului de operare de implementarea furnizorului (HAL-uri și kernel-ul Linux specific dispozitivului). Acest lucru le-a făcut mai ușor pentru OEM Android să-și rebazeze sistemele de operare pe cel mai recent cadru AOSP, deoarece puteau porni cea mai recentă versiune fără a avea nevoie de cod actualizat de la furnizori. Drept urmare, producătorii de echipamente originale și-ar putea pregăti furcile Android personalizate mai repede decât înainte și, prin extensie, pot lansa actualizări majore ale sistemului de operare mai rapid.

Următorul pas în planurile Google a fost să eficientizeze livrarea actualizărilor la componentele cheie Android. Google a numit această inițiativă Linia principală a proiectului când l-a introdus alături de Android 10 în 2019. În esență, Google a preluat controlul asupra componentelor cheie ale sistemului de operare și a interzis OEM-urilor să le modifice. Apoi au configurat un mecanism de livrare prin Google Play, astfel încât să poată lansa de la distanță actualizări pentru aceste componente cheie, fără a fi nevoie să aștepte ca OEM-urile să aplice ei înșiși patch-urile. Mainline a îmbunătățit considerabil cât de repede dispozitivele primesc versiuni actualizate ale componentelor importante ale sistemului de operare, îmbunătățind la rândul său securitatea ecosistemului Android în ansamblu.

Dar ceea ce urmează este și mai important și este, fără îndoială, cea mai importantă parte a strategiei pe termen lung a Google. Când am subliniat mai devreme cum Treble a modularizat Android prin separarea cadrului OS de sistemul implementarea furnizorului, am inclus „furnizarea nucleului Linux specifică dispozitivului” ca parte a acestui furnizor cod. Oricine este familiarizat cu Linux pe desktop-uri va recunoaște o problemă acolo: de ce este adunat cu codul de furnizor cu sursă închisă? Problema este că, în timp ce dispozitivele Android sunt livrate cu nucleul Linux, acel nucleu are un lot a codului în afara arborelui.

Cum am ajuns acolo? Problema, așa cum a subliniat de inginerul de software Google Todd Kjos la Conferința instalatorilor Linux din acest an (prin intermediul ArsTechnica), se datorează faptului că nucleul Linux principal este bifurcat de mai multe ori înainte de a fi livrat pe un dispozitiv Android. Google furnizează fiecare nucleu Linux principal într-un „Kernel comun Android", care urmărește îndeaproape versiunea principală, dar adaugă câteva corecții specifice Android. Furnizori de SoC cum ar fi Qualcomm, MediaTek și Samsung apoi se furcă acea kernel pentru fiecare SoC pe care îl fac. OEM-urile iau apoi acel nucleu specific SoC și adaugă corecții suplimentare pentru a implementa suport pentru hardware-ul specific pe care doresc să îl livreze.

Datorită acestor schimbări,"până la 50% din codul care rulează pe un dispozitiv este cod în afara arborelui (nu din nucleele comune Linux sau AOSP)", potrivit Google. Cantitatea mare de cod în afara arborelui de pe aceste dispozitive face ca fuzionarea modificărilor din amonte să fie un proces lung și provocator. Acest lucru este dăunător pentru securitatea dispozitivului, deoarece OEM-urile trebuie să muncească mai mult pentru a implementa corecții la vulnerabilitățile care sunt descoperite în nucleul Linux. În plus, acest lucru lasă majoritatea dispozitivelor Android pe versiuni de kernel vechi de ani, ceea ce înseamnă că pierd noile funcții ale nucleului Linux.

În efortul de a rezolva această problemă, Google lucrează la Android Generic Kernel Image (GKI), care este în esență un nucleu compilat direct dintr-o ramură ACK. GKI izolează personalizările furnizorilor de SoC și OEM la modulele plugin, eliminând codul din arbore și permițând Google să trimită actualizările kernelului direct către utilizatorul final. De peste un an, Google lucrează la o modalitate de a furniza actualizări GKI prin Magazinul Play, prin utilizarea unui modul Mainline.

Potrivit surselor noastre, dispozitivele care se lansează cu Android 12 și se livrează cu Linux kernel 5.10 trebuie să implementeze o imagine de pornire semnată de Google. Google este foarte propriu Pixel 6 seria se va lansa cu Android 12 din cutie și va fi livrată cu nucleul Linux 5.10, astfel încât cele două telefoane ar putea fi primele dispozitive de pe piața de masă livrate cu un GKI.

În plus, Todd Kjos de la Google a dezvăluit că compania intenționează să treacă la un model de dezvoltare „întâi în amonte” pentru noile funcții ale nucleului Linux. Acest lucru va ajuta Google să se asigure că noul cod ajunge pe primul loc în nucleul principal Linux, ceea ce va reduce datoria tehnică viitoare acumulată din aterizarea mai multor coduri în afara arborelui pe dispozitivele Android.

La Conferința instalatorilor Linux din această săptămână, Kjos a spus: „Deoarece modulele din afara arborelui sunt cu adevărat importante pentru cazul nostru de utilizare, ne așteptăm să avem întotdeauna un set de exporturi și unele lucruri care sunt diferite sau în plus față de ceea ce este în amonte, dar întreg acest proiect este un proiect pe mai mulți ani care lucrează pentru a scăpa de cât mai multe petice din copac posibil și pentru a se alinia cât mai mult posibil cu în amonte”. Google își propune să-și finalizeze activitatea în direcția upstream-ului funcțiilor existente și a izolarii schimbărilor furnizorilor până la sfârșitul anului 2022 și, începând din 2023, compania intenționează să adopte acest model de dezvoltare „în amonte primul” pentru a evita astfel de probleme în viitor.