Original-URL des Artikels: https://www.golem.de/news/project-mainline-und-apex-google-bringt-ueberall-android-updates-ausser-am-kernel-1907-142340.html    Veröffentlicht: 04.07.2019 15:31    Kurz-URL: https://glm.io/142340

Project Mainline und Apex

Google bringt überall Android-Updates, außer am Kernel

Für Android Q stellt Google große Teile der Update-Infrastruktur um, aktualisiert Systemkomponenten und übernimmt dafür die Pflege von den OEMs. Details dazu erklärt das Team nun in einem Interview. Demnach bleibt der Linux-Kernel aber auch noch länger die größte Baustelle für Android.

Aktualisierungen wichtiger Systemkomponenten werden in dem kommenden Android Q anders als bisher von Google selbst über den Play Store verteilt. In einem sehr ausführlichen Interview mit dem IT-Magazin Ars Technica erklären die Beteiligten nun einige Details zu der technischen Vorgehensweise und der dafür nötigen Zusammenarbeit mit den OEM-Herstellern. Ernüchternd bleibt dabei jedoch die Situation in Bezug auf den Linux-Kernel, den das Team nach wie vor nicht upgraden kann, was einen technischen Support der Geräte von mehr als drei bis vier Jahren kaum möglich macht.

Die gute Nachricht ist jedoch, dass Google sich einiges hat einfallen lassen, um die Systemkomponenten unabhängig von den OEM-Herstellern zu aktualisieren. Zu diesen Bestandteilen gehören unter anderem die notorisch von Sicherheitslücken bedrohten Komponenten der Media Codecs und des Media Frameworks, aber auch das Security-Framework Conscrypt oder die OpenGL-Implementierung Angle.

Apex als neues Paketformat

Einige diese Systemkomponenten kann Google als übliche APK-Datei weiterverteilen. Für jene Teile, die deutlich früher im Boot-Prozess benötigt werden hat Google das neue Format Android Pony Express (Apex) erstellt. In dieses können native Systemdienste und Bibliotheken, die Hardware-Abstraktion (HAL), die Android-Laufzeitumgebung (ART), Klassen-Bibliotheken und sogar die Android-C-Bibliothek Bionic gepackt werden.

Neben einigen Konfigurationsdateien besteht das Apex-Paket vor allem aus einem Dateisystemabbild, das als Loop-Device eingehängt wird. Theoretisch ist so ein Austausch und damit ein Update all dieser Bestandteile unabhängig voneinander möglich, ohne dafür ein Android-Systemabbild neu generieren zu müssen. Tatsächlich testet dies Google bereits mit den Beta-Versionen von Android Q. Allerdings nur für einige wenige Komponenten, die ART und Bionic sollen etwa noch nicht aktualisiert werden, wie die Entwickler in dem Interview klarstellen.

Mainline-Pflege für Systemkomponenten

Google bezeichnet diese Arbeiten als Project Mainline. Schließlich sind viele der genannten Komponenten bisher von den OEM-Herstellern selbst gepflegt worden. Erfahrungsgemäß waren diese damit aber oft überfordert, so dass es für Nutzer kaum oder gar keine Updates gab. Mit Mainline übernimmt Google die Pflege gemäß der Namensherkunft wieder selbst im Hauptentwicklungszweig des Android Open Source Project (AOSP).

Laut dem Interview musste das Team dafür aber überhaupt erst einmal die notwendige Test- und QA-Infrastruktur schaffen. Immerhin ist Google so nun auch für Bug-Fixes verantwortlich, die auf Geräten anderer Hersteller auftauchen, statt wie bisher nur für die eigene Pixel-Reihe. Der damit verbundene Aufwand und die notwendige Abstimmung mit den OEM-Partnern ist wohl aber auch der Grund dafür, warum Google das neue Update-System noch nicht verbindlich für alle möglichen Komponenten verschreibt und hier auch wieder nur einen Teil der überhaupt möglichen Komponenten überhaupt für Updates vorsieht.

Kernel-Upgrades weiter nicht vorgesehen

Die wohl seit Jahren wichtigste Baustelle für Android-Updates ist der genutzte Linux-Kernel - vor allem in Bezug auf mögliche Updates der Geräte sowie für einen Langzeitsupport dieser. Dank einer großangelegten Initiative innerhalb des Industriekonsortiums Linaro hat es Google gemeinsam mit den SoC-Herstellern und seinen OEMs immerhin geschafft, nun einen bestimmten Kernel immerhin sechs Jahre lang als LTS-Kernel zu pflegen.

Erste Versuche mit einer derart langen Pflege einer Kernel-Version hat Google für seine ersten Pixel-Smartphones mit Linux 3.18 unternommen, der vor einigen Wochen von der Kernel-Community zum AOSP gewandert ist. Es folgten die Linux-Version 4.4 sowie 4.9, die als Teil der Linaro-Initiative offiziell sechs Jahre mit Updates versorgt werden.

Die aktuellen Pixel 3a von Google nutzen etwa Linux 4.9, der zum Zeitpunkt der Veröffentlichung der Geräte schon knapp 2,5 Jahre alt war. Diese Kernel-Version wird offiziell bis Januar 2023 gepflegt. Das sind also insgesamt zwar die von Linaro forcierten sechs Jahre, für das Gerät selbst bleiben davon aber nur noch rund dreieinhalb Jahre Supportzeitraum über. Wohl vor allem deshalb bietet Google auch nur 3 Jahre lang Sicherheitsupdates für seine Geräte an.

Wie die Google-Entwickler in dem Interview bestätigen, ist es vorerst aber nicht vorgesehen, dass Android-Geräte im Laufe ihre Lebenszeit Upgrades auf neue Kernel-Versionen erhalten. Das Pixel 3a wird also nie offiziell auf Linux 4.14 oder gar 4.19 aktualisieren, obwohl Google diese Versionen als Common-Kernel im Android-Projekt pflegt. Darüber hinaus zeigen sich die Google-Entwickler in dem Interview schon erfreut darüber, dass überhaupt kleine Patch-Updates für die Kernel-Versionen verteilt werden können.

Der Grund für diese verfahrene Situation ist dem Interview zufolge die Arbeit der SoC-Hersteller, die die Kernel-Version langwierig an ihre eigenen Bedürfnisse anpassen und offenbar auch kein Interesse an den Upgrades für bereits verfügbare Geräte haben. Hinzu kommt, dass derzeit noch nicht offiziell entschieden worden ist, ob Linux 4.14 oder eventuell auch die Version 4.19 künftig ebenfalls sechs Jahre lang gepflegt werden. Das hängt davon ab, ob die SoC-Hersteller für die kommende Generation ihrer Hardware auf diese Version wechseln - oder eben auch nicht.

Einheitliche Kernel-Schnittstelle und -Images

Als möglichen Ausweg aus dieser Situation arbeitet Google mit seinen Partnern jedoch daran, künftig die Unterstützung der Standard-Kernel-API als Schnittstelle für die Android-Geräte vorauszusetzen. So arbeitet Google an einer Mainline-Unterstützung für das Qualcomm-SOC Snapdragon 845, das die Standard-Grafikschnittstelle DRM (Direct Rendering Manager) des Linux-Kernels benutzt. Aktiv eingesetzt wird dies bereits in Googles Pixel 3.

Das vereinheitlicht auch die Userspace-Komponenten wie Gralloc sowie der DRM-Hwcomposer und erleichtert damit deren Pflege. Darüber hinaus zwingt es die Hersteller, ihre Treiber sehr nah an der Entwicklung der Upstream-Linux-Community zu positionieren. Der Schritt, diese Treiber dort einzubringen, sollte dann nicht mehr allzu schwierig sein. Der Betrieb solch eines Mainline-Kernels in einem Android-Gerät sei auch erklärtes Ziel der Entwickler, wie die Entwickler in dem Interview bestätigen.

Dort heißt es auch, dass das Team künftig aus dem sowieso schon einheitlichen Quellcode des sogenannten Common-Kernel ein generisches Kernel-Abbild (GKI) erzeugen könnte. Noch existieren diese Builds jedoch nicht und die GKI sind nicht mehr als ein Idee. Doch diese Konzept könnte Google langfristig helfen, auch den Kernel unabhängig von den OEM-Herstellern zu aktualisieren oder gar upzugraden, was bei üblichen Linux-Distribution problemlos machbar ist. So weit ist das Team aber noch lange nicht.  (sg)


Verwandte Artikel:
Andy Rubin: Android-Erfinder wegen illegaler Prostitution beschuldigt   
(03.07.2019, https://glm.io/142295 )
Kroah-Hartman: Linux 3.18 wandert von der Kernel-Community zu Android   
(20.05.2019, https://glm.io/141364 )
Smartphone-Linux: PostmarketOS steckt in der Entwicklung fest   
(17.01.2019, https://glm.io/138787 )
Android Q: Google passt Gestensteuerung für neues Android an   
(03.07.2019, https://glm.io/142298 )
Android & Play Store: Google möchte die Signierschlüssel der App-Entwickler   
(27.06.2019, https://glm.io/142202 )

© 1997–2019 Golem.de, https://www.golem.de/