Wie Google mit veralteten und unsicheren Android-Apps aufräumen will

    4. Mai 2018, 07:50
    23 Postings

    Entwickler sehen sich künftig mit wesentlich härteren Vorschriften konfrontiert – Umstellung bringt Mehrarbeit

    Bereits in wenigen Tagen ist es soweit: Am 8. Mai startet Googles jährliche Entwicklerkonferenz I/O im kalifornischen Mountain View. Wie schon in den Vorjahren wird dabei Android wieder eine zentrale Rolle einnehmen. Doch während die Nutzer des Betriebssystems vor allem auf Neuerungen rund um das kommende Android P gespannt sind, dürften Entwickler derzeit ganz andere Fragen beschäftigen: Hat sich doch Google von der breiteren Öffentlichkeit weitgehend unbeachtet zu einer ganzen Reihe an neuen Regeln rund um die App-Entwicklung für Android entschlossen, deren Ziel vor allem eines ist: Das Android-App-Angebot zu modernisieren, und so mit Altlasten endlich aufzuräumen.

    Neue Regeln

    Im August 2018 tritt eine neue Regel für den Play Store in Kraft, die die Android-Welt ordentlich umkrempeln könnte: Müssen doch ab diesem Zeitpunkt sämtlich neu aufgenommenen Apps eine aktuelle Version der Android-Programmierschnittstellen anvisieren. Und noch wichtiger: Ab November gilt diese Regel dann auch für Updates von bestehenden Apps.

    Um zu verstehen, welch große Änderung dies darstellt, muss man wissen, dass die Entwickler dieses "Target API" für ihre Apps bisher weitgehend nach Belieben auswählen konnten. Auf diese Weise haben so manche Entwickler strukturelle Verbesserungen bei Android gezielt umgangen. Geradezu ein Paradebeispiel hierfür sind jene dynamischen Berechtigungen, die mit Android 6.0 eingeführt wurden. Diese stellen aus einer Privacy-Sicht eine massive Verbesserung dar, da die App-Anbieter für den Zugriff auf Kamera, Standort und Co. seitdem einzeln die Berechtigung der User einholen müssen. Früher wurden diese Berechtigungen einfach im Rudel bei der App-Installation eingeholt.

    App-Entwickler konnten das alte Verhalten aber beibehalten, so lange sie das Target API ihrer App einfach nicht erhöhten – was auch tatsächlich einige bis heute tun. So weigert sich etwa Snapchat noch immer standhaft, seine Nutzer einzeln über all die abgefragten Berechtigungen entscheiden zu lassen. Mit November hat dies nun eine Ende: Entweder passen sich Snapchat und Co. modernen Android-Standards an, oder sie können nie wieder ein Update ausliefern – was für so große Hersteller natürlich keine Option darstellt.

    Sicherheit, Akkuverbrauch und mehr

    Es geht hier übrigens bei weitem nicht nur um einzelne Features wie die erwähnten "Runtime Permissions", Google hat in den letzten Jahren zahlreich Verbesserungen durchgeführt, die für App-Entwickler erst mit einem gewissen "Target API" schlagend werden. Dazu gehören unter anderem Regeln, die den Akkuverbrauch senken sollen oder auch wichtige Sicherheitsverbesserungen.

    Schritt für Schritt

    Natürlich will Google auch sicherstellen, dass man sich so eine Situation in Zukunft nie wieder einfängt. Also soll dieser minimal Target API Level jedes Jahr angehoben werden. Zum Start bildet hier Android 8.0 (API Level 26) die untere Grenze. Da es in dieser Hinsicht immer wieder Verwirrungen gibt eine kleine Klarstellung: All dies hält die App-Entwickler nicht davon ab, weiterhin ältere Android-Geräte zu unterstützen. Der Support für ältere Versionen des Betriebssystems hat mit diesen Änderungen nichts zu tun, wir also auch in keiner Weise eingeschränkt.

    Was ist mit all jenen, die keine Updates machen?

    Wer gut aufgepasst hat, dem wird auffallen, dass eine Gruppe von Apps von dieser Regel nicht betroffen sind: Jene, die schon seit langem im Play Store sind, und keine aktuellen Updates mehr erhalten. Eine Möglichkeit wäre nun, einen harten Schnitt mit dem Bestand im Play Store zu machen, und alte Apps einfach hinauszuwerfen. Davor schreckt Google – zumindest vorerst – aber noch zurück, könnte dies doch unerfreuliche Nebeneffekte auf seit längerem genutzte Geräte haben. Stattdessen versucht man hier auf einem anderen Weg Druck auszuüben.

    Mit Android P können die Hardwarehersteller für ihre Geräte einen minimalen API-Level für zugelassene Apps festlegen. Im aktuellen Developer Preview von Android P ist dieser Wert etwa beim Pixel 2 auf API Level 17 festgelegt, was Android 4.2 entspricht. Bei Apps, die eine ältere Android-Version adressieren, wird dann die Installation künftig schlicht blockiert. Google argumentiert für diese neue Regelung mit Sicherheits- und Performancegründen, und hat damit durchaus recht: Oft sind es veraltete Apps, die in dieser Hinsicht Probleme erzeugen.

    Bleibt abzuwarten, welches minimale API Level hier dann die einzelnen Hersteller wählen werden. Immerhin könnte man damit gehörigen Druck auf App-Anbieter ausüben. Wenn etwas Marktführer Samsung bei seinen Topgeräten Android 6 als unterstes Limit für Apps festlegt, wäre dies wohl das Ende für eine Fülle von zweifelhaften Apps, die bisher ohne dynamische Berechtigungen auskommen.

    64-Bit

    Die Modernisierung seiner Plattform betreibt Google aber noch über eine weitere Neuerung: Ebenfalls ab August müssen nämlich sämtliche neuen Apps in einer 64-Bit-Version erhältlich sein. Auch wenn es zunächst anders klingen mag, geht es hierbei darum, das System auf modernen Android-Smartphones schlanker zu machen. Da viele App-Hersteller bisher nur 32-Bit-Versionen ihrer Apps anbieten, müssen aktuelle Geräte sowohl die 32- als auch die 64-Bit-Versionen aller Systembibliotheken mitliefern, was natürlich einen gehörigen Overhead erzeugt. Wenn aber alle Apps auch als 64-Bit-Variante erhältlich sind, können die 32-Bit-Bibliotheken endlich gestrichen werden.

    Wer jetzt befürchtet, dass sich damit das Problem nur verschiebt, und dann einfach die Pakete der Android-Apps umfangreicher werden, sei beruhigt: Schon seit langem ist es Android-Entwicklern möglich, unterschiedliche Varianten ihrer Apps anzubieten, die nur die für die jeweiligen Zielgeräte notwendigen Dateien beinhalten. Damit wird etwa verhindert, dass schwache Geräte unnötig umfangreiche Grafiken herunterladen müssen, aber eben auch, dass 64-Bit-Geräte sinnlos doppelten App-Code erhalten.

    SDK Beschränkungen

    Doch damit sind für Android-App-Entwickler die anstehenden Arbeiten noch nicht beendet: Dreht Google doch mit Android P den Zugriff auf nicht dokumentierte Funktionen des Android-Systems ab. Immer wieder nutzen Apps solche nicht im Entwicklungskit spezifizierte Schnittstellen, um vermeintliche oder reale Begrenzungen bei den offiziellen Android APIs zu umschiffen. Genau so etwas führt aber immer wieder zu Problemen: Wenn etwa eine App nach dem Upgrade auf eine neue Android-Generation nicht mehr startet, dann ist das meist, weil die Entwickler nicht dokumentierte Methoden genutzt haben. Immerhin liefert Google für diese keinerlei Stabilitätsgarantie, sie können sich also auch von einer Version zur anderen grundlegend ändern.

    Mit der aktuellen Developer Preview von Android P wird in solchen Fällen nur eine Warnung ausgegeben, in der fertigen Version sollen entsprechende Apps aber schlicht nicht mehr starten. Insofern rät man Entwicklern, ihre Apps rasch anzupassen, und da wo ihnen im Android SDK tatsächlich wichtige Funktionalität fehlt, Feedback zu geben, damit diese offiziell nachgereicht werden kann.

    Ausnahmen

    Nur in einzelnen Ausnahmefällen will Google die Nutzung von nicht-spezifizierten Schnittstellen noch weiter erlauben, etwa wenn eine davon von sehr vielen Apps genutzt wird, und zu viele Probleme nach der Freigabe von Android P zu erwarten wären. Zu diesem Zweck wird derzeit eine Greylist gesammelt, in der diese Ausnahmen definiert werden. Google betont dabei aber, dass diese Liste bewusst kurz gehalten werden soll – und dass diese Ausnahmen zudem nur temporär sind, mit der nächsten Softwaregeneration also dann wohl endgültig Geschichte sein werden.

    Wichtiger Fortschritt

    In Summe dürfte es sich bei all diesen Maßnahmen, um die wohl wichtigsten Schritte zur Modernisierung des Android-App-Angebots in den letzten Jahren handeln. Bei Entwicklern dürften diese trotzdem nicht unisono auf Begeisterung stoßen. Wer etwa derzeit bei seinen Apps ein sehr altes Target API verwendet, wird in den kommende Monaten einige Arbeit mit der Modernisierung seiner App haben. Immerhin sind in den letzten Versionen zahlreiche grundlegende Änderungen vorgenommen worden, die es künftig ohne wenn und aber zu beachten gilt.

    Für die Nutzer ist all dies hingegen uneingeschränkt erfreulich: Für sie verheißen modernere Apps praktisch nur Vorteile: Ob bessere Sicherheit, längere Akkulaufzeit oder höhere Performance – all dies ist unbestreitbar im Sinne der User. (Andreas Proschofsky, 4.5.2018)

    • Android 5.x Lollipop ist mittlerweile fast vier Jahre alt, Apps die diese Version gezielt anvisieren, um danach vorgenommenen Privacy- und Sicherheitsverschärfungen zu entgehen, gibt es aber immer noch zuhauf.
      foto: andreas proschofsky / der standard

      Android 5.x Lollipop ist mittlerweile fast vier Jahre alt, Apps die diese Version gezielt anvisieren, um danach vorgenommenen Privacy- und Sicherheitsverschärfungen zu entgehen, gibt es aber immer noch zuhauf.

    Share if you care.