Der Linux-Kernel, auf dem alle Android-Geräte basieren, erhält ein großes Update auf Version 5.0. Wir gehen die Änderungen durch, die für Mobilgeräte relevant sind.
Obwohl wir uns normalerweise nicht damit befassen, was im Mainline-Linux-Kernel-Bereich passiert, ist es für uns wichtig, den Überblick darüber zu behalten, was mit jeder neuen Kernel-Version passiert, da Google dies vorschreibt Mindestversion des Linux-Kernels Anforderung mit jeder neuen Version von Android. Die jüngste Entscheidung, Verlängerung der LTS-Releases von 2 auf 6 Jahre wird eine wichtige Rolle bei der Reduzierung der Fragmentierung von Sicherheitspatches spielen, da Gerätehersteller weniger Arbeit bei der Rückportierung von Sicherheitspatches leisten müssen. Darüber hinaus integriert der Mainline-Kernel häufig neue Funktionen, die für mobile Geräte relevant sind.
Zum Beispiel das Erste Release Candidate-Build für die nächste LTS-Version des Kernels wurde kürzlich veröffentlicht – Linux-Kernel 5.0 RC1. Bis zur stabilen Veröffentlichung sind es noch ein oder zwei Monate, aber wir können bereits einen Blick auf die kommende Veröffentlichung werfen. Ich werde einige der Updates hervorheben, die für Mobilgeräte relevant sind, aber ich empfehle Ihnen, sich das vollständige Änderungsprotokoll anzusehen, wenn Sie überhaupt an der Open-Source-Entwicklung und dem Linux-Kernel interessiert sind.
ARM groß. WENIG EAS-Unterstützung
Energiebewusste Planung gibt es schon seit der Veröffentlichung des ursprünglichen Pixel auf Android-Geräten. EAS ist einer der Gründe, warum Google Pixel-Geräte im Allgemeinen schneller sind als ihre Konkurrenten. Die Unterstützung wurde bereits mit der Veröffentlichung des Snapdragon 845-Kernels durch Qualcomm aktiviert, sodass jedes Gerät mit diesem SoC (oder neuer) EAS unterstützt. Allerdings hatte Linux bisher keine Upstream-Unterstützung für Energy Aware Scheduling. Die Upstream-Unterstützung sollte es Silizium- und Geräteherstellern theoretisch erleichtern, die Technologie in ihre Geräte zu implementieren. Für die Endbenutzer bedeutet der Upstream-Support jedoch nicht wirklich viel.
Adiantum-Unterstützung
Speck ist ein von der NSA (National Security Administration) entwickelter Verschlüsselungsalgorithmus, der auf Low-End-Hardware gut funktioniert. Google beabsichtigt um Unterstützung für Speck hinzuzufügen, da es Datenverschlüsselungsunterstützung für preisgünstige Geräte mit SoCs bietet, denen hardwarebeschleunigte Verschlüsselungserweiterungen fehlen. Die Einführung von Speck wurde aufgrund seiner Verbindungen zur NSA vielfach kritisiert. Die Unterstützung für Speck wurde im Linux-Kernel 4.20 entfernt, und sein Ersatz, Adiantum, funktioniert auf Low-End-Hardware mit den Dateisystemen EXT4/F2FS genauso gut, wenn nicht sogar besser.
F2FS- und EXT4-Korrekturen
Flash-Friendly File-System, oder F2FS, ist weit verbreitet in Android-Geräten. Das Google Pixel 3 und Pixel 3 XL offiziell unterstützt F2FS, Zum Beispiel. Anscheinend hat Jaegeuk Kim, der ursprüngliche Entwickler von F2FS, eine Zusammenführungsanfrage für viele Korrekturen für das Dateisystem an das Linux-Repository gesendet. Diese Änderungen kümmern sich um Verschlüsselungsprobleme und Leerlaufzeitmanagement sowie um Korrekturen bei der Garbage Collection. Alle Details können Sie hier einsehen diese Pull-Anfrage. Insgesamt verbessert die Behebung von F2FS die Stabilität und Zuverlässigkeit auf den Android-Smartphones, die es unterstützen oder unterstützen werden.
Ebenso hat das beliebte EXT4-Dateisystem etwas mehr als ein Dutzend Patches erhalten. EXT4 wird auf vielen Android-Geräten wie den neuesten OnePlus-Geräten verwendet (einschließlich OnePlus 5T, OnePlus 6 und OnePlus 6T).
Neue ARM-Hardwareunterstützung
GNU/Linux-Distributionen sind wohl die besten Betriebssysteme für die Ausführung auf ARM-basierter Hardware. Sie bieten zuverlässiges Multitasking auf Basis des Open-Source-Modells. ARM-Prozessoren sind speziell darauf ausgelegt, viele Aufgaben gleichzeitig auszuführen. Deshalb ist es wichtig, dass das Betriebssystem mit der Hardware Schritt hält. Wie einige von Ihnen wissen, verwenden die meisten Android-Smartphones und -Tablets Chipsätze mit der ARM-Architektur. RISC-basierte Chips eignen sich perfekt für die Ausführung alltäglicher Aufgaben (die Sie auf Ihrem Smartphone erledigen). Der Linux-Kernel 5.0 bietet Unterstützung für viele neue ARM-Hardware. Hier sind einige davon:
- Tegra X2
- Tegra Xavier
- Allwinner F1C100
- Qualcomm QCS404
- Allwinner T3
- NXP Layerscape LX2160
Neben der universellen Kompatibilitätsunterstützung für bestimmte ARM-Hardware verfügt der Linux-Kernel 5.0 auch über eine verbesserte Energieverwaltung.
BinderFS-Unterstützung
Android verwendet Binder, um Argumente zwischen verschiedenen Prozessen im System auszutauschen. Anwendungen, Aktivitäten und Prozesse verwenden Binder zum Starten und Verwalten von Prozessen. Die Sicherheit auf Android basiert in hohem Maße auf UID-Berechtigungen. Binder überprüft die von den Anwendungen bereitgestellten UIDs mithilfe von bidirektionalen IPC-Aufrufen, um zu bestätigen, dass es Zugriff auf eine Funktion hat, die es verwenden möchte. BinderFS ist eine aktualisierte Version von Binder, aber sie ist spezialisierter und mit dem System kompatibel. Durch die Unterstützung von BinderFS wird sich für den Endbenutzer nicht viel ändern, aber auf lange Sicht wird sie einige Implementierungsprobleme für Entwickler lösen. Hier ist das relevanten Commit.
Energiemodell-Management-Framework
Eine weitere Ergänzung ist die Unterstützung des Energy Model Management Framework. Diese Änderung betrifft hauptsächlich ARM- und Kernel-Entwickler. Es bietet eine neue Ebene standardisierter Energieverbrauchsinformationen aus verschiedenen Quellen, beispielsweise dem Gerätebaum oder den Treibern. Der Energieverbrauch und die Berichterstattung werden von der Hardware und der Software unterschiedlich gehandhabt. Das Energy Model Management Framework stellt eine Standard-API bereit, die von einem anderen Treiber im Kernel verwendet werden kann, um auf Informationen zum Energieverbrauch zuzugreifen. Dies wird es Software-Ingenieuren und Entwicklern theoretisch erleichtern, die relevanten Informationen von der Hardware zu erhalten. Sie können mehr über dieses Framework lesen in diesem Commit.
Unterstützung für ARM64-Zeigerauthentifizierung
Alle relevanten Hardware- und Softwarelösungen, insbesondere auf Mobilgeräten, benötigen starke Sicherheitsprotokolle. Das bietet der Linux-Kernel 5.0 mit der Unterstützung der ARM64-Zeigerauthentifizierung. Da die meisten Smartphones über Chipsätze verfügen, die auf ARM64 basieren, ist es wichtig, dass Angreifer keine Zeiger ausnutzen können, die im Linux-Kernel für den Zugriff auf Speicheradressen verwendet werden. Das neue Authentifizierungsprotokoll vergleicht Zeiger mit geheimen Schlüsseln. Die Zeigerauthentifizierung versucht, Return Oriented Programming (ROP) und andere Arten von Angriffen zu vermeiden.
Es gibt noch viele weitere Updates für den Linux 5.0-Kernel, die wir nicht behandelt haben. Die meisten davon bedeuten für Android-Geräte nicht wirklich viel, deshalb mussten wir uns für das Änderungsprotokoll entscheiden. Wenn Sie das vollständige „Änderungsprotokoll“ sehen möchten, schauen Sie hier vorbei Phoronix Abdeckung.
Vielen Dank an den anerkannten XDA-Entwickler flar2 für die Unterstützung bei diesem Artikel.