Android siirtyy "upstream first" -malliin uusille Linux-ytimen ominaisuuksille

click fraud protection

Google aikoo siirtyä "upstream first" -kehitysmalliin Linux-ytimen ominaisuuksille Androidissa vuodesta 2023 alkaen. Lue lisää saadaksesi lisätietoja.

Kun näet sanat "Android" ja "fragmentaatio" samassa lauseessa, mielesi hyppää todennäköisesti välittömästi Android-version jakelukaavio. Useimmat ihmiset osoittavat sormellaan valitessaan, että Android-käyttöjärjestelmän päivitykset tulevat saataville hitaasti, mutta Google voi tehdä vain niin paljon pakottaa OEM-valmistajat voivat kehittää ja ottaa käyttöön päivityksiä nopeammin. Google voi kuitenkin lyhentää kehitysaikaa ja siten päivitysten käyttöönoton kustannuksia.

Ensimmäinen iso aloite Googlen pitkäjänteisessä kehitysrasituksen keventämisprojektissa on Projekti Treble. Vuonna 2017 Android 8.0 Oreon rinnalla julkistettu Project Treble modularisoi Androidin erottamalla käyttöjärjestelmäkehyksen toimittajan toteutuksesta (HAL: t ja laitekohtainen Linux-ytimen haarukka). Tämä helpotti Androidin OEM-valmistajien perustaa käyttöjärjestelmänsä uusimman AOSP-kehyksen päälle, koska he pystyivät käynnistämään uusimman version tarvitsematta päivitettyä koodia toimittajilta. Tämän seurauksena OEM-valmistajat saattoivat valmistaa mukautettuja Android-haarukkansa nopeammin kuin ennen, ja laajemmalti ottaa käyttöön suuret käyttöjärjestelmäpäivitykset nopeammin.

Seuraava askel Googlen suunnitelmissa oli virtaviivaistaa päivitysten toimittamista tärkeimpiin Android-komponentteihin. Google kutsui tätä aloitetta Projektin päälinja kun se esitteli sen Android 10:n rinnalla vuonna 2019. Google pohjimmiltaan otti hallintaansa käyttöjärjestelmän tärkeimmät komponentit ja kielsi OEM-valmistajia muuttamasta niitä. Sitten he määrittelivät toimitusmekanismin Google Playn kautta, jotta he voisivat julkaista päivityksiä näihin avainkomponentteihin etäältä ilman, että heidän tarvitsee odottaa, että OEM-valmistajat asentavat korjaukset itse. Mainline paransi huomattavasti sitä, kuinka nopeasti laitteet vastaanottavat päivitetyt versiot tärkeistä käyttöjärjestelmäkomponenteista, mikä puolestaan ​​parantaa koko Android-ekosysteemin turvallisuutta.

Mutta se, mitä tulee seuraavaksi, on vielä tärkeämpää, ja se on luultavasti tärkein osa Googlen pitkän aikavälin strategiaa. Kun huomautimme aiemmin, kuinka Treble modularisoi Androidin erottamalla käyttöjärjestelmäkehyksen toimittajan toteutus, sisällytimme "laitekohtaisen Linux-ytimen haarukan" osaksi tätä toimittajaa koodi. Jokainen, joka tuntee Linuxin pöytäkoneilla, tunnistaa siellä olevan ongelman: miksi se on yhdistetty suljetun lähdekoodin toimittajakoodiin? Ongelmana on, että vaikka Android-laitteet toimitetaan Linux-ytimen kanssa, ytimessä on a paljon out-of-tree-koodista.

Kuinka pääsimme sinne? Ongelma, kuten Googlen ohjelmistosuunnittelija Todd Kjos kuvaili osoitteessa tämän vuoden Linux Plumbers Conference (kautta ArsTechnica), johtuu siitä, että Linux-ydin on haaroittunut useita kertoja ennen kuin se toimitetaan Android-laitteeseen. Google muodostaa jokaisen Linux-ytimen "Androidin yhteinen ydin" haara, joka seuraa tarkasti pääversiota, mutta lisää muutaman Android-kohtaisen korjaustiedoston. SoC-toimittajat, kuten Qualcomm, MediaTek ja Samsung, haarautuvat sitten että ydin jokaiselle heidän valmistamalleen SoC: lle. OEM-valmistajat ottavat sitten kyseisen SoC-kohtaisen ytimen ja lisäävät lisäkorjauksia toteuttaakseen tuen tietylle laitteistolle, jonka he haluavat toimittaa.

Näiden muutosten vuoksi "jopa 50 % laitteessa käynnissä olevasta koodista on puun ulkopuolista koodia (ei Linuxin tai AOSP: n yleisistä ytimistä)", Googlen mukaan. Näiden laitteiden suuri määrä puun ulkopuolista koodia tekee alkupään muutosten yhdistämisestä pitkän ja haastavan prosessin. Tämä on haitallista laitteen turvallisuudelle, koska OEM-valmistajien on työskenneltävä enemmän korjatakseen Linux-ytimestä löydetyt haavoittuvuudet. Lisäksi tämä jättää useimmat Android-laitteet vuosia vanhoille ytimen julkaisuille, mikä tarkoittaa, että ne menettävät uusia Linux-ytimen ominaisuuksia.

Tämän ongelman ratkaisemiseksi Google työskentelee Android Generic Kernel Image (GKI) -kuvan parissa, joka on pohjimmiltaan ACK-haarasta koottu ydin. GKI eristää SoC-toimittajan ja OEM-muokkaukset laajennusmoduuleille, eliminoi puun ulkopuolisen koodin ja sallii Googlen lähettää ytimen päivitykset suoraan loppukäyttäjälle. Google on yli vuoden ajan työskennellyt tapaa toimittaa GKI-päivitykset Play Kaupan kautta, Mainline-moduulin avulla.

Lähteemme mukaan laitteet, jotka käynnistyvät kanssa Android 12 ja toimitetaan Linux-ytimen 5.10:n kanssa, on otettava käyttöön Googlen allekirjoittama käynnistyskuva. Googlen aivan oma Pixel 6 Sarja julkaistaan ​​Android 12 -käyttöjärjestelmällä ja Linux-ytimellä 5.10, joten nämä kaksi puhelinta voivat olla ensimmäisiä massamarkkinalaitteita, jotka toimitetaan GKI: llä.

Lisäksi Googlen Todd Kjos paljasti, että yritys aikoo siirtyä "upstream first" -kehitysmalliin uusille Linux-ytimen ominaisuuksille. Tämä auttaa Googlea varmistamaan, että uusi koodi päätyy ensimmäisenä Linux-ytimen päälinjaan, mikä vähentää tulevaa teknistä velkaa, joka kertyy useammasta puun ulkopuolisesta koodista laskeutumisesta Android-laitteille.

Tämän viikon Linux-putkimieskonferenssissa Kjos sanoi, "Koska puun ulkopuoliset moduulit ovat todella tärkeitä käyttötapauksellemme, odotamme, että meillä on aina joukko vientituotteita ja joitain asioita, jotka ovat erilaisia ​​tai sen lisäksi mitä on. ylävirtaan, mutta koko tämä projekti on monivuotinen projekti, jonka tavoitteena on päästä eroon mahdollisimman monista puun ulkopuolisista paikoista ja yhdenmukaistaa mahdollisimman paljon ylävirta." Google pyrkii saattamaan työnsä päätökseen nykyisten ominaisuuksien lisäämiseksi ja toimittajamuutosten eristämiseksi vuoden 2022 loppuun mennessä ja vuodesta 2023 alkaen yhtiö aikoo ottaa käyttöön tämän "upstream first" -kehitysmallin välttääkseen tällaiset ongelmat tulevaisuutta.