EMZETT.
Login

APK

Kurz: “Android Package” — das Dateiformat, in dem Android-Apps verpackt und installiert werden, vergleichbar mit einer .exe unter Windows.

Genauer: Eine APK ist technisch ein ZIP-Archiv mit dem kompilierten App-Code, Ressourcen (Bilder, Layouts) und einem Manifest, das Berechtigungen und App-Infos beschreibt. Normalerweise installiert man Apps über den Play Store, APKs lassen sich aber auch direkt (“Sideloading”) installieren — praktisch für Tests, aber ohne die Sicherheitsprüfung des Play Stores.

Im Detail

Interner Aufbau

Weil eine APK letztlich nur ein umbenanntes ZIP-Archiv ist, lässt sich ihr Inhalt mit gängigen Archiv-Tools (z. B. 7-Zip) direkt öffnen und inspizieren — enthalten sind u. a. AndroidManifest.xml (Berechtigungen wie Kamera-/Standortzugriff, App-Name, Mindest-Android-Version), classes.dex (der kompilierte, für die Android-Laufzeitumgebung optimierte Bytecode — DEX steht für “Dalvik Executable”, nach der ursprünglichen Android-Laufzeitumgebung Dalvik) sowie Ressourcen-Ordner für Bilder in verschiedenen Bildschirmauflösungen (damit dasselbe App-Icon auf einem kleinen Smartphone und einem großen Tablet jeweils scharf aussieht).

Signierung als Sicherheitsmechanismus

Jede APK muss digital signiert sein, bevor sie installierbar ist — die Signatur beweist, dass ein Update wirklich vom selben Entwickler stammt wie die Originalversion (Android verweigert sonst das Überschreiben einer bestehenden App, selbst wenn Name und Icon identisch aussehen). Diese Signaturprüfung schützt davor, dass jemand eine bösartige, manipulierte Version einer bekannten App als “Update” einschleust.

App Bundles als moderner Standard

Für die Verteilung über den Play Store selbst nutzt Google inzwischen meist das neuere App-Bundle-Format (.aab, “Android App Bundle”), aus dem der Store dann für jedes konkrete Gerät eine passend zugeschnittene, kleinere APK generiert — enthält z. B. nur die Bildressourcen und Prozessor-Architektur-Binärdateien, die für das jeweilige Gerät tatsächlich gebraucht werden, statt alle möglichen Varianten in einer einzigen großen Datei zu bündeln. Das klassische APK-Format bleibt trotzdem der Standard für direkte Verteilung außerhalb des Play Stores (Sideloading, alternative App-Stores wie F-Droid).

Sicherheitsrisiken beim Sideloading

Normalerweise installiert man Apps über den Play Store, APKs lassen sich aber auch direkt (“Sideloading”) installieren — praktisch für Tests eigener Apps vor Veröffentlichung, für Apps außerhalb des Play Stores (z. B. F-Droid für ausschließlich quelloffene Apps), oder in Regionen ohne vollen Play-Store-Zugriff. Ohne die Sicherheitsprüfung des Play Stores (der APKs u. a. auf bekannte Malware-Signaturen scannt) trägt der Nutzer beim Sideloading das volle Risiko selbst — eine der häufigsten Verbreitungswege für Android-Malware sind gefälschte APKs beliebter Apps außerhalb offizieller Stores.

Berechtigungsmodell

Das AndroidManifest.xml listet alle Berechtigungen, die eine App potenziell nutzen will (Kamera, Standort, Kontakte, Internetzugriff usw.). Bis Android 5 wurden diese Berechtigungen pauschal bei der Installation erteilt — der Nutzer musste allen oder keiner zustimmen. Seit Android 6 fragt das System die meisten sensiblen Berechtigungen stattdessen erst zur Laufzeit ab, im konkreten Moment, wo die App sie tatsächlich braucht (z. B. beim ersten Öffnen der Kamera-Funktion) — ein deutlich granulareres, nutzerfreundlicheres Modell, das auch das nachträgliche Widerrufen einzelner Berechtigungen ohne Deinstallation der App erlaubt.

Siehe auch: Android, ZIP