Alles, was Sie über Androids Project Mainline wissen müssen

Project Mainline ist die größte Änderung an Android seit Project Treble. Hier erfahren Sie, was es bedeutet und was alle Module bewirken. Probieren Sie es aus!

Eine der größten Änderungen bei Android in den letzten Jahren, die im Vergleich zu seiner Bedeutung unter dem Radar blieb, war die Einführung von Projekt Mainline in Android 10. Google schreibt die Einbeziehung bestimmter Mainline-Module in alle Android-Versionen vor Android 11 Ich komme mit einem kombinierte Pflichtmodule mit insgesamt 25 Mainline-Modulen. Hier finden Sie eine Erklärung, was Project Mainline ist und was es lösen soll, sowie eine Liste aller Project Mainline-Module von Android.

Was ist Project Mainline?

Um Project Mainline richtig zu verstehen, müssen wir etwas zurückspulen. Wenn Sie ein paar Jahre zurückblicken, drehten sich viele Gespräche über Android-Updates um das Fragmentierungsproblem. Fragmentierung war eine der größten Herausforderungen, die Google in der Ice Cream Sandwich-Lollipop-Ära auf Android lösen musste. Auch wenn Android als Plattform nach einem weitgehend vorhersehbaren Muster regelmäßige Updates erhielt, dauerte es früher, wenn überhaupt, sehr lange, bis diese Updates die Hände der Endverbraucher erreichten. Während Google also kritische Fehler und Sicherheitsprobleme auf Plattformebene behob, ließ die tatsächliche Einführung dieser Änderungen viel zu wünschen übrig. An der Bereitstellung von Updates waren/sind viele Zwischenhändler (SoC-Anbieter, OEMs, Netzbetreiber usw.) und viele bewegliche Teile beteiligt Ihr Telefon, und das Fragmentierungsproblem schien sich nicht von selbst zu lösen, ohne dass ein harter Eingriff erforderlich wäre Interventionen.

Eine der größten Bemühungen zur Lösung dieses Problems erfolgte in Form von Projekt Treble neben Android 8.0 Oreo, das eine umfassende Neuarchitektur von Android mit sich brachte und die Android-OS-Framework-Komponenten von den Hersteller-HALs und dem Linux-Kernel trennte. Project Treble hat im Wesentlichen Android modularisiert, indem das Betriebssystem-Framework von der gerätespezifischen Software auf niedrigerer Ebene getrennt wurde. Auf diese Weise müssen Gerätehersteller (OEMs) nicht darauf warten, dass Siliziumhersteller (SoC-Anbieter) ihren Anbieter-Implementierungscode aktualisieren, und OEMs können das Android-Betriebssystem-Framework unabhängig aktualisieren. Das Endergebnis ist eine schnellere Einführung neuer Android-Versionen vom OEM, da dies nicht mehr erforderlich ist Warten Sie, bis der Mittelsmann (SoC-Anbieter) seine Arbeit erledigt hat, bevor er mit der Arbeit beginnen kann ihre.

Während sich die Android-Update-Situation mit Project Treble nicht von Anfang an dramatisch verbesserte, ermöglichte es doch weitgehend eine breitere OEM-Nutzung Teilnahme an Android 10- und Android 11-Betas und Erleichterung für OEMs, mehr ihrer Geräte schneller zu aktualisieren Zeitleiste. Darüber hinaus hatte das gesamte Konzept des GSI (Generic System Image) einen großen Einfluss auf die Aftermarket-Entwicklung in unseren Foren.

Entwickler bootet Android 11 auf 22 älteren Geräten mit einem Project Treble GSI

Project Mainline erweitert die Bemühungen von Project Treble. Während Treble die Abhängigkeit von OEMs von SoC-Anbietern bei jedem einzelnen Betriebssystem-Update verringerte, verringert Mainline die Abhängigkeit von Google von OEMs bei der Bereitstellung von Sicherheitsupdates für wichtige Betriebssystemkomponenten. Project Mainline erweitert die Treble-Philosophie auf kritischere Teile des Android-Frameworks und eliminiert OEMs als abhängige Zwischenhändler aus dieser Gleichung. Der Zweck von Project Mainline besteht darin, dass Google die Kontrolle über Framework-Komponenten und Systemanwendungen erlangt entscheidend für die Sicherheit und die Aufrechterhaltung der Entwicklungskonsistenz außerhalb der OEMs. Project Mainline wird zu Recht als bezeichnet Die größte Änderung an Android seit Project Treble.

Für Project Mainline nutzt Google Mainline-Module, die über das Google Play Services Framework und den Google Play Store bereitgestellt werden. Jedes Mainline-Modul wird entweder als APK-Datei, APEX-Datei oder als APK-in-APEX geliefert. Wenn ein Mainline-Modul aktualisiert wird, sieht der Benutzer eine „Google Play System Update“ (GPSU)-Benachrichtigung auf seinem Gerät. Um Updates für kritische Komponenten bereitzustellen, hat Google die Notwendigkeit umgangen, auf die Bereitstellung eines Updates durch einen OEM zu warten, und hat sich dafür entschieden, die Aufgabe selbst zu erledigen.

Als Google gibt auf der Android-Website an:

Modulare Systemkomponenten ermöglichen es Google- und Android-Partnern, Updates umfassend, schnell und nahtlos auf die Geräte der Endbenutzer zu verteilen, und zwar auf unaufdringliche Weise. Beispielsweise kann die Kombination aus Mediencodec-Fragmentierung und kritischen Fehlern die App-Akzeptanz und das Benutzerengagement drastisch verlangsamen. Durch häufige Aktualisierungen medienbezogener Module kann die Codec-Fragmentierung reduziert werden, um das Verhalten von Medien-Apps auf verschiedenen Android-Geräten konsistenter zu gestalten und kritische Fehler zu beheben, um das Vertrauen der Benutzer aufzubauen.

Android 10 oder höher wandelt ausgewählte Systemkomponenten in Module um, von denen einige das APEX-Containerformat (eingeführt in Android 10) und einige das APK-Format verwenden. Die modulare Architektur ermöglicht die Aktualisierung von Systemkomponenten mit kritischen Fehlerbehebungen und anderem Verbesserungen nach Bedarf, ohne Auswirkungen auf Implementierungen von Anbietern auf niedrigerer Ebene oder Apps auf höherer Ebene Dienstleistungen.

Als Ars Technica Erwähnungen:

Project Mainline, auch bekannt als „Google Play System Updates“, wurde in Android 10 eingeführt, um die Kernsystemkomponenten von Android modularer und aktualisierbarer zu machen. Mainline hat einen neuen „APEX“-Dateityp speziell für Systemkomponenten eingeführt, mit dem Ziel, den Android-Kerncode genauso einfach über den Play Store zu versenden wie ein App-Update. Bisher war der einzige auslieferbare Codeblock für Android das APK, ein Dateityp, der ursprünglich für Apps von Drittanbietern entwickelt wurde. Da dies mit allerlei Sicherheitseinschränkungen verbunden war und erst spät im Bootvorgang starten konnte, wurde APEX mit Blick auf leistungsstärkere Systemkomponenten entwickelt. APEXes können nur von Google oder Ihrem Gerätehersteller erstellt werden, sodass sie deutlich leistungsfähiger sein und wichtige Startkomponenten wie die App-Laufzeit enthalten können.

Mainline ist nicht nur eine technische Lösung, es geht auch darum, mehr Teile von Android zentral zu verteilen Google, bei dem es darum geht, mit Geräteherstellern zu verhandeln und sie dazu zu bringen, sich darauf zu einigen, den gleichen Block zu liefern Code. Mit der Zeit werden Mainline-Module zum Pflichtversand. Daher ist Mainline eigentlich eine umfassende Zusammenarbeit mit Geräteherstellern, um sicherzustellen, dass ein einziges ökosystemweites Modul alle Anforderungen erfüllt. Nicht jedes Mainline-Modul ist ein äußerst leistungsstarkes APEX-Modul – einige sind nur APKs, die jetzt von Google verteilter Android-Code sind.

Projekthauptlinie – Module

Mit Android 10 hat Google die Einbeziehung von 13 spezifischen Mainline-Modulen vorgeschrieben. Mit Android 11 beträgt die Gesamtzahl der Pflichtmodule 25. Hier finden Sie die vollständige Liste sowie einige wichtige Details:

Modulname

Paketnamen

Typ

Gerät wurde auf Android 11 aktualisiert oder gestartet

Gerätgestartet mit Android 10

Gerät wurde auf Android 10 aktualisiert

add

com.google.android.adbd

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Android Neural Network API-Laufzeit

com.google.android.neuralnetworks

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Captive Portal-Anmeldung

com.google.android.captiveportallogin

APK

Muss

Wärmstens empfohlen

Optional

Mobilfunksendung

com.google.android.cellbroadcast

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Verschlüsseln

com.google.android.conscrypt

APEX

Muss

Wärmstens empfohlen

Optional

DNS-Resolver

com.google.android.resolv

APEX

Muss

Wärmstens empfohlen

Optional

Benutzeroberfläche für Dokumente

com.google.android.documentsui

APK

Muss

Muss

Optional

ExtServices - APK

com.google.android.ext.services

APK

Muss

Muss

Muss

ExtServices - APEX

com.google.android.extservices

APEX

Muss

Nicht unterstützt

Nicht unterstützt

IPsec/IKEv2-Bibliothek

com.google.android.ipsec

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Mediencodecs

com.google.android.media.swcodec

APEX

Muss

Muss

Optional

Media Framework-Komponenten

com.google.android.media

APEX

Muss

Muss

Optional

Medienanbieter

com.google.android.mediaprovider

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Modulmetadaten

com.google.android.modulemetadata

APK

Muss

Muss

Muss

Netzwerk-Stack-Komponenten

com.google.android.networkstack

APK

Muss

Wärmstens empfohlen

Optional

Konfiguration der Netzwerk-Stack-Berechtigungen

com.google.android.networkstack.permissionconfig

APK

Muss

Wärmstens empfohlen

Optional

Berechtigungscontroller - APK

com.google.android.permissioncontroller

APK

Muss

Muss

Muss

Berechtigungscontroller - APEX

com.google.android.permission

APEX

Muss

Nicht unterstützt

Nicht unterstützt

SDK-Erweiterungen

com.google.android.sdkext

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Statistik

com.google.android.os.statsd

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Telemetry Train-Versionspaket

com.google.mainline.telemetry

APK

Muss

Nicht unterstützt

Nicht unterstützt

Anbindung

com.google.android.tethering

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Zeitzonendaten

com.google.android.tzdata

APEX

Darf nicht

Muss

Optional

Zeitzonendaten 2

com.google.android.tzdata2

APEX

Muss

Nicht unterstützt

Nicht unterstützt

W-lan³

com.google.android.wifi

APEX

Muss

Nicht unterstützt

Nicht unterstützt

Um den obigen Spalten etwas Kontext zu geben, enthält die Spalte mit dem Titel „Gerät auf Android 11 aktualisiert oder gestartet“ Details dazu, ob das Modul vorhanden sein muss (oder nicht). vorhanden, im Falle von Zeitzonendaten aufgrund der Einbeziehung ihrer Alternative) auf allen Geräten, die entweder auf Android 11 aktualisiert wurden oder mit Android 11 starten Kasten. Ebenso müssen Geräte, die mit Android 10 gestartet werden, einige Module enthalten, es wird dringend empfohlen, einige andere zu enthalten, und sie werden von den übrigen nicht unterstützt. Bei Geräten, die auf Android 10 aktualisiert werden (im Gegensatz zu Geräten, die mit Android gestartet werden), ist die Liste der erforderlichen Module kürzer.

Was macht jedes Mainline-Modul?

Hier ist eine kurze Erklärung für jedes der Mainline-Module:

Zus

Das adbd-Modul verwaltet Befehlszeilen-ADB- und IDE-Debugging-Sitzungen. Durch die Modularisierung von adbd kann Google Leistungsverbesserungen und Fehlerbehebungen schneller bereitstellen. Dies ist von entscheidender Bedeutung, da einige Fehler in der Vergangenheit mit der Entladung des Akkus zusammenhängen und dazu führen können, dass Geräte weiterhin 100 % CPU nutzen, bis das Telefon ausfällt. Daher ist die Veröffentlichung dieser Korrekturen für Google von entscheidender Bedeutung, da ADB häufig von App-Entwicklern und OEMs zu Testzwecken verwendet wird.

Android Neural Networks API-Laufzeit

Dies ist eine Bibliothek, die zwischen einer App und Backend-Treibern liegt. Bei der API wiederum handelt es sich um eine Android-C-API zur Ausführung rechenintensiver maschineller Lernvorgänge auf Mobilgeräten und zur Ermöglichung hardwarebeschleunigter Inferenzvorgänge.

CellBroadcast

Cell Broadcast bezieht sich auf Notfall- und Nicht-Notfallwarnungen (z. B. AMBER-Warnungen). Dieses Modul befasst sich mit Aufgaben im Zusammenhang mit diesen Warnungen sowie mit anderen Zusatzfunktionen wie SMS-Dekodierung und Geofencing für drahtlose Notfallwarnungen.

Verschlüsseln

Das Conscrypt-Modul verwaltet die TLS-Implementierung von Android und andere kryptografische Funktionen wie Schlüsselgeneratoren, Ciper und Message Digests. Durch die Auslieferung als Modul kann Google Sicherheitsverbesserungen beschleunigen, ohne auf OTA-Updates angewiesen zu sein.

DNS-Resolver

Wie der Name schon sagt, löst der DNS-Resolver DNS auf, d. h. er wandelt für Menschen lesbare URLs in IP-Adressen um. Das Modul enthält den Code, der den DNS-Stub-Resolver implementiert. Durch die Auslieferung als Modul kann Google den Benutzern einen besseren Schutz vor DNS-Abhör- und Konfigurationsaktualisierungsangriffen bieten.

Benutzeroberfläche für Dokumente

Die Dokumenten-Benutzeroberfläche ist das Modul, das für die Steuerung des Zugriffs auf bestimmte Dateien für Komponenten verantwortlich ist, die Dokumentberechtigungen verwalten. Wie Google angibt, erhöht die Integration von Speicherzugriff und Berechtigungen in ein Modul den Datenschutz und die Sicherheit für Endbenutzer Mit der Runtime Resource Overlay (RRO)-Funktion können OEMs das Erlebnis bei Bedarf thematisch gestalten (in Bezug auf die Dateien-App). Zu. Als Modul werden alle Google-Android-Geräte mit der gleichen Benutzeroberfläche für Dokumente ausgeliefert.

ExtServices

Dieses Modul umfasst Framework-Komponenten für Kernfunktionen des Betriebssystems wie Benachrichtigungsranking, Textabgleichsstrategien für das automatische Ausfüllen, Speichercache, Paketüberwachung und andere Dienste.

IPsec/IKEv2-Bibliothek

Dieses Bibliotheksmodul befasst sich mit neuen und bestehenden Funktionen rund um Interworking Wireless LAN (IWLAN) und VPNs, beispielsweise die Aushandlung von Sicherheitsparametern wie Schlüsseln, Algorithmen und Tunnel Konfigurationen. Die Idee bei der Modularisierung dieser Funktionen besteht darin, die Konsistenz des Ökosystems zu fördern und eine Möglichkeit zu bieten, schnelle Lösungen für Sicherheits- und Interoperabilitätsprobleme bereitzustellen.

Dabei handelt es sich um drei verzweigte Module, deren Funktionen jedoch voneinander abhängig sind. Diese Medienmodule verarbeiten Medientypen und Codes, interagieren mit dem ExoPlayer, stellen Transportsteuerungen und Wiedergabeinformationen dem Framework zur Verfügung, optimieren indizierte Metadaten usw. Erinnern Stagefright, der Exploit, der Android verändert hat und das eigentliche Konzept monatlicher Sicherheitsupdates für die Plattform ins Leben gerufen? Dieser Exploit beruhte auf Schwachstellen in der Medienwiedergabebibliothek. Eine Modularisierung der Medienkomponenten ermöglicht es Google also, schnell und umfassend zu reagieren, falls Sicherheitslücken in dieser häufig angegriffenen Komponente gefunden werden.

Die Funktion dieses Moduls ist aus dem Namen sofort ersichtlich, sein Zweck jedoch nicht. Das Modul-Metadaten-Modul enthält...Metadaten über die Liste der Module auf dem Gerät. Und das ist es auch schon.

Netzwerk-Stack-Komponenten, Netzwerk-Stack-Berechtigungskonfiguration, Captive-Portal-Anmeldung

Das Modul „Network Stack Components“ bietet allgemeine IP-Dienste, Überwachung der Netzwerkkonnektivität und Erkennung von Captive-Login-Portalen. Das Berechtigungskonfigurationsmodul definiert die Berechtigung, die es anderen Modulen ermöglicht, netzwerkbezogene Aufgaben auszuführen. Das Captive Portal Login-Modul befasst sich mit Captive Portals – Webseiten, die angezeigt werden, wenn mit bestimmten öffentlichen Wi-Fi-Netzwerken verbunden, in denen der Benutzer aufgefordert wird, Daten einzugeben, um Internet zu erhalten Zugang.

Berechtigungscontroller

Dieses Modul stellt aktualisierbare Datenschutzrichtlinien und UI-Elemente rund um die Erteilung und Verwaltung von Berechtigungen bereit. Wenn Ihnen die Funktionsweise von Package Installer bekannt vorkommt, liegt das daran, dass es so ist. Funktionen wie die Gewährung von Laufzeitberechtigungen, die Verwaltung und die Nutzungsverfolgung waren bis Android 9 Teil der Package Installer-App. In Android 10 ist die Package Installer-App in Abschnitte unterteilt, um die Aktualisierung der Berechtigungslogik zu ermöglichen. Das Permission Controller-Modul wird als APK-Datei geliefert und in Android 11 kann das Modul automatisch Laufzeitberechtigungen für Apps widerrufen, die über einen längeren Zeitraum nicht verwendet wurden.

SDK-Erweiterungen

Dieses Modul ist etwas schwer zu verstehen und daher zu erklären. Jeder Android-Version wird ein SDK-Level zugewiesen (normalerweise +1 gegenüber dem Vorgänger). Wenn eine App auf ein bestimmtes SDK abzielt, wird davon ausgegangen, dass der Entwickler die Plattformverhaltens- und API-Änderungen berücksichtigt hat, die die Android-Version mit sich gebracht hat.

Das SDK-Erweiterungsmodul entscheidet über die „Erweiterungs-SDK“-Ebene des Geräts und stellt APIs für Apps bereit, um die Erweiterungs-SDK-Ebene abzufragen. Das ist ungefähr alles, was in der offiziellen Dokumentation erwähnt wird. ArsTechnica, obwohl, Erwähnungen dass dies wahrscheinlich eine sekundäre API-Schicht ist, die über den Play Store geliefert wird.

Statsd, Telemetry Train-Versionspaket

Statsd ist für die Erfassung von Gerätemetriken verantwortlich. Das Telemetry Train Version Package hingegen enthält keinen aktiven Code oder eigene Funktionalität. Es enthält lediglich eine Versionsnummer für den „Telemetry Train“, bei dem es sich laut Google um eine Reihe metrikbezogener Module handelt. Anhand der Versionsnummer zeigt Google Play Endbenutzern die Version des Sicherheitspatches an und ermittelt, ob Updates für metrikbezogene Module verfügbar sind.

Anbindung

Das Tethering-Modul teilt die Internetverbindung des Geräts mit anderen angeschlossenen Client-Geräten über WLAN, USB, Bluetooth oder Ethernet. Das Modul umfasst die Tethering-Komponenten und ihre Abhängigkeiten. Durch die Verwendung dieses Tethering-Moduls können sich OEMs auf eine einzige Standard-Referenzimplementierung verlassen und ein konsistentes Erlebnis auf allen Geräten bieten.

Zeitzonendaten

Das Modul „Zeitzonendaten“ aktualisiert die Sommerzeit (DST) und die Zeitzonen auf Android-Geräten und standardisiert dabei sowohl die Daten (was auch möglich ist). ändert sich relativ häufig als Reaktion auf religiöse, politische und geopolitische Gründe) und der Aktualisierungsmechanismus im gesamten Ökosystem. Android 8.1 und Android 9 verwendeten einen APK-basierten Aktualisierungsmechanismus für Zeitzonendaten, und Android 10 ersetzt ihn durch einen APEX-basierten Modulaktualisierungsmechanismus. Google gibt an, dass AOSP weiterhin den Plattformcode enthält, der für APK-basierte Updates erforderlich ist Geräte, die auf Android 10 aktualisieren, können über das weiterhin von Partnern bereitgestellte Aktualisierungen der Zeitzonendaten erhalten APK. Google warnt jedoch davor, dass APK-basierte Updates ein APEX-basiertes Update ersetzen.

W-lan

Dies ist das Modul für die Wi-Fi-Funktionalität. Endbenutzer können jetzt ein konsistentes WLAN-Erlebnis auf allen Android-Geräten erhalten und Interoperabilitätsprobleme durch Modul-Updates und App beheben Entwickler können die Plattformfragmentierung reduzieren und OEMs können die Anforderungen der Netzbetreiber erfüllen und gleichzeitig die Kosten für Einzelpersonen senken Anpassungen.


Hoffentlich zeigt dieser Artikel, wie wichtig Project Mainline für das Android-Ökosystem von Google ist.