APK Expansion Files (*.obb)

Aus Android Wiki

APK Expansion Files (deutsch: etwa APK Erweiterungsdateien) sind Dateien, die Zusatzinhalte einer App speichern, die zur eigentlichen Installationsdatei (APK) mitgeliefert werden können. Diese Erweiterungspakete werden als Opaque binary blob auf dem externen Speicher im Ordner Android/obb/<Paketname> abgelegt, wobei <Paketname> der Name des Androidprojektes ist.

Hintergrund[Bearbeiten | Quelltext bearbeiten]

Der Google Play Store erlaubt als maximale Größe einer APK-Datei 50 MB, was für den Großteil der Apps mehr als ausreichend ist um den Bytecode und zusätzliche Inhalte, wie Grafiken, Sounddateien (assets genannt) u.Ä. zu speichern. Gerade in Zeiten hochauflösender mobiler Displays und bspw. mobilen Gaming, gibt es einige App-Bereiche, die deutlich mehr Speicherplatz benötigen, um Inhalte, wie 3D Grafiken oder große Soundspuren, zu speichern. Vor der Einführung von APK Expansion Files, mussten die Entwickler diese Zusatzinhalte nach der Installation über eigene Server hosten und nach der Installation der App durch den User herunterladen lassen. Da dies weder kosteneffizient, noch benutzerfreundlich ist, hat Google mit Android 2.3 Gingerbread "Gingerbread" den StorageManager[1] eingeführt, welcher den Zugriff auf obb Dateien ermöglicht. Seitdem können Entwickler zu Ihrer App insgesamt 2 Erweiterungsdateien mit einer maximalen Größe von jeweils 2 GB über den Play Store zu Ihrer App ausliefern[2].

App-Zugriff[Bearbeiten | Quelltext bearbeiten]

Während der Installation (über den Google Play Store) werden die Erweiterungsdateien automatisch mit heruntergeladen und auf dem externen Speicher abgelegt. Die App kann anschließend über eine Instanz der StorageManagers Klasse diese obb-Datei einbinden (mountObb) um so auf die Inhalte zugreifen zu können.

Schutz vor fremdem Zugriff[Bearbeiten | Quelltext bearbeiten]

Grundsätzlich sollte jede App nur die Erweiterungsdateien verwenden, die auch von ihr mitgeliefert werden. Um die Inhalte in einem Erweiterungspaket vor fremden Zugriff zu schützen, kann man bei der Erstellung dieser einen geheimen Schlüssel angeben, der zur Entschlüsselung und den Zugriff auf die Daten benötigt wird (Für den App-Zugriff erlaubt StorageManager::mountObb die Angabe eines zweiten Parameters key).

Erstellung von Erweiterungsdateien[Bearbeiten | Quelltext bearbeiten]

Für Linux-basierte Betriebssysteme stellt Google das Tool jobb bereit, mit welchem sich verschlüsselte und unverschlüsselte Erweiterungspakete erstellen lassen.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]