Das aktuelle Android-Ökosystem ist mit Hunderten von verschiedenen Versionen von Android verschmutzt, die jeweils eine andere Variante des Linux-Kernels ausgeführt wird. Jede Version ist für ein anderes Telefon konzipiert und hat unterschiedliche Konfigurationen. Google hat daran gearbeitet, das Problem zu beheben, indem der Linux-Kernel zu Android hinzugefügt wurde.
Wie der Linux-Kernel derzeit in Android gehandhabt wird
Bevor er Sie erreicht, durchläuft der Linux-Kernel auf Ihrem Mobiltelefon drei wichtige Schritte.Zunächst nimmt Google die LTS-Version (Long Term Support) des Linux-Kernels und fügt den gesamten Android-spezifischen Code hinzu. Dies wird zum „Android Common Kernel“. Google sendet diesen Code dann an das Unternehmen, das das System auf einem Chip (SoC) erstellt, auf dem Ihr Telefon ausgeführt wird. Dies ist normalerweise Qualcomm.
Sobald der SoC-Hersteller den Code zur Unterstützung der CPU und anderer Chips hinzugefügt hat, wird der Kernel an den eigentlichen Gerätehersteller wie Samsung oder Motorola weitergegeben. Der Gerätehersteller fügt dann Code hinzu, um den Rest des Telefons wie Display und Kamera zu unterstützen.
Jeder dieser Schritte dauert eine Weile und führt zu einem Kernel, der mit keinem anderen Gerät funktioniert. Es bedeutet auch, dass der Kernel sehr alt ist, normalerweise ungefähr zwei Jahre alt. Zum Beispiel hat das Google Pixel 4, das letzten Monat ausgeliefert wurde, einen Kernel von November 2017, der niemals aktualisiert wird.
Google hat sich verpflichtet, Sicherheitspatches für ältere Geräte zu erstellen.
Die Zukunft
Letztes Jahr kündigte Google Pläne an, dieses Durcheinander zu beheben. In diesem Jahr enthüllten sie auf der Linux Plumbers Conference 2019, welche Fortschritte sie gemacht haben.
„Wir wissen, was es braucht, um Android auszuführen, aber nicht unbedingt auf einer bestimmten Hardware. Unser Ziel ist es also, das alles herauszufinden, dann Upstream und versuchen, so nah wie möglich an der Hauptlinie zu sein.“
Sandeep Patil, Android Kernel Team Lead
Sie haben ein Xiaomi Poco F1 mit Android mit einem richtigen Linux-Kernel gezeigt. Einige Dinge schienen jedoch nicht zu funktionieren, z. B. der Batterieprozentsatz, der bei 0% steckte.
Wie will Google das erreichen? Indem Sie eine Seite aus ihrem Project Treble Playbook nehmen. Vor Project Treble war der Low-Level-Code, der mit dem Gerät und Android selbst interagierte, ein großes Durcheinander von Code. Project Treble trennte die beiden und machte sie modular, so dass Android-Updates schneller versendet werden konnten und der Low-Level-Code zwischen den Updates unverändert bleiben konnte.
Google möchte die gleiche Modularität in den Kernel bringen. Ihr Plan „beinhaltet die Stabilisierung des Linux-ABI im Kernel und eine stabile Schnittstelle für den Linux-Kernel und die Hardwareanbieter zum Schreiben. Google will den Linux-Kernel von seiner Hardware-Unterstützung entkoppeln.“
Das bedeutet also, dass Google einen Kernel ausliefern würde und Hardwaretreiber als Kernelmodule geladen würden. Derzeit ist dies nur ein Vorschlag. Es gibt noch einige technische Probleme, die gelöst werden müssen. das wird also nicht so schnell passieren.
Opposition von Open Source
Die Open-Source-Community wird mit der Idee, proprietären Code in den Kernel zu integrieren, nicht zufrieden sein. Die Linux-Kernel-Richtlinien besagen, dass Treiber eine GPL-Lizenz haben müssen, um in den Kernel aufgenommen zu werden. Sie weisen auch darauf hin, dass, wenn eine Änderung des Treibers einen Fehler verursacht, dieser von der Person behoben wird, die den Fehler erstellt hat. Dies bedeutet auf lange Sicht weniger Arbeit für Gerätehersteller.
Abschließende Gedanken zur Einbindung des Mainline-Kernels in Andorid
Bisher ist dies nur ein Vorschlag. Es besteht eine gute Chance, dass Google mit der Arbeit an dem Projekt beginnt, um es aufzugeben, sobald sie erkennen, wie viel Arbeit dies erfordern wird. Schauen Sie sich nur an, wie viele Projekte Google bereits aufgegeben hat.
Android Police machte einen guten Punkt, indem er erwähnte, dass Google an seinem Fuchsia-Betriebssystem arbeitet, das das Ziel zu haben scheint, Android eines Tages zu ersetzen.Die Frage ist also, welche monumentale Aufgabe Google versuchen wird, Android mit einem Mainline-Linux-Kernel zum Laufen zu bringen oder die Arbeit an ihrem einheitlichen Android-Ersatz abzuschließen? Nur die Zeit kann das beantworten.