Wie wichtig sind neue Android-Versionen überhaupt noch? Eine Frage, die im Zusammenhang mit Googles Betriebssystem immer öfter aufgeworfen wird – und auf den ersten Blick auch nicht ganz unberechtigt ist. Zeigt sich doch für die Nutzer oft wenig Unterschied beim Upgrade von einer Version auf die andere. Viele wirklich sichtbare Verbesserungen finden sich im Detail, während relevante neue Features ohnehin laufend via App-Updates geliefert werden. Das ist auch nicht weiter verwunderlich, Android ist einfach erwachsen geworden, die Zeit der ganz großen Umbrüche am User Interface ist – weitgehend – vorbei.

Doch diese Perspektive übersieht einen entscheidenden Punkt: Die wirklich relevanten Änderungen eines jeden Android-Upgrades passieren an der Softwarebasis, also bei jenen Dingen, die die Nutzer nicht auf den ersten Blick sehen. Und in dieser Hinsicht hat auch die nächste Generation des Betriebssystems wieder jede Menge zu bieten. Neben zahlreichen neuen Möglichkeiten für App-Entwickler stechen dabei vor allem die mannigfaltigen Privacy-Verbesserungen hervor. Doch die wichtigste Neuerung ist eine andere. Und zwar eine, die einen radikalen Umbruch in der Art, wie das Betriebssystem ausgeliefert wird, darstellt.

Android 10 auf dem Pixel 3 XL.
Foto: Proschofsky / STANDARD

Disclaimer

Zuvor aber noch ein wichtiger Hinweis: Der vorliegende Artikel beschränkt sich bewusst auf all die strukturellen Verbesserungen und technischen Details der neuen Android-Generation. Die wirklich sichtbaren Neuerungen – also etwa der systemweite Dark Mode oder die neue Gestensteuerung – werden dann in einem eigenen Test einer detaillierten Betrachtung unterzogen.

Project Mainline ändert alles

Mit Android 10 übernimmt Google die Kontrolle über Updates für einzelne Systemkomponenten. "Project Mainline" nennt sich das Unterfangen, das eine Art nächste Ausbaustufe der mit Android 8 und "Project Treble" begonnenen Modularisierung des Systems darstellt. In Kooperation mit den großen Hardwareherstellern wurden dabei eine Reihe von Komponenten identifiziert, die künftig direkt von Google gewartet werden sollen. Das heißt, dass sie auch dann auf dem Laufenden gehalten werden, wenn der eigentliche Gerätehersteller bei Updates säumig ist. Sicherheitsüberlegungen waren denn auch einer der treibenden Motivatoren für dieses Projekt, gleichzeitig will man damit aber auch zentrale Privacy-Verbesserungen flotter an die Massen bringen. Und nicht zuletzt geht es um Konsistenz: Unterschiedliche Implementationen zentraler Komponenten führen auch zu spezifischen Problemen, mit denen sich dann wieder App-Hersteller herumschlagen müssen.

In Android 10 umfasst Mainline zunächst 13 solcher Module, die Auswahl erfolgte in Kooperation mit den Hardwareherstellern. Die Palette reicht von zentralen Netzwerkkomponenten über das "Documents UI", das den Zugriff auf Dateien abwickelt, bis zum vollständigen Media Framework. Gerade Letzteres verdeutlicht gut, welch große Verbesserung Mainline darstellt: Rund 40 Prozent aller zuletzt in Android aufgespürten Sicherheitslücken waren in diesem Bereich angesiedelt. Wenn sich Google nun zentral um dessen Aktualisierung kümmert, reduziert dies das Angriffsrisiko massiv. Immerhin ist es kein großes Geheimnis, dass Schadsoftware unter Android beinahe ausschließlich lange bekannte Sicherheitslücken verwendet.

Verpflichtung vs. Empfehlung

Bei alldem gibt es allerdings eine entscheidende Beschränkung: Von den erwähnten 13 Modulen ist derzeit nur ein Teil wirklich für alle Hersteller verpflichtend, der Rest ist lediglich empfohlen. Das hat den Grund, dass Google hier behutsam vorgehen will, um den eigenen Hardwarepartnern keine Kompatibilitätsprobleme zu bescheren. Immerhin wäre es äußerst unerfreulich, wenn ein Anbieter plötzlich eine Version einer Komponente verwenden muss, der die benötigte Funktionalität fehlt. Um das zu verhindern, hat Google in den vergangenen Monaten viele von den Partnern vorgenommenen Anpassungen in das Android Open Source Project (AOSP) zurückfließen lassen, womit sie künftig allen Anbietern zur Verfügung stehen. Wo dieser Prozess noch nicht abgeschlossen ist, wird das entsprechende Mainline-Modul derzeit erst "empfohlen" – das betrifft etwa viele Netzwerkkomponenten.

Die Mainline-Module in Android 10.
Grafik: Google via Arstechnica

Die gute Nachricht: Das Media Framework gehört zu jenen, die verpflichtend sind. Gleichzeitig betont Google, dass der Umfang von Mainline kontinuierlich ausgebaut werden soll. Mit dem für 2020 geplanten Android R werden also weitere Module hinzukommen, zudem werden jene Komponenten, die bis jetzt nur empfohlen sind, dann für alle verpflichtend. Wohin dabei die Reise geht, zeigt ein Blick auf Googles eigene Pixel-Smartphones: Dort befindet sich nämlich bereits ein entsprechendes Modul für die Android Runtime (ART), die zur Ausführung aller Anwendungen zum Einsatz kommt. Diese könnte künftig also ebenfalls standardisiert werden.

Reichweite und Update-Ablauf

Um hier keinen falschen Eindruck entstehen zu lassen: All diese Vorschriften gelten nur für Geräte, die bereits mit Android 10 ausgeliefert werden, sie werden also erst in den kommenden Jahren ihre volle Wirkung entfalten. Zwar können Hersteller freiwillig auf Mainline-Module umsatteln – wie es etwa Google bei seinen Pixel-Smartphones mit dem Upgrade tut –, zwingend ist das aber nicht. Es gibt allerdings auch hier eine Ausnahme: Die Mainline-Module "ExtServices" und "Permission Controller" sind auch für Geräte, die mit Android 9 ausgeliefert wurden, mit dem Update auf die neue Version verpflichtend. Grund dafür ist, dass die beiden Pakete schon auf diesen Devices zur Vorinstallation vorgeschrieben waren – und von Google signiert wurden.

Google verspricht sich von Project Mainline viele Vorteile.
Grafik: Google

Wer Android gut kennt, der könnte nun befürchten, dass Google diese Chance nutzt, um die betreffenden Bestandteile zu proprietärer Software zu machen – wie es jetzt ja schon bei den Google Play Services der Fall ist. Dem widerspricht das Unternehmen aber deutlich, all diese Komponenten würden weiter im Quellcode verfügbar bleiben. Alles, was sich ändert, ist die Auslieferungsart. Apropos: Für das Einspielen von Mainline-Updates ist der Play Store zuständig, die Installation erfolgt automatisch im Hintergrund. Bei einzelnen dieser Komponenten ist aber ein Reboot notwendig, um die neue Version zu aktivieren. Welche Mainline-Version man installiert hat, lässt sich über die Systeminformationen herausfinden, wo auch eine manuelle Suche nach Updates möglich ist.

Neue Mainline-Versionen soll es jeden Monat geben, also im selben Rhythmus, mit dem Google schon jetzt Sicherheitsaktualisierungen für das Betriebssystem veröffentlicht. Ansonsten gibt es in Hinblick auf die Wartung aber noch einige offenen Fragen. So hat sich Google bisher nicht – öffentlich – festgelegt, wie lange die Mainline-Komponenten mit Updates versorgt werden sollen. Zumal davon auszugehen ist, dass Google früher oder später mehrere Mainline-Generationen parallel pflegen muss – eine für jede Betriebssystemgeneration, auf der sie läuft. Der Wartungsaufwand für Google dürfte also durchaus signifikant sein.

Technische Details

Interessant ist auch die technische Implementation: Einige der unter Mainline fallenden Komponenten werden sehr früh im Boot-Prozess des Smartphones gestartet und haben dann auch höhere Berechtigungen als normale Apps. Also hat Google mit Apex (Android Pony Express) ein neues Paketformat geschaffen, das mit zusätzlichen Sicherheitsmaßnahmen versehen wurde. Damit soll garantiert werden, dass Apex-Updates ausschließlich vom jeweiligen Hersteller – also typischerweise Google – geliefert werden können und dass keinerlei Manipulationen vorgenommen wurden. Wer sich über das "typischerweise" im vorherigen Satz gewundert hat, das hat einen guten Grund – ist es doch auch den Geräteherstellern möglich, eigene Apex-Pakete auszuliefern. Gedacht ist das vor allem dazu, das Google-Angebot zu erweitern. Ein Paradebeispiel hierfür wäre, wenn ein Hersteller ein zusätzliches Audio- oder Video-Codec ausliefern will.

Apex-Module werden auf dem Android-System als Loopback-Device (quasi eine als Gerät behandelte Datei) eingebunden. In dem Verzeichnis findet sich dann immer der gleiche Aufbau mit einer Manifest-Datei, die beschreibt, worum es geht, und den Pfaden für mitgelieferte Java-Dateien, Bibliotheken und Co.
Screenshot: Proschofsky / STANDARD

Solch ein Apex-Paket wird dann als Loopback-Device in den Dateisystempfad von Android eingebunden. Daraus ergibt sich ein weiterer Vorteil: Bei etwaigen Problemen kann das System leicht auf die vorinstallierte Version zurückwechseln. Gleichzeitig hat dieser Ansatz aber natürlich auch einen Nachteil: Er verbraucht mehr Speicherplatz. Das ist auch der Grund, warum es noch eine Ausnahme von der Mainline-Verpflichtung gibt: Low-End-Geräte mit kleinem Datenspeicher dürften vorerst auf die Mainline-Module verzichten.

Privacy, Privacy, Privacy

In den vergangenen Jahren hat Google Änderungen an seinem Berechtigungssystem vorgenommen, die zum Teil signifikante Verbesserungen für die Privatsphäre der Nutzer mit sich brachten. Aktuell bleibt hier vor allem ein Problembereich über: Die "Storage"-Berechtigung gibt Apps einen (zu) weitreichenden Zugriff auf die Daten der Nutzer, was es diesen ermöglicht, andere Sicherheitssperren zu unterwandern, wie erst unlängst eine Studie belegte. Mit Android 10 macht sich Google nun daran, dieses Problem schrittweise auszuräumen.

Die Filetierung einer Berechtigung

Zunächst ein kleiner Exkurs, um verstehen zu können, worum es hier eigentlich geht: Unter Android ist der Speicherplatz in einen "internen" und einen "externen" Bereich getrennt. Das hat nicht zuletzt historische Gründe, da der externe Bereich früher oft deckungsgleich mit einer SD-Karte war – und es zum Teil heute noch ist. Jede App kann ihre eigenen Daten – also etwa Konfigurationsdateien oder Caches – sicher im internen Speicher ablegen, andere Programme haben darauf keinerlei Zugriff. Andererseits gibt es aber eben auch den externen Speicher, den sich alle Apps teilen. Der Zugriff darauf wird zwar über die Storage-Berechtigung abgewickelt, aber hat eine App einmal diese Einwilligung der Nutzer, kann sie dort im Großen und Ganzen schreiben und lesen, was sie will. Und das ist aus Privacy-Sicht natürlich ein Problem. So werden beispielsweise auf dem externen Speicher sämtliche mit dem Smartphone aufgenommenen Fotos abgelagert. Eine beliebige App mit erteilter Storage-Berechtigung könnte nun also einfach die EXIF-Daten der Aufnahmen auslesen, um anhand der darin gespeicherten Standortinformationen zu sehen, wo die Nutzer sich so herumtreiben. Verschärft wird dieses Problem dadurch, dass die Storage-Berechtigung von extrem vielen Apps benötigt wird, die Nutzer also gewohnt sind, diese ohne großes Nachdenken zu erteilen.

Mit Android 10 wird das alles anders: Zunächst bekommt jede App auch auf dem externen Speicher einen geschützten Bereich, auf den andere Apps keinerlei Zugriff haben – und zwar ohne dass sie dafür die Storage-Berechtigung einholen müssen. Relevant ist das nicht zuletzt für Spiele, die hier große Dateien ablagern wollen. Auch für das Speichern von Bildern oder Videos braucht es keine Storage-Berechtigung mehr. Diese wird erst dann notwendig, wenn eine App auf die von einem anderen Programm erstellten Inhalte zugreifen will. Parallel dazu wird der Zugriff auf den externen Speicher gefiltert: Selbst mit erteilter Storage-Berechtigung können Apps künftig nur mehr auf drei Verzeichnisse zugreifen: Fotos, Videos, und Musik. Und selbst hier werden sensible Informationen zum Teil ausgeblendet. Eine App, die wissen will, wo ein Foto aufgenommen wurde, muss dafür also fortan noch einmal extra die Genehmigung der Nutzer einholen.

Sichere Umwege

Für den Zugriff auf sämtliche anderen Dateien auf dem externen Speicher verweist Google auf das offizielle "Storage Access Framework". Dieses wurde bereits mit Android 4.4 eingeführt, erhält jetzt aber eine wesentlich wichtigere Rolle. Dabei werden sämtliche Zugriffe über einen vom System gestellten Dateiauswahldialog abgewickelt. Das hat den Vorteil, dass die betreffende App immer nur die eine Datei sieht, die die Nutzer explizit mit ihr teilen wollen – ein riesiger Unterschied zum bisherigen Vollzugriff auf den externen Datenspeicher. Am Rande sei angemerkt, dass es sich bei diesem Dateidialog um das zuvor bereits erwähnte "Documents UI" handelt, das künftig also via Project Mainline zentral aktualisiert wird. Wer nun befürchtet, dass all diese Änderungen das Ende von Dateimanagern unter Android bedeuten, kann beruhigt werden. Die Nutzer können auch in Zukunft einer App explizit Zugriff auf den gesamten Verzeichnisbaum geben, allerdings wird auch dieser dann über das Storage Access Framework abgewickelt. Das ist zwar im direkten Vergleich langsamer, aber eben auch erheblich sicherer.

Solid Explorer ist eine der ersten Apps, die schon das neue Scoped-Storage-Konzept umsetzen – und damit auch belegt, dass dieses nicht das Ende von Dateimanagern unter Android darstellt, wie im Vorfeld von einigen behauptet wurde.
Screenshot: Proschofsky / STANDARD

Ein unerfreulicher Rückzieher

Dieses "Scoped Storage" genannte Konzept hat in der Testphase von Android 10 allerdings zu Problemen mit zahlreichen bestehenden Apps geführt. Also hat sich Google entschlossen, die diesbezüglichen Ambitionen deutlich zu reduzieren. Hätte das neue System zunächst verpflichtend für alle werden sollen, wird es nun nur mehr bei Apps von Haus aus genutzt, die Android 10 als Zielversion definiert haben. Und selbst hier haben die Entwickler die Möglichkeit, diese Privacy-Verbesserungen zu deaktivieren. Erst mit dem für kommendes Jahr geplanten Android R soll das neue Konzept dann für alle verpflichtend werden. Aus der Perspektive mancher App-Entwickler mag das ein Erfolg sein, für die Nutzer ist es hingegen ein schwerer Verlust. Immerhin wird damit einer der wichtigsten Schritte zur Verbesserung der Privatsphäre in der Android-Geschichte um ein ganzes Jahr verschoben.

Standort-Zugriff

Aber wenigstens bietet Android 10 auch sonst jede Menge Privacy-Verbesserungen, die wichtigste davon: Die Standortberechtigung wird umgebaut. Konnte diese bisher nur ganz erteilt oder untersagt werden, gibt es jetzt auch die Option, den Zugriff nur dann zu erlauben, wenn die App gerade aktiv benutzt wird. Das verhindert, dass eine App im Hintergrund unbemerkt die Wege der Nutzer mitprotokollieren kann. Ein wichtiges Detail: Beim Upgrade von Android 9 werden die bestehenden Berechtigungen automatisch erhalten. Hatte eine App also zuvor vollen Zugriff auf Standortinformationen, behält sie diesen auch nach der Softwareaktualisierung. Das ist an sich auch durchaus logisch, immerhin will man verhindern, dass Apps dann plötzlich unter Android 10 nicht mehr korrekt laufen. Wer den Zugriff auf die Location-Daten einschränken will, muss dies also über die Systemeinstellungen gezielt vornehmen. Allerdings geht Google dabei mit einer weiteren Neuerung hilfreich zur Hand: Greift eine App regelmäßig im Hintergrund auf die Standortdaten der Nutzer zu, warnt Android 10 mit einer Benachrichtigung. Dabei wird auch gleich ein Verweis auf jene Einstellung geliefert, wo man den Zugriff entziehen kann.

Und noch ein weiteres Detail: Apps können die Option, Standortdaten im Hintergrund zu sammeln, auch komplett weglassen, wenn sie dieses Feature ohnehin nicht benötigen. Für die Nutzer ist das natürlich die Optimalvariante, immerhin müssen sie dann nicht befürchten, dass die Beschränkung des Location-Zugriffs zu funktionellen Problemen führt.

Der Zugriff auf den Standort kann jetzt auch auf die Nutzung im Vordergrund beschränkt werden. Greift eine App regelmäßig im Hintergrund zu, warnt Android 10.
Screenshots: Proschofsky / STANDARD

Hintergrund bleibt Hintergrund

Ebenfalls neu: Künftig können Apps nur mehr dann neue Aktivitäten starten, wenn sie gerade im Vordergrund aktiv sind. Das soll sowohl die Sicherheit als auch die Usability verbessern, immerhin ist es für die Nutzer unerfreulich, wenn plötzlich unerwartet ein neues Fenster vor ihnen auftaucht. Oft handelt es sich dabei auch um Tricks von betrügerischen Apps. Gleichzeitig gibt es aber natürlich Apps, die legitime Gründe haben, aus dem Hintergrund eine Aktivität zu starten – etwa einen Wecker, der einen Alarm anzeigen will. Das geht natürlich weiterhin, allerdings muss die im Hintergrund laufende App dafür ihr Tun mittels eines Eintrags im Benachrichtigungsbereich offenlegen.

Auch diese Änderung führte schnell zu Empörung unter manchen Entwicklern und Nutzern, immerhin befürchteten diese, dass damit Automatisierungs-Apps wie Tasker nicht mehr funktionieren werden. Das ist aber nicht der Fall, da Google noch eine Hintertür offen lässt: Apps, die sich von den Nutzern eine explizite Genehmigung für die "SYSTEM_ALERT_WINDOW"-Berechtigung, die eigentlich zum Zeichnen von Overlays gedacht ist, einholen, dürfen auch weiterhin aus dem Hintergrund Aktivitäten starten. Angesichts dessen – und der erwähnten Option mit der Darstellung einer Benachrichtigung – ist Google hier hart geblieben, die Änderung gilt also für alle Apps, die unter Android 10 laufen.

Beschränkungen für Overlays

Apropos "SYSTEM_ALERT_WINDOW": Diese Berechtigung wird künftig nur mehr temporär erteilt. Der Grund dafür sind Sicherheitsüberlegungen: Über diese Funktion können Inhalte über andere Apps gezeichnet werden, etwas, das bösartige Apps gerne verwenden, um ihre Nutzer auszutricksen – etwa zur Herausgabe von Passwörtern. Mit Android 10 werden solche Machenschaften nun dank der Zeitbegrenzung erheblich schwerer. So gilt die Zustimmung für diese Berechtigung nur mehr bis zum nächsten Reboot. Bei jenseits des Play Store besorgten Apps sind die Regeln noch wesentlich strikter, hier wird die Berechtigung bereits nach 30 Minuten entzogen. Der Unterschied erklärt sich aus der Realität, dass unter Android der allergrößte Teil von Schadsoftware aus solchen unbekannten Quellen stammt.

Wo langfristig die Reise mit dieser problematischen Funktion hingeht, zeigt eine weitere Änderung in Android 10: Auf Low-End-Geräten ist die Nutzung von "SYSTEM_ALERT_WINDOW" generell nicht mehr möglich. Dies wird wohl auch bei anderen Android-Geräteklassen früher oder später so folgen.

Kein Zugriff mehr auf den Zwischenspeicher

Auch sonst schreckt Google nicht davor zurück, für Privacy-Verbesserungen Nutzer und Entwickler vor den Kopf zu stoßen: So haben Apps nur mehr dann Zugriff auf den Zwischenspeicher, wenn sie gerade aktiv im Vordergrund laufen. Bisher konnten hier alle Apps theoretisch mitlesen und so auch an sensible Daten kommen. Eine Änderung, die aus einer Privatsphärenperspektive ein echter Gewinn ist, gleichzeitig gehen damit aber natürlich "Clipboard Manager"- Apps nicht mehr. Um den Wert solcher Anwendungen weiß natürlich auch Google und macht zumindest eine Ausnahme: Die primäre Eingabemethode – also üblicherweise die Tastatur-App – hat weiterhin Zugriff auf diese Daten, und kann somit auch einen integrierten Clipboard Manager anbieten.

Verschleierung von eindeutigen Identifikatoren

Bereits seit Android 9 bietet Google die Option, jedem WLAN eine andere MAC-Adresse zu liefern. Die gezielte Fälschung dieses Hardwareidentifikators soll verhindern, dass die Nutzer über mehrer Netze hinweg getrackt werden. Mit Android 10 wird dieses Feature jetzt von Haus aus aktiviert – zumindest für alle WLANs, mit denen man sich neu verbindet. Ein Tipp: Wer sichergehen will, dass die Anonymisierung funktioniert, sollte nach dem Update auf Android 10 die WLAN-Einstellungen neu einrichten. Zugriff auf die echte MAC-Adresse gibt es nur mehr für Gerätebesitzer selbst – oder für jene, die diese managen. Das ist vor allem für Firmen interessant, die eine große Flotte an Smartphones zu verwalten haben.

Weitere Beschränkungen gibt es auch bei anderen Identifikatoren: Zugriff auf IMEI und Seriennummer des Smartphones erhält eine App nur mehr, wenn die Nutzer die Phone-Berechtigung erteilt haben. Ebenfalls begrenzt wurde der Zugriff auf Informationen zur Kamera-Hardware: Diese Details erhalten jetzt nur mehr Apps mit erteilter Kamera-Berechtigung. Zudem wird der Zugriff auf die vom Linux Kernel gelieferten Informationen zu Netzwerkverbindungen unter /proc/net generell blockiert. Dort befindet sich unter anderem der "ARP Cache", der Hardwaredetails ausplaudert. Generell geht es bei diesem Maßnahmenpaket darum, zu verhindern, dass Apps ohne Zustimmung der Nutzer einzelne Geräte eindeutig identifizieren können.

Ein weiterer Punkt betrifft das Adressbuch: Bisher konnten sich Apps die Kontaktliste nach Häufigkeit der Kommunikation gelistet liefern lassen. Diese Funktion wurde gestrichen, da das Rückschlüsse auf das Nutzerverhalten zulässt. Ebenso unterbunden wurde die Möglichkeit, die Liste an verfügbaren WLANs umzusortieren, dies ist künftig nur mehr System-Apps erlaubt. Eine Detailänderung: Apps, die Zugriff auf standortrelevante Informationen via WLAN, Bluetooth und Co haben wollen, müssen dafür nun die Berechtigung ACCESS_FINE_LOCATION statt ACCESS_COARSE_LOCATION anfragen. Prinzipiell eine richtige Entscheidung, immerhin kann man auf diesem Weg ziemlich genau den Standort bestimmen. Für die Nutzer macht das trotzdem wenig Unterschied, braucht es doch für den Zugriff auf beide gleichermaßen eine explizite Genehmigung durch die User.

Berechtigungsfragen

Apropos Berechtigungen, auch in diesem Bereich hat sich so manches getan. Wer unter Android 10 eine stark veraltete App startet, dem wird einmalig ein neuer Warndialog präsentiert. Auf diesem sind die erteilten Berechtigungen zu sehen, zudem wird die Option geboten, diese gezielt zu entziehen. Konkret wird diese Regel für alle Apps schlagend, deren API Level unter 23 liegt. Durch diesen Wert wird auch schnell klar, worum es geht: API Level 23 entspricht Android 6 und damit jener Version, mit der das dynamische Berechtigungssystem eingeführt wurde, bei dem die Nutzer explizit nach allen Zustimmungen einzeln gefragt werden müssen. Google will also sicher stellten, dass die Nutzer künftig immer Klarheit über die erteilten Berechtigungen haben – selbst bei veralteten Apps.

Eine Extra-Warnung für veraltete Apps und Games.
Grafik: Google

Zu all dem gibt es eine Vorgeschichte, die klar macht, worum es hier geht: So manche prominente Android-App hatte lange ein Target API unter 23 verwendet, um dem dynamischen Berechtigungssystem zu entgehen. Damit wollte man verschleiern, in welchem Umfang man auf die Daten der Nutzer zugreift. Dem hat Google allerdings über Verschärfungen der Play-Store-Regeln bereits weitgehend ein Ende gesetzt: Neue Updates für bestehende Apps müssen derzeit mindestens API Level 26 (Android 8) unterstützen. Bei neuen Apps liegt dieser Wert ab 1. August sogar schon bei API Level 28 (Android 9). Insofern richtet sich die Verschärfung – neben grob veralteten Apps – vor allem gegen Programme, die jenseits des Play Stores vertrieben werden. Hier gibt es nämlich noch immer welche – allen voran das Spiel Fortnite – die sich solcher Tricks bedienen. Auch bei Malware-Autoren ist es beliebt, das alte Berechtigungssystem zu nutzen, um die eigenen Absichten zu verschleiern.

Eine komplett neue Berechtigungsgruppe gibt es für die "Activity Recognition". Apps, die Daten darüber wollen, wie viel die Nutzer Gehen, Radfahren oder mit dem Auto unterwegs sind, müssen dafür nun diese Berechtigung einholen. Deutlich beschränkt wird der Zugriff auf Bildschirminhalte: die zugehörige Berechtigung wird generell nur mehr an vorinstallierte Apps erteilt. Alle anderen müssen hingegen die zugehörigen Schnittstellen verwenden, die sicherstellen, dass die Nutzer jedes einzelne Mal explizit zustimmen.

Sicherheit

Nicht minder wichtig sind die Verbesserungen im Bereich Sicherheit: Dazu gehört etwa der TLS-1.3-Support, mit dem verschlüsselte Netzwerkverbindungen nicht nur sicherer sondern auch flotter werden sollen. Neu ist Adiantum: Dabei handelt es sich um einen neuen Verschlüsselungsalgorithmus, der gezielt für Low-End-Geräte entwickelt wurde. Grund dafür ist, dass solche Devices üblicherweise keine Hardwarebeschleunigung zur Verschlüsselung bieten, woraus ein signifikante Leistungseinbruch resultiert. Das war auch der Grund, warum die Verschlüsselung sämtlicher Daten unter Android bisher nur bei Geräten ab einem gewissen Leistungsniveau vorgeschrieben war. Mit Android 10 ändert sich auch das, dank der Verfügbarkeit von Adiantum müssen künftig alle neuen Smartphones verschlüsselt ausgeliefert werden.

Einige Verbesserungen gab es bei der Unterstützung für biometrische Authentifizierung. So können Apps nun den Fallback-Support des Systems nutzen, um im Problemfall nach PIN, Muster oder Passwort zu fragen. Umgekehrt ist es möglich für weniger sensible Aktionen auf eine wiederholte Authentifizierung via Fingerabdruck zu verzichten.

Hardening

Andere Neuerungen zielen vor allem darauf ab, Angriffe gegen Android generell zu erschweren. So werden ausführbare System-Dateien oder -Bibliotheken künftig in sogenanntes "Execute-only-Memory" geladen, wodurch der Lesezugriff auf die entsprechenden Speicherstellen generell blockiert wird. Das soll eine ganze Klasse an Angriffe – die sogenannten "Code Reuse"-Attacken – unterbinden. Mit Android 10 werden zudem die Software Codecs noch einmal in eine eigene Sandbox gepackt, und somit stärker vom restlichen Media Framework getrennt. Laut Google waren zuletzt 80 Prozent aller Lücken im Media Framework bei den Software Codecs angesiedelt. Die Trennung soll es Angreifern nun erheblich schwerer machen, Sicherheitslücken auch wirklich aktiv ausnutzen zu können.

Eine der zentralen Zielsetzungen von Android 10: Das System besser gegen Angriffe absichern.
Grafik: Google

Eine weitere Sicherheitverschärfung: Apps dürfen keinen Binärcode mehr ausführen, der im lokalen Nutzerverzeichnis gespeichert ist. Damit soll unterbunden werden, dass Apps nach ihrer Installation Schadcode nachladen, wie es in der Vergangenheit immer wieder der Fall war. In Zukunft wird ausführbarer Code also nur mehr akzeptiert, wenn er Teil des betreffenden Programmpakets (APK) ist. Mit Android 9 hat Google damit begonnen, den Zugriff auf nicht offiziell dokumentierte Programmierschnittstellen (APIs) zu beschränken. In der neuen Version verschärft man diese Maßnahmen nun noch einmal deutlich. Das könnte bei manchen Apps, die sich solcher Tricks bedienen, zu Problemen führen. Allerdings sollte dies auch nicht überraschend kommen: Google hat schon im Vorjahr angekündigt, dass der Zugriff auf nicht-dokumentierte Schnittstellen langfristig komplett deaktiviert werden soll.

Fast ein Drittel aller Android-Lücken ist auf fehlerhafte Überprüfung von Speichergrenzen zurückzuführen. Mit Android 10 soll dies nun dank der Nutzung von BoundSan in besonders gefährdeten Komponenten unterbunden werden. So kommt BoundSan nun für elf Codecs sowie für den gesamten Bluetooth-Stack zum Einsatz. Letzterer war übrigens nach dem Media Framework im Jahr 2018 der zweitgrößte Problembereich für die Android-Sicherheit. Google nimmt sich hier also recht analytisch die größten Angriffspunkte der Reihe nach vor. Ein beliebter Trick von Angreifen ist es, sich im Cache einer App zu verankern: Apps, die das generell unterbinden wollen, können nun erzwingen, dass immer der eingebettet Dex-Code aus dem eigenen Paket geladen wird – der Cache wird dann also ignoriert. Dies hat natürlich eine negative Auswirkung auf die Performance, insofern ist das nur für Apps mit besonders hohen Sicherheitsbedürfnissen gedacht.

Settings Panels

Eine neue Android-Version bedeutet auch immer neue Funktionen für Entwickler: Eines der Highlights sind hierbei die sogenannten "Settings Panels". Apps können diese anbieten, um den Nutzern Zugriff auf zentrale Systemeinstellungen zu bieten. So kann dann etwa künftig ein Browser die WLAN- oder Mobilfunk-Settings anbieten, wenn gerade keine Verbindung zustande kommt. Auch hinter dieser Neuerung steht genau genommen eine Privacy-Überlegung – wird doch im Gegenzug die Möglichkeit, dass Apps selbst Systemeinstellungen ändern, eingeschränkt. In Hinblick auf WLAN-Verbindungen geht dies jetzt beispielsweise gar nicht mehr.

Die Settings Panels in Android 10.
Grafik: Google

Faltbare Smartphones kommen

Für einige Unterhaltung hat dieses Jahr das Thema "faltbare Smartphones" gesorgt. Die ersten Vertreter dieser Gattung mögen zwar von vielen Problemen geplagt sein, das ändert aber nichts daran, dass Hersteller weiter eifrig daran basteln. Android 10 liefert nun einige Neuerungen, um entsprechende Geräte zu unterstützen. Dazu gehören etwa APIs, um mehrere Apps gleichzeitig zu benutzen und das Pausieren und Fortsetzen abzugleichen. Zudem gibt es neue Optionen, um den Wechsel zwischen kleinem und großem Bildschirm nahtlos vorzunehmen. Es geht also um den Übergang beim Faltvorgang. Das Gute an alldem: Selbst wenn sich faltbare Geräte nicht durchsetzen, profitieren von diesen Verbesserungen auch andere Formfaktoren wie Laptops mit Android-Support.

Nahtlos von gefalteter auf entfaltete Ansicht: Das sollen die neuen Schnittstellen von Android 10 ermöglichen.
Grafik: Google

Desktop-Modus?

Etwas versteckt findet sich in den Entwicklereinstellungen von Android 10 ein Eintrag namens "Desktop Mode". Wie sich herausstellt, verbirgt sich dahinter tatsächlich das, was der Name suggeriert: ein Pendant zu Samsung DeX. Aktivieren lässt sich das Ganze derzeit aber nur auf ausgewählten Geräten, zu denen die Pixel-Reihe nicht gehört, und selbst dann erweist sich das Ganze als ziemlich begrenzt funktionell. Sollte Google also wirklich eine eigene Alternative zu DeX anbieten wollen, werden wir die wohl erst mit dem Pixel 4 zu Gesicht bekommen. Zumindest hat das Ganze aber jetzt schon interessante Konsequenzen: Drittentwickler können darauf basierend nämlich eigene Apps für einen Desktop-Modus anbieten.

Angle

Besonders für Spielentwickler dürfte der folgende Punkt interessant sein: Unter dem Namen Angle bietet Android 10 einen neuen OpenGL-ES-Treiber auf Basis des 3D-APIs Vulkan an. Grund dafür ist, dass es bislang eine Fülle unterschiedlicher OpenGL-ES-Implementationen mit spezifischen Problemen gab. Und das beschert App-Entwicklern zum Teil ordentlichen Zusatzaufwand bei Entwicklung und Testen. Mit Angle soll nun ein einheitlicher Treiber als Alternative angeboten werden. App-Entwickler, die diesen nutzen wollen, können ihn gezielt aktivieren, einen Zwang gibt es aber nicht. Das liegt wohl auch daran, dass Angle derzeit erst OpenGL ES 2.0 abdeckt, der Support für OpenGL ES 3.0 soll dann mit der nächsten Android-Generation folgen. In den Entwicklereinstellungen gibt es zudem eine versteckte Option, über die die Nutzer selbst schauen können, ob eine App mit Angle läuft. Angle ist übrigens ein Nebenprodukt der Chrome-Entwicklung und wurde von dort übernommen. Für Android-Nutzer aber wohl noch wichtiger: Das Ganze ist auch Teil von Project Mainline, Angle wird also ebenfalls direkt von Google auf allen Geräten gewartet.

Performance

Einer der wichtigsten Bestandteile eines Android-Systems ist die Runtime ART, immerhin ist diese für die Ausführung der Apps zuständig. Von Optimierungen an dieser Stelle profitiert also das gesamte System. Mit den Profile Guided Optimizations hat Google bereits seit Android 7 ein System eingeführt, das Apps nach und nach gezielt auf die jeweilige Hardware optimiert. Der Nachteil dabei: Am Anfang hat man davon wenig. Diese Lücke schließt Android 10 nun, indem es aus den Erfahrungen anderer Nutzer lernt und so von Anfang an ein passendes Profil anbietet. Das resultiert vor allem in Verbesserungen bei der Startzeit, bei einigen Google-Apps lag der Unterschied laut den Zahlen des Softwarherstellers zwischen neun und 21 Prozent. Aber auch sonst gab es einige Verbesserungen an ART, die die Startzeit von Apps weiter reduzieren sollen.

Performance-Verbesserungen dank ART-Optimierungen.
Grafik: Google

Je länger ein System benutzt wird, desto mehr Objekte sammeln sich im Speicher an, die eigentlich gar nicht mehr benutzt werden. Hier regelmäßig Ordnung zu schaffen ist die Aufgabe des sogenannten Garbage Collector, der insofern einen integralen Bestandteil jedes Speichermanagements darstellt. Gleichzeitig ist es aber auch ein Bestandteil, der einiges an Ressourcen verbrauchen kann. Mit Android 10 nimmt Google an dieser Stelle einige Änderungen vor, die diesen Vorgang effizienter machen. Dies macht sich generell in weniger "Jank" (also kurzen Hängern in einer App) bemerkbar, am meisten sollen davon Geräte mit schwacher Hardwareausstattung profitieren.

WLAN wird flotter

Der WLAN-Support wurde für Android 10 generalüberholt, was nicht zuletzt bessere Performance bringen soll. Dabei können Apps nun auch gezielt einen High-Performance-Modus mit niedrigen Latenzzeiten anfordern – was aber natürlich mehr Strom benötigt. Gedacht ist das Ganze vor allem für Echtzeitspiele. Dass diese Optimierungen passend zum nahenden Launch von Googles Spiele-Streaming-Plattform Stadia in Android aufgenommen werden, dürfte also kein Zufall sein. Zudem wurde der Rewrite auch genutzt, um einige Privacy-Verbesserungen vorzunehmen. So werden zum Managen von Geräten des "Internets der Dinge" sowie zum Vorschlagen von Internetverbindungen keine Standortinformationen mehr benötigt. Ebenfalls neu ist "Easy Connect". Dank Autorisierung mittels QR-Code, Bluetooth LE oder auch NFC soll die Einrichtung von WLAN-Verbindungen flotter vonstattengehen. Das Ganze versteht sich als Ersatz für WPS, das aus Sicherheitsgründen nicht mehr unterstützt wird. Dazu kommt noch ein neuer Peer-to-Peer-Modus, der vor allem für das Einrichten von Geräten wie Chromecast oder Google Home gedacht ist.

5G-Support

Im Bereich Telefonie gibt es einen großen Neuzugang: Android unterstützt nun offiziell 5G-Verbindungen. Passend dazu gibt es jetzt für Apps die Möglichkeit, die Qualität einer Verbindung abzufragen, um dann bei einer ausreichend schnellen Übertragung zusätzliche Features freizuschalten. Ebenfalls neu ist eine Schnittstelle für das sogenannte "Call Screening". Diese ist für Dienste wie Google Duplex gedacht, das Anrufe für die Nutzer beantworten kann – derzeit allerdings nur in den USA. Zudem wurde der "Caller ID"-Support erweitert, wodurch Telefonie-Apps Anrufe von Personen, die nicht im Adressbuch des Benutzers sind, als Spam klassifizieren können. Beides sind Funktionen, die bisher schon in der Google-Phone-App zu finden waren, nun aber in das Android-System wandern.

Audio und Video

Kommen wir zum Audio- und Video-Support von Android. Eine der wichtigsten Verbesserungen ist hier eine Schnittstelle, über die andere Apps Zugriff auf die Audio-Ausgaben eines Programms erhalten können. Google denkt dabei vor allem an den mit dem Pixel 4 kommenden Live Caption Support – also die automatische Untertitelung beliebiger Audio- und Video-Inhalte. Gleichzeitig ist das Ganze aber auch für das Live-Streamen von Spielen von Interesse, das dadurch mit sehr geringem Overhead abgewickelt werden kann. Bei alldem behalten die Nutzer übrigens die volle Kontrolle, Zugriff auf die Audio-Ausgabe einer App gibt es erst nach expliziter Bestätigung. Zudem wird mittels Benachrichtigung über laufende Aufnahmen informiert, unbemerktes Spionieren geht damit also nicht. App-Entwickler können diese Möglichkeit aber auch generell für ihr Programm blockieren. Ebenfalls neu ist der Support für die Kontrolle von Midi-Geräten über native Schnittstellen. Außerdem sind APIs hinzugekommen, über die Entwickler gezielt einzelne Mikrofone ansprechen und auch das Aufnahmefeld bestimmen können.

Eine neue Schnittstelle für Audio-Aufnahmen unter Android.

Fortschritte macht das bereits erwähnte 3D-Framework Vulkan, das nun in Version 1.1 enthalten ist. Überhaupt soll dieses künftig die Basis für Grafikaufgaben unter Android werden, entsprechend ist dessen Auslieferung auf Geräten mit 64-Bit-Prozessor nun verpflichtend. Neu sind der Support für das freie Videocodec AV1, für HDR10+ sowie das Audio-Codec Opus. Einige Erweiterungen gibt es beim Kamera-Support. So werden nun sekundäre, monochrome Spezialsensoren unterstützt. Diese sind üblicherweise dazu gedacht, die Low-Light-Fähigkeiten eines Geräts zu verbessern. Mit dem Dynamic Depth Format (DDF) gibt es nun ein einheitliches Format, um Tiefeninformationen von Fotos – etwa für Bokeh-Effekte – zu speichern. Die entsprechenden Metadaten werden dabei in einer separaten Datei abgespeichert, um auch das Original unverändert zu erhalten. Ebenfalls neu ist die Unterstützung für die Aufnahmen von Fotos mit einem weiten Farbraum – also etwa Display P3 oder Adobe RGB. All das sind natürlich Dinge, die es bei vielen Android-Smartphones schon gibt, aber die Aufnahme in Android 10 bedeutet, dass die Entwickler hier künftig weniger Zusatzarbeit haben und eine Vereinheitlichung stattfindet.

Vermischtes

Kommen wir zur Liste all der kleineren Verbesserungen quer durch alle Bereiche. Es gibt jetzt ein neues "Thermal API", über das Apps erfahren können, wie es mit der Wärmeentwicklung des Geräts aussieht. Mithilfe dieser Informationen können dann etwa Spiele gezielt die Darstellungsqualität reduzieren, bis sich der Prozessor wieder erholt hat – oder sie gleich so anpassen, dass eine durchgängige Bildwiederholrate garantiert werden kann. Beim Autofill-Support gab es ebenfalls einige Anpassungen, darunter die Möglichkeit, gespeicherte Passwörter zu aktualisieren. Auch neu: Apps können jetzt gezielt eine Graustufendarstellung anfordern – bisher ging das nur systemweit im Rahmen der "Digital Wellbeing"-Tools.

Für Maschinenlernaufgaben wurde die Version 1.2 des Neural Network API integriert. Diese bringt 60 neue Operationen für den Einsatz von Maschinenlernen direkt am Gerät. Schon seit Android 6 sind die sogenannten "Text Relocations" verboten, über die Code beim Start verändert wird. Nun wird durchgegriffen, versucht eine App solche Tricks weiter vorzunehmen, führt dies zu einem Absturz. Mit Checkpoint gibt es in Android 10 jetzt eine Art Snapshot-Funktion, die dafür sorgen soll, dass es bei Updates (sowohl für Apps als auch die neuen Apex-Pakete) zu keinerlei Beschädigungen kommt. Sollten Probleme auftreten, kann das System einfach auf einen Zustand vor dem Update zurückkehren.

Arbeitsaufgaben

Ein großer Bereich sind wie immer die Verbesserungen für Android im Unternehmenseinsatz. Hier gibt es eine Fülle an Detailverbesserungen, im Folgenden nur ein paar Beispiele. Administratoren können jetzt System-Updates in Wellen an ihre Nutzer liefern und so gezielt testen. Das Einrichten von Arbeitsgeräten wurde erheblich erleichtert und kann nun etwa mithilfe eines QR-Codes initiiert werden. Ebenfalls neu ist die Möglichkeit, private DNS-Server (mit "DNS over TLS"-Support zur Verschlüsselung) vorzuschreiben. Außerdem können Arbeits-Apps nun die Qualität der Bildschirmsperre überprüfen, bevor sie Inhalte anzeigen – und im Fall des Falles die Nutzer dazu drängen, hier Verbesserungen vorzunehmen.

Dynamische System-Updates

Zum Abschluss noch eine Neuerung, die derzeit vor allem für Gerätehersteller interessant ist, aber für die Zukunft noch einiges Potenzial haben könnte. Unter dem Namen Dynamic System Updates (DSU) ist es künftig nämlich möglich, ein pures Android als alternatives System auf Smartphones mit Android 10 zu booten. Dabei werden keinerlei dauerhafte Änderungen am System vorgenommen – alle Daten landen auf einer temporären Partition –, vor allem aber muss auch der Bootloader nicht entsperrt werden, wie es sonst für das Einrichten von alternativen Android-Systemen der Fall ist. Das Ganze kann man sich ähnlich zu Linux Live CDs vorstellen, wenn auch in einer sehr eingeschränkten Version. Immerhin werden dabei nur Images von Google selbst oder des jeweiligen Hardwareherstellers akzeptiert.

Stock Android auf Geräten anderer Hersteller: Das wird dank der "Dynamic System Updates" möglich.
Foto: Proschofsky / STANDARD

Möglich wird das Ganze über neue Verbesserungen an jenem Project Treble, mit dem Google seit Android 8 die hardwarespezifischen – und meist nichtfreien – Softwarebestandteile sauber vom restlichen Android-System trennt. Das bedeutet vor allem, dass dasselbe Image auf allen Android-10-Smartphones läuft – oder zumindest auf allen, die die Dynamic System Updates unterstützen. Vorgeschrieben ist das derzeit nämlich nicht. Am Rande der Google I/O hat der Softwarehersteller dieses Features aber schon auf einigen Geräten unterschiedlicher Anbieter demonstriert, insofern bleibt zu hoffen, dass diese die DSUs freiwillig übernehmen. Zumal sie auch selbst etwas davon haben – können sie damit doch unkompliziert ein "Stock Android" auf ihren Geräten testen. Die Kompatibilität mit solch einem unmodifizierten Android-System ist mittlerweile eine der Vorschriften, die mit dem Erhalt einer Android-Lizenz einhergehen.

Als dauerhaftes Zweitsystem eignet sich das Ganze derzeit aber nur sehr begrenzt. So müssen Einrichtung und Start über das Kommandozeilen-Tool ADB vorgenommen werden. Vor allem wird beim nächsten Reboot aber wieder in das normale System gewechselt. Bleibt abzuwarten, ob sich Google dazu überreden lässt, dieses System weiter auszubauen – und auch für andere Images zu öffnen.

Fazit

Android 10 bringt eine beeindruckende Fülle an strukturellen Verbesserungen. Vor allem das "Project Mainline" hat das Potenzial, die Android-Welt grundlegend umzukrempeln – und zwar in positiver Weise. Die zahlreichen Privacy-Verbesserungen sind ebenfalls erfreulich, auch wenn es schmerzt, dass Google bei den Änderungen an der Storage-Berechtigung dem Druck einzelner Entwickler nachgegeben hat – im Sinne der User ist das eine schlechte Entscheidung. Die fertige Version von Android 10 dürfte bereits relativ bald veröffentlicht werden. Im Rahmen des Betaprogramms gibt es derzeit die Beta 5, die aber, was die strukturellen Verbesserungen anbelangt, bereits weitgehend mit der fertigen Version ident ist. Es ist noch eine sechste Beta vorgesehen, bevor dann die finale Version folgt. Den Anfang werden wie gewohnt Googles eigene Smartphones der Pixel-Reihe Android 10 machen, die allesamt die neue Version umgehend erhalten werden. Welche Hersteller dann wie schnell mit einem Update reagieren, wird sich wie gewohnt erst in den kommenden Wochen und Monaten zeigen. (Andreas Proschofsky, 4.8.2019)