APK vs App Bundle: Warum ändert Google das App-Format von Android?

0
261
quietbits/Shutterstock.com

Android-Apps wurden in der Vergangenheit als APKs (Android-Pakete) vertrieben. Ein APK enthält eine kompilierte Version einer App sowie wichtige Medienressourcen wie Symbole und Sounds. Sie enthalten außerdem eine Manifestdatei, die App-Informationen für das Android-System bereitstellt, sowie eine Reihe von Zertifikaten und Signaturschlüsseln, die die Identität des Herausgebers bestätigen.

Im Mai 2018 hat Google ein neues App-Paket eingeführt Format, das einige der Mängel bei APKs beheben soll. Android App Bundles (AABs) erfüllen dieselbe Rolle wie APKs, jedoch mit erheblichen Unterschieden bei der Implementierung.

Auf der Google I/O 2021 kündigte Google an, dass AAB das Standardformat für Android-Apps wird. Ab Ende August müssen im Play Store neue App-Publikationen als AAB eingereicht werden. Endbenutzer, die nur den Play Store nutzen, müssen nichts tun. Für Entwickler ist die Geschichte etwas komplizierter.

App Bundle-Vorteile

AAB wurde ursprünglich eingeführt, um einige der häufigsten Verpackungsherausforderungen im Android-Ökosystem zu lösen. Android läuft auf Tausenden von Geräten, die eine Vielzahl von Bildschirmgrößen, Leistungsbasislinien und CPU-Architekturen abdecken. Das APK-Format passt sich dieser Vielfalt nicht an, da jedes Paket alle Ressourcen der App enthält.

Wenn Sie eine App auf Ihrem Telefon installieren, brauchen Sie sie nicht wirklich um die hochauflösenden Tablet-Varianten seiner Grafiken herunterzuladen. Mit APK erhalten Sie jedoch normalerweise jede Variation, was zu größeren Downloads und einer erhöhten Speichernutzung führt. Wenn ein Entwickler optimierte Builds anbieten möchte, muss er mehrere verschiedene APKs manuell kompilieren und signieren.

Werbung

App Bundles verfolgen einen anderen Ansatz. Sie sind so konzipiert, dass sie “bündeln” mehrere verschiedene Versionen einer App in einem logischen Paket. Der Play Store sendet dann nur die relevanten Bits an jedes Gerät, das eine Installation anfordert. Es wird für jeden Benutzer das richtige Bundle auf Abruf produzieren, sodass ein amerikanischer Benutzer mit einem 10-Zoll-Intel-Gerät einen anderen Download erhält als ein deutscher Benutzer mit einem 5-Zoll-ARM-Telefon. Entscheidend ist, dass Geräte immer noch APKs erhalten – Benutzer werden niemals direkt mit einem App Bundle interagieren. Der Unterschied besteht darin, dass die APKs dynamisch in der Cloud generiert werden.

App Bundles profitieren auch von einem einfacheren Laden von Add-On-Modulen und einer verbesserten Unterstützung für große Assets wie Spielinhalte. Laut Google führt dies alles in der Regel zu einer 15-prozentigen Reduzierung der Downloadgröße im Vergleich zur gleichen App, die als APK vertrieben wird.

What’ s Wechsel zu APKs?

Google wird die Unterstützung für APKs ab August 2021 schrittweise einstellen. Neue Apps, die im Play Store eingereicht werden, müssen als App-Bundle ausgegeben werden. Bestehende APK-basierte Apps werden weiterhin unterstützt und Entwickler können weiterhin Updates veröffentlichen. Diese Apps werden als “derzeit ausgenommen” Dies deutet darauf hin, dass in Zukunft möglicherweise Updates als AABs veröffentlicht werden müssen.

Die Umstellung erfolgt laut Google, damit mehr Nutzer von den App-Bundle-Vorteilen profitieren. Aus der Sicht eines typischen Endbenutzers ist es schwierig, mit dem Versprechen von App Bundles zu argumentieren: Kleinere Downloads und reduzierter Speicherplatz werden von vielen begrüßt, insbesondere von Geräten mit niedrigen Endverbrauchern und langsamen Internetverbindungen.

Benutzer älterer Android-Versionen werden die Vorteile nicht sehen, da ihr Gerät “split” Bundles zu einer funktionierenden App. Veraltete Betriebssystemversionen können weiterhin App Bundle-Apps aus dem Play Store installieren, obwohl – das Bündelungssystem erkennt, dass es mit einem älteren Gerät umgeht und stellt stattdessen ein normales All-in-One-APK bereit.

Was ist mit den Nachteilen?

Während die Schlagzeilen-Vorteile unbestritten sind, haben App Bundles einen erheblichen Nachteil für Entwickler und Power-User gleichermaßen. Da sich das App Bundle-System auf die dynamische In-Cloud-Generierung signierter APKs konzentriert, müssen Entwickler ihre App-Signaturschlüssel an Google übergeben. Anstatt dass Entwickler App-Updates in ihrer eigenen Build-Infrastruktur signieren, nimmt Google ein App Bundle und konvertiert es selbst in signierte APKs.

Werbung

Beim Signieren können Android-Geräte überprüfen, ob Updates vom selben Herausgeber stammen wie die aktuell installierte App. Es ist ein kritischer Teil des Ökosystems, der verhindert, dass böswillige Akteure bösartige Apps erstellen, die echte Downloads im Hintergrund überschreiben. Google verspricht, dass Entwickler ihre eigenen Schlüssel bereitstellen können, diese jedoch weiterhin im Play Store aufbewahren müssen.

Das Vertrauen von Google zum Speichern von Signaturschlüsseln gibt dem Unternehmen noch mehr Kontrolle über die Verteilung von Android-Apps. Jeder, der den Play Store erfolgreich kompromittiert hat, könnte damit beginnen, App-Updates in Entwicklerkonten zu veröffentlichen, da alle Signaturschlüssel in der Infrastruktur von Google zentralisiert werden.

Außerdem könnte Google jetzt vielleicht App-Updates selbst veröffentlichen wenn eine Regierung sie dazu zwingt. Es hat bereits die Möglichkeit, Apps auf Android-Geräten im Hintergrund zu installieren. Jetzt hält es die Schlüssel zu den Königreichen der Entwickler und könnte Anfragen nach heimlicher Installation nicht genehmigter Updates vorhandener Apps erfüllen.

Könnte eine Regierungsbehörde Google dazu bringen, eine modifizierte verschlüsselte Messaging-App auf dem Gerät des Zielnutzers zu installieren? Eine solche Anfrage könnte es der Agentur ermöglichen, Nachrichten abzufangen, ohne dass das Ziel klüger wäre. App Bundles und gehostetes Signieren machen das Szenario theoretisch möglich.

Das Risiko wird angeblich durch eine “Codetransparenz” System. Dies soll Entwicklern und Endnutzern die Möglichkeit geben, zu überprüfen, ob heruntergeladene APKs mit dem Bundle übereinstimmen, das an den Play Store gesendet wurde, um die Möglichkeit eines Eindringens auszuschließen.

Android überprüft die Codetransparenz nicht wirklich. Signaturen, also liegt es an der Community, Tools dafür zu entwickeln. Darüber hinaus ist die Codetransparenz völlig optional und nur aktiviert, wenn das APK eine Transparenzdatei enthält. Da Google bereits über die erforderlichen Schlüssel zum Generieren neuer APKs verfügt, konnte es die Codetransparenzdatei jederzeit entfernen.

App Bundles und App-Stores von Drittanbietern

App Bundles sind auch eine Bedrohung für die Offenheit des Android-Ökosystems. In den letzten Jahren hat Google eine stärkere Stewardship-Rolle behauptet. App Bundles sind ein weiterer Schlag gegen App-Stores von Drittanbietern, die direkte APK-Downloads anbieten.

Werbung

Da Entwickler nun App Bundles kompilieren müssen, werden APK-Builds an den Rand gedrängt. Es könnte nur eine Frage der Zeit sein, bis Google die direkte APK-Installation vollständig deaktiviert oder APK-Build-Funktionen aus offiziellen Android Studio-Versionen entfernt.

Vorläufig können Entwickler signierte eigenständige APKs von der . herunterladen Play Store, nachdem sie App Bundles eingereicht haben. Diese APKs können in App-Stores von Drittanbietern hochgeladen werden, sodass für dieses Bereitstellungsmodell kein unmittelbares Risiko besteht. Es ist jedoch immer noch eine Unannehmlichkeit für Entwickler – Sie müssen Ihre signierten APKs entweder manuell herunterladen oder sie separat auf Ihrem lokalen Computer erstellen.

Google kündigte den obligatorischen Wechsel zu App Bundles nur wenige Tage nachdem Microsoft Windows 11 mit Unterstützung für Android-Apps aus dem Amazon App Store vorgestellt hatte. Obwohl die Umstellung auf App Bundles bereits seit einigen Jahren im Gange ist, könnte die Entscheidung von Google, die Umstellung jetzt vorzunehmen, darauf abzielen, die Auswirkungen der Partnerschaft zwischen Microsoft und Amazon zu begrenzen, die nur reguläre APKs unterstützt.

Schlussfolgerung

Android App Bundles sind ein neues App-Kompilierungsformat mit viel höherer Effizienz als ein normales APK. Obwohl die Geräte letztendlich immer noch ein APK erhalten, wird jedes einzelne speziell auf die Betriebssystemversion, den Geräteformfaktor und das aktive Gebietsschema zugeschnitten.

App Bundles sollten zwar von den meisten Android-Nutzern begrüßt werden, sie sind jedoch kein perfekte Lösung für Entwickler und das breitere Android-Ökosystem. Das App Bundle-Modell gibt Google mehr Kontrolle über die App-Verteilung und erfordert die Offenlegung von Signaturschlüsseln, die erzwungene App-Updates ermöglichen und gleichzeitig die Storefronts von Drittanbietern bedrohen könnten.