Android Scoped Storage verstehen: Was sich geändert hat und warum es wichtig ist

A smartphone beside small storage drawers with one locked, illustrating Android scoped storage

Wenn Sie jemals versucht haben, Dateien auf einem Android-Gerät zu verwalten, ist Ihnen wahrscheinlich aufgefallen, dass die Dinge unterschiedlich funktionieren, je nachdem, welche Android-Version Sie verwenden. Beginnend mit Android 10 führte Google eine grundlegende Änderung in der Art und Weise ein, wie Apps mit dem Dateisystem interagieren. Diese als Bereichsgebundener Speicher bekannte Änderung definierte die Regeln zum Lesen und Schreiben von Dateien auf gemeinsam genutztem Speicher neu. Für Benutzer, die Apps querladen, OBB-Dateien verwalten oder mit Dateimanagern arbeiten, ist es wichtig, den Bereichsspeicher zu verstehen.

In diesem Artikel werden wir untersuchen, was bereichsbezogener Speicher ist, warum Google ihn implementiert hat, wie er sich auf alltägliche Benutzer und Entwickler auswirkt und was er für jeden bedeutet, der APK- oder XAPK-Dateien außerhalb des Play Store installiert.

Das Problem mit dem alten Speichermodell

Vor Android 10 konnte jede App, die die Berechtigung READ_EXTERNAL_STORAGE oder WRITE_EXTERNAL_STORAGE anforderte, auf praktisch jede Datei im freigegebenen Speicher des Geräts zugreifen. Dazu gehörten Fotos, Dokumente, Downloads und sogar Dateien, die von anderen Apps erstellt wurden. Dies erleichterte zwar die Dateiverwaltung, führte jedoch zu ernsthaften Datenschutz- und Sicherheitsbedenken.

Stellen Sie sich eine einfache Taschenlampen-App vor. Wenn Sie ihm beim alten Modell die Speicherberechtigung erteilten, konnte es Ihre Fotos stillschweigend lesen, Ihre heruntergeladenen Dokumente scannen oder sogar Dateien ändern, die zu anderen Anwendungen gehörten. Es gab keine granulare Kontrolle. Sie haben einer App entweder vollen Zugriff auf Ihren gesamten Speicher gewährt oder ihn vollständig verweigert.

Dieser breite Zugang führte zu realen Problemen. Einige Apps sammelten Benutzerdaten, indem sie den Speicher nach vertraulichen Dateien durchsuchten. Andere hinterließen verwaiste Dateien, die das Gerät noch lange nach der Deinstallation der App überfüllten. Google brauchte eine Lösung, die Benutzerfreundlichkeit mit Datenschutz in Einklang bringt, und die Antwort lautete: begrenzter Speicher.

Was Scoped Storage tatsächlich bewirkt

Bereichsbezogener Speicher verändert die Beziehung zwischen Apps und dem Dateisystem grundlegend. Bei diesem Modell erhält jede App ihre eigene private Sandbox auf einem externen Speicher, der sich normalerweise unter /Android/data/[package.name]/ befindet. Apps können in ihrer eigenen Sandbox frei lesen und schreiben, ohne dass dafür irgendwelche Berechtigungen erforderlich sind.

Der Zugriff auf Dateien außerhalb dieser Sandbox erfordert jedoch den Einsatz kontrollierter APIs. So funktioniert das neue Modell:

App-spezifischer Speicher

Jede App verfügt über ein eigenes Verzeichnis, auf das nur sie zugreifen kann. Bei der Deinstallation der App wird dieses Verzeichnis automatisch bereinigt. Ohne Root-Zugriff kann keine andere App an diesem Speicherort lesen oder schreiben. Dies beseitigt das Problem verwaister Dateien und verhindert das App-übergreifende Datenschnüffeln.

Mediensammlungen

Für freigegebene Medien wie Fotos, Videos und Audiodateien stellt Android die MediaStore-API bereit. Apps können Medien zu freigegebenen Sammlungen beitragen und von anderen Apps erstellte Medien lesen, jedoch nur über diese strukturierte Schnittstelle. Eine App kann ihre eigenen Medien ohne Erlaubnis sehen, aber für den Zugriff auf die Medien anderer Apps sind die in Android 13 eingeführten Berechtigungen READ_MEDIA_IMAGES, READ_MEDIA_VIDEO oder READ_MEDIA_AUDIO erforderlich.

Speicherzugriffs-Framework

Für Dokumente und andere Nicht-Mediendateien müssen Apps das Storage Access Framework (SAF) verwenden. Dadurch wird dem Benutzer eine Systemdateiauswahl angezeigt, die explizit auswählt, auf welche Dateien oder Verzeichnisse die App zugreifen kann. Die App erhält niemals umfassenden Zugriff auf das gesamte Dateisystem.

Die MANAGE_EXTERNAL_STORAGE-Berechtigung

Für Apps, die wirklich umfassenden Dateizugriff benötigen, wie Dateimanager, Backup-Tools und Antivirensoftware, stellt Android die MANAGE_EXTERNAL_STORAGE-Berechtigung bereit. Diese Berechtigung erfordert jedoch eine besondere Genehmigung von Google für Apps, die über den Play Store vertrieben werden, und Benutzer müssen sie manuell über die Systemeinstellungen und nicht über einen einfachen Dialog erteilen.

Die Rollout-Zeitleiste

Google hat die begrenzte Speicherung nicht über Nacht erzwungen. Der Übergang erfolgte schrittweise:

  • Android 10 (API 29): Scoped Storage wurde eingeführt, Apps konnten sich jedoch mithilfe von requestLegacyExternalStorage="true" in ihrem Manifest abmelden. Dies gab den Entwicklern Zeit, sich anzupassen.
  • Android 11 (API 30): Das Legacy-Flag wurde für Apps ignoriert, die auf API 30 oder höher abzielen. Für neue und aktualisierte Apps im Play Store wurde begrenzter Speicherplatz obligatorisch.
  • Android 12 und höher: Es wurden weitere Verbesserungen vorgenommen, darunter detaillierte Medienberechtigungen und eine verbesserte SAF-Leistung.
  • Android 13 (API 33): Die allgemeine Berechtigung READ_EXTERNAL_STORAGE wurde zugunsten spezifischer Medienberechtigungen veraltet.
  • Android 14 (API 34): Es wurde ein teilweiser Foto- und Videozugriff eingeführt, der es Benutzern ermöglicht, Zugriff auf bestimmte Dateien statt auf ganze Medienbibliotheken zu gewähren.

Wie sich bereichsbezogener Speicher auf das Sideloading auswirkt

Für Benutzer, die Apps von außerhalb des Play Store installieren, bringt der begrenzte Speicher einige praktische Herausforderungen mit sich, die es zu verstehen lohnt.

Herunterladen und Zugreifen auf APK-Dateien

Wenn Sie eine APK-Datei über einen Browser herunterladen, landet sie normalerweise im Ordner „Downloads“. Beim bereichsbezogenen Speicher ist die Browser-App Eigentümer dieser Datei. Wenn Sie es mit einer anderen App, beispielsweise einem Dateimanager, installieren möchten, benötigt dieser Dateimanager entsprechenden Zugriff. Die meisten modernen Dateimanager handhaben dies über SAF korrekt, ältere können jedoch Schwierigkeiten haben.

Der Systempaket-Installer kann weiterhin auf Dateien zugreifen, die Sie explizit über die Dateiauswahl auswählen, sodass der grundlegende Ablauf des Herunterladens und Installierens einer APK weiterhin funktioniert. Automatisierte Installationsabläufe, die auf dem direkten Zugriff auf den Dateipfad basieren, können jedoch fehlschlagen.

OBB-Dateien und Spieldaten

Hier entsteht bei der Lagerung mit begrenztem Umfang die größte Reibung für Seitenlader. Viele große Spiele verwenden OBB-Dateien (Opaque Binary Blob), die in /Android/obb/[package.name]/ gespeichert sind. Beim alten Modell konnten Sie OBB-Dateien einfach mit einem beliebigen Dateimanager in das richtige Verzeichnis kopieren.

Beim bereichsbezogenen Speicher ist das Verzeichnis /Android/obb/ eingeschränkt. Unter Android 11 und höher können normale Apps nicht in das OBB-Verzeichnis einer anderen App schreiben. Das heißt, wenn Sie eine XAPK-Datei herunterladen, die OBB-Daten enthält, benötigt das Installationsprogramm eine spezielle Behandlung, um diese Dateien korrekt zu platzieren.

Tools wie unser OBB-Extraktor können Ihnen beim Extrahieren von OBB-Dateien aus XAPK-Paketen helfen, aber um sie in neueren Android-Versionen im richtigen Verzeichnis zu platzieren, ist möglicherweise die Verwendung eines Dateimanagers mit MANAGE_EXTERNAL_STORAGE-Berechtigung oder die Verwendung von ADB-Befehlen von einem Computer aus erforderlich.

Überlegungen zur XAPK-Installation

XAPK-Dateien bündeln ein APK zusammen mit OBB-Daten und teilen manchmal APK-Konfigurationen auf. Für die Installation auf Geräten mit Android 11 oder höher ist ein Installationsprogramm erforderlich, das die Einschränkungen des bereichsbezogenen Speichers versteht. Das Installationsprogramm muss entweder über die MANAGE_EXTERNAL_STORAGE-Berechtigung verfügen oder die richtigen APIs verwenden, um OBB-Dateien am richtigen Speicherort zu platzieren.

Dies ist einer der Gründe, warum die Konvertierung von XAPK-Dateien in das Standard-APK-Format nützlich sein kann. Ein eigenständiges APK erfordert keine OBB-Dateiplatzierung, was den Installationsprozess auf neueren Android-Versionen vereinfacht. Mit unserem XAPK-zu-APK-Konverter können Sie das Basis-APK aus einem XAPK-Paket extrahieren.

Was Entwickler wissen müssen

Wenn Sie Android-Apps entwickeln, erfordert der Bereichsspeicher ein Umdenken im Umgang mit Dateien:

  • Verwenden Sie appspezifische Verzeichnisse für alle Dateien, die nur Ihre App benötigt. Diese erfordern keine Berechtigungen und werden bei der Deinstallation automatisch bereinigt.
  • Verwenden Sie MediaStore für Fotos, Videos und Audio, die für andere Apps sichtbar sein und die Deinstallation überstehen sollten.
  • Verwenden Sie SAF, wenn Ihre App mit vom Benutzer ausgewählten Dokumenten oder Verzeichnissen arbeiten muss.
  • Vermeiden Sie fest codierte Dateipfade. Pfade wie /sdcard/MyApp/ sind nicht mehr zuverlässig. Verwenden Sie stattdessen Context.getExternalFilesDir().
  • Testen Sie auf mehreren API-Ebenen. Das Verhalten unterscheidet sich erheblich zwischen Android 10, 11, 13 und 14.

Migrationsstrategien

Wenn Ihre App zuvor Dateien im freigegebenen Speicher gespeichert hat, benötigen Sie einen Migrationsplan. Der empfohlene Ansatz besteht darin, vorhandene Dateien beim ersten Start nach dem Update in den App-spezifischen Speicher zu kopieren und dann die alten Kopien zu löschen. Verwenden Sie Environment.getExternalStorageDirectory() mit dem Legacy-Flag während der Übergangszeit, um alte Dateien zu lesen und sie dann an den neuen Speicherort zu verschieben.

Häufige Missverständnisse

„Begrenzter Speicher bedeutet, dass Apps nicht auf Dateien zugreifen können“

Das ist falsch. Apps können weiterhin frei auf ihre eigenen Dateien zugreifen, zu freigegebenen Mediensammlungen beitragen und über die Systemauswahl Zugriff auf bestimmte Dateien anfordern. Was sich geändert hat, ist, dass Apps nicht mehr stillschweigend das gesamte Dateisystem durchsuchen können.

„Dateimanager sind bei neuen Android-Versionen kaputt“

Dateimanager, die MANAGE_EXTERNAL_STORAGE anfordern, funktionieren weiterhin. Der Benutzer muss diese spezielle Berechtigung lediglich über die Einstellungen erteilen. Die meisten gängigen Dateimanager haben sich dieser Anforderung bereits angepasst.

„Der begrenzte Speicher betrifft nur die SD-Karte.“

Der bereichsbezogene Speicher gilt für den gesamten gemeinsam genutzten Speicher, einschließlich des internen gemeinsam genutzten Speichers. Der Begriff „externer Speicher“ bezieht sich in Android auf gemeinsam genutzten Speicher, auf den mehrere Apps zugreifen können, nicht unbedingt auf eine physische SD-Karte.

Praktische Tipps für Benutzer

Wenn Sie regelmäßig Apps von der Seite laden oder Dateien auf Ihrem Android-Gerät verwalten, finden Sie hier einige praktische Empfehlungen:

  1. Verwenden Sie einen modernen Dateimanager, das MANAGE_EXTERNAL_STORAGE unterstützt. Apps wie Solid Explorer, MiXplorer und Total Commander haben sich gut an den Bereichsspeicher angepasst.
  2. Erteilen Sie Berechtigungen sorgfältig. Wenn ein Dateimanager nach „Zugriff auf alle Dateien“ fragt, beachten Sie, dass dies die MANAGE_EXTERNAL_STORAGE-Berechtigung ist und für die volle Funktionalität erforderlich ist.
  3. Verwenden Sie ADB für hartnäckige Dateioperationen. Wenn Sie OBB-Dateien nicht über einen Dateimanager platzieren können, können Sie die eingeschränkten Speicherbeschränkungen vollständig umgehen, indem Sie Ihr Gerät an einen Computer anschließen und adb push verwenden.
  4. Konvertieren Sie komplexe Pakete in einfachere Formate. Wenn eine XAPK-Datei auf einem neueren Gerät Probleme bereitet, ist das Extrahieren nur der APK-Komponente möglicherweise der Weg mit dem geringsten Widerstand.
  5. Halten Sie Ihre Installations-Apps auf dem neuesten Stand. Ältere Versionen von XAPK-Installationsprogrammen verarbeiten den Bereichsspeicher möglicherweise nicht korrekt.

Die Zukunft des Android-Speichers

Google verfeinert das Speichermodell mit jeder Android-Version weiter. Mit Android 14 wurde ein teilweiser Medienzugriff eingeführt, sodass Benutzer bestimmte Fotos mit einer App und nicht mit ihrer gesamten Bibliothek teilen können. Es wird erwartet, dass Android 15 die Leistung und Benutzerfreundlichkeit des Storage Access Framework weiter verbessert.

Der Trend ist klar: Android bewegt sich in Richtung eines Modells, bei dem Benutzer eine detaillierte Kontrolle darüber haben, was jede App sehen und ändern kann. Während dies für Power-User und Sideloader zu Problemen führt, verbessert es den Datenschutz und die Sicherheit für die breitere Benutzerbasis erheblich.

Arbeiten mit bereichsbezogenem Speicher, ohne App-Daten zu beschädigen

Scoped Storage stellt eine der bedeutendsten Änderungen an der Android-Architektur in den letzten Jahren dar. Durch die Beschränkung von Apps auf ihre eigenen Sandboxes und die Anforderung einer ausdrücklichen Zustimmung der Nutzer für einen umfassenderen Zugriff hat Google den Datenschutzstatus der Plattform erheblich verbessert. Für Benutzer, die Apps seitlich laden und Dateien manuell verwalten, hilft das Verständnis dieser Einschränkungen dabei, gelegentliche Reibungspunkte zu umgehen. Und für Entwickler ist die Anpassung an bereichsbezogenen Speicher keine Option, sondern eine Grundvoraussetzung für die moderne Android-Entwicklung.

Das Installieren von APKs, das Platzieren von OBB-Dateien und die einfache Verwaltung des täglichen Speichers laufen alle auf demselben System ab: dem bereichsbezogenen Speicher. Sobald Sie verstanden haben, wie es funktioniert, haben Sie die Kontrolle über Ihr Gerät und sind nicht der Gnade von Apps ausgeliefert, die den umfassenden Dateizugriff missbrauchen könnten.

Entwickelt und dokumentiert von Mst. Shaefale Leitender Entwickler und Android-Paketarchitekt • Verifiziert auf Android 12–15

Mst Shaefale unterhält bei xapktoapk.com die clientseitige XAPK/APKS-Fusion, den Binärmanifest-Parser und die APK v1+v2-Signaturtools. Erkennen Sie einen veralteten Befehl oder eine Betriebssystemänderung? Senden Sie eine redaktionelle Notiz.