Google chystá zásadní změnu, která pomůže v aktualizacích Androidu

20. 11. 2019

Sdílet

 Autor: Redakce
Google našel další způsob, jak snížit fragmentaci své mobilní platformy a jak uspíšit aktualizace mobilů a dalších zařízení s Androidem.
Projekt Treble

implementovaný v Androidu 8 a novějších byl důležitým krokem ke snížení fragmentace celé platformy. Google totiž oddělil „firmware“ (kernel, ovladače a různá rozhraní) a vrstvu, kde se nachází další části systému a aplikace. Obě části mohou vznikat nezávisle na sobě a výrobcům mobilů zjednodušují práci při vydávání aktualizací či upgradů, protože ta druhá část může ve velké míře být společná pro více zařízení současně. Nedávno Google řekl, že díky Treblu se Android 9 rozšířil dvakrát rychleji než předchůdce.

Ani to ale nestačí a v Googlu již přemýšlejí, jak rozdělit i onu první část. Ta totiž zůstává největší překážkou ve vývoji a distribuci Androidu. Systém běží na upraveném linuxovém jádru, ale po vydání stabilního kernelu následují tři neoddělitelné kroky.

Dlouhá cesta Linuxu do našich kapes

Jádro systému nejprve upraví Google, čímž z Linux kernelu vznikne Android common kernel. Mobily, tablety, televizory, hodinky apod. nepotřebují všechny součásti standardního Linuxu (jen by zabíraly místo), naopak potřebují různé úpravy nebo doplňky. Google uvádí, že aktuální Android kernel 4.14 má oproti Linuxu přes 300 změn v kódu, 32 000 přídavků a naopak 1500 odstranění.

Hotový Android common kernel pak míří k výrobcům čipů jako Qualcomm, Mediatek, Samsung nebo HiSilicon (Huawei), kteří udělají vlastní úpravy, a vznikne SoC kernel. Ten už je specifický pro konkrétní čipset. Na něm pak výrobci mobilů vytvoří Device kernel, jenž obsahuje změny specifické pro jeden konkrétní telefon a jeho hardware (displej, foťáky, různé koprocesory atd.).

Je podle vás fragmentace Androidu velký problém?

Protože existují tisíce různých zařízení, vznikly také tisíce různých nekompatibilních Device kernelů. A protože jich je tolik, nikdo je nebude všechny aktualizovat, pokud „nehoří“. Během životního svého cyklu zařízení jen těžko dostanou aktualizaci, která by řešila něco jiného než opravdu závažný problém. Vydávání aktualizací založených na novějším Linux kernelu je prakticky vyloučené. Místo toho se stále prodlužuje podpora těch starých.

Jeden kernel vládne všem

Jak z toho ven, prozradil Google v září na Linux Plumbers Conference. Vývojář Matthias Männich přednášel o potenciálním Androidu nové generace, který by byl postaven na standardním Linux kernelu s několika zvlášť připojenými moduly specifickými pro Android. A tento základ nazvaný Generic Kernel Image (GKI) by měl stabilní rozhraní API/ABI, k němuž by se připojovaly kernel moduly s ovladači pro konkrétní hardware.

android next generation gki Google mluví o Androidu nové generace

GKI by byl univerzální společný pro všechna zařízení a díky stabilitě rozhraní by se jádro dalo v budoucnu snadno záplatovat i bez zásahů výrobců čipů nebo koncových zařízení. Rozhraní totiž zůstane stejné v rámci jedné LTS (long-term support) větve Linuxu, Google konkrétně zmiňuje kernely 4.19.x a 5.x.y. Zatím ale nepracuje na tom, aby šlo i upgradovat na vyšší větev (tedy ze čtyřky na pětku).

TIP: Malá revoluce, Android ve vašem mobilu bude aktualizovat sám Google, ale…

Návrh se možná nebude líbit komunitě, ale výrobcům ano. Díky modulárnímu konceptu nejspíš nebudou nuceni vydávat zdrojové kódy ovladačů. Místo toho pro GKI vydají binární moduly. Vývoj každopádně bude jednodušší, protože by nezávisle na sobě vznikaly GKI i jednotlivé moduly. Objeví-li se díry u síťového modemu, opraví se jenom on a na zbytek se nesahá. Bude-li chtít výrobce připravit dva různé mobily lišící se v drobnostech, akorát vymění potřebné ovladače. Příkladem budiž Xiaomi Mi 9T a 9T Pro, které běží na jiném čipsetu, ale zbytek hardwaru je totožný.

Android se tak přiblíží běžným linuxovým distribucím, které také mohou mít společné jádro a zvláštní externí nesvobodné ovladače (typicky pro grafické a síťové čipy). Jeden systém přitom může fungovat na různých konfiguracích počítačů.

Zavedení GKI bude během na dlouhou trať, protože Google musí nejdříve najít společnou řeč s výrobci i ostatními přispěvateli do Linuxu. A protože si tak velké změny zpravidla žádají novou verzi systému, je nepravděpodobné, že bude součástí vydání Androidu R/11 v létě příštího roku, na to nebude čas. Konkrétní data nicméně Google neprozradil.

ICTS24

Více se tématu věnuje Jake Edge na LWN.net. Přednášku Googlu pak najdete na YouTubu a konkrétní prezentaci pak v PDF na webu konference Linux Plumbers.

via Ars Technica