a jelenlegi Android ökoszisztéma szennyezett több száz különböző változatai Android, mindegyik fut egy másik változata a Linux kernel. Minden verzió célja egy másik telefon, és ez a különböző konfigurációk. A Google azon dolgozik, hogy megoldja a problémát azáltal, hogy hozzáadja a mainline Linux kernelt az Androidhoz.
hogyan kezelik a Linux kernelt jelenleg az Androidban
mielőtt elérné Önt, a mobiltelefon Linux kernele három fő lépésen megy keresztül.
először a Google veszi a Linux kernel LTS (Long Term Support) verzióját, és hozzáadja az összes Android-specifikus kódot. Ez lesz az”Android Common kernel”.
a Google ezután elküldi ezt a kódot annak a cégnek, amely a rendszert egy chipen (SoC) hozza létre, amely a telefont futtatja. Ez általában Qualcomm.
miután a SoC készítő befejezte a kód hozzáadását a CPU és más chipek támogatásához, a kernel továbbadódik a tényleges eszközgyártónak, például a Samsungnak vagy a Motorolának. Az eszközgyártó ezután hozzáadja a kódot a telefon többi részének, például a kijelzőnek és a kamerának a támogatásához.
ezeknek a lépéseknek a végrehajtása eltart egy ideig, és olyan kernelt eredményez, amely nem működik más eszközzel. Ez azt is jelenti, hogy a kernel nagyon régi, általában körülbelül két éves. Például a múlt hónapban szállított Google Pixel 4-nek van egy kernele 2017 novemberétől, amelyet soha nem frissítenek.
a Google ígéretet tett arra, hogy biztonsági javításokat hoz létre a régebbi eszközök számára, ami azt jelenti, hogy a régi kód hatalmas hodge-podge-ját tartják szemmel.
A jövő
tavaly a Google bejelentette, hogy megoldja ezt a rendetlenséget. Ebben az évben felfedték, milyen előrelépést értek el a 2019-es Linux vízvezeték-szerelők konferencián.
“tudjuk, mi kell az Android futtatásához, de nem feltétlenül egy adott hardveren. Tehát az a célunk, hogy alapvetően mindent megtaláljunk, aztán felfelé, és megpróbáljunk a lehető legközelebb lenni a fővonalhoz.”
Sandeep Patil, Android Kernel csapat vezetője
ők mutatják ki a Xiaomi Poco F1 futó Android egy megfelelő Linux kernel. Úgy tűnik azonban, hogy néhány dolog nem működik, például az akkumulátor százalékos aránya, amely 0% – ra ragadt.
szóval, hogyan tervezi a Google ezt a munkát? Azáltal, hogy egy oldalt a Project Treble playbook. A Project Treble előtt az alacsony szintű kód, amely kölcsönhatásba lépett az eszközzel és magával az Androiddal, egy nagy kódzavar volt. A Project Treble elválasztotta a kettőt, és modulárisvá tette őket, így az Android frissítések gyorsabban szállíthatók, és az alacsony szintű kód változatlan maradhat a frissítések között.
a Google ugyanazt a modularitást akarja hozni a kernelbe. Tervük ” magában foglalja a Linux kernelen belüli ABI stabilizálását, valamint egy stabil felületet a Linux kernel és a hardvergyártók számára, hogy írhassanak. A Google el akarja választani a Linux kernelt a hardver támogatásától.”
tehát ez azt jelenti, hogy a Google kernelt küld, a hardver illesztőprogramok pedig kernelmodulként töltődnek be. Jelenleg ez csak egy javaslat. Még mindig van néhány technikai probléma, amelyet meg kell oldani. szóval ez nem fog megtörténni egyhamar.
Opposition from Open Source
a nyílt forráskódú közösség nem lesz elégedett azzal a gondolattal, hogy saját kódot helyezzen a kernelbe. A Linux kernel irányelvei kimondják, hogy az illesztőprogramoknak GPL licenccel kell rendelkezniük ahhoz, hogy bekerüljenek a kernelbe. Arra is rámutatnak, hogy ha az illesztőprogram változása hibát okoz, azt a hibát létrehozó személy oldja meg. Ez hosszú távon kevesebb munkát jelent az eszközgyártók számára.
végső gondolatok a mainline kernel Andorid-ra való felvételéről
eddig ez csak egy javaslat. Jó esély van arra, hogy a Google csak akkor kezd el dolgozni a projekten, hogy elhagyja azt, ha rájönnek, hogy ez mennyi munkát igényel. Vessen egy pillantást arra, hogy a Google hány projektet hagyott már el.
az Android Police jó pontot tett azzal, hogy megemlítette, hogy a Google a Fuchsia operációs rendszerén dolgozik, amelynek úgy tűnik, hogy az a célja, hogy egy nap felváltsa az Androidot.
tehát a kérdés az, hogy melyik monumentális feladatot próbálja meg a Google elvégezni, az Android futtatását egy Fővonalú Linux kernellel, vagy az egységes Android-csere teljes munkáját? Erre csak az idő tud válaszolni.