Einstellung von SDCardFS

SDCardFS wird auf Geräten, die mit Android 11 oder höher ausgeliefert werden und die Kernelversion 5.4 oder höher ausführen, eingestellt. Auf solchen Geräten sind bei VTS-Tests bereitgestellte Dateisysteme, die als SDCardFS aufgeführt sind, nicht zulässig. Geräte, die mit Android 11 oder höher ausgeliefert werden, aber die Kernelversion 4.19 oder niedriger ausführen, können SDCardFS weiterhin verwenden. Google bietet jedoch keinen zusätzlichen Support an.

Vor der Einstellung ermöglichte SDCardFS die Steuerung des Zugriffs auf emulierten internen Speicher und externe SD-Karten, sodass Apps nur auf die für sie relevanten Daten zugreifen konnten. Außerdem war die Groß- und Kleinschreibung nicht mehr relevant und es wurde zusätzlicher Speicherplatz erfasst.

Ersatzfunktion für SDCardFS

Der Ersatz für SDCardFS verwendet mehrere Dateisystemfunktionen des Linux-Kernels, um ähnliche Ergebnisse zu erzielen. Die Unterscheidung zwischen Groß- und Kleinschreibung wird direkt vom Dateisystem verarbeitet. Dies führt zu nahezu identischen Suchzeiten in Ordnern, in denen die Groß- und Kleinschreibung beachtet und in denen sie ignoriert wird. Die Verlangsamung bei großen Ordnern unter SDCardFS wird dadurch beseitigt. Die Kontingentsaufzeichnung, die SDCardFS zum schnellen Erfassen von Speicherdaten für Einstellungen verwendet hat, wird jetzt über den Nutzerbereich mithilfe von Projektkontingenten konfiguriert. In einigen leistungskritischen Kontexten werden Verzeichnisse an Ort und Stelle bereitgestellt. Eine neue FUSE-Implementierung bietet Speicherplatz für den direkten Zugriff auf das Dateisystem, hauptsächlich zur Unterstützung der Entfernung von Standortinformationen.

Funktion zum Ersetzen der SD-Karte konfigurieren

Wenn Sie Projektquoten und die Fallumwandlung für emulierten Speicher ohne SDCardFS auf einem Gerät mit Android 11 oder höher aktivieren möchten, übernehmen Sie die Einstellungen in der Datei device.mk von emulated_storage.mk:

$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

Warnung : Nicht auf Geräten mit Android 10 oder niedriger ausführen, da die gerätespezifische Groß- und Kleinschreibungsunterstützung des Dateisystems nicht mit den dateibasierten Verschlüsselungseinstellungen auf solchen Geräten kompatibel ist. Auf solchen Geräten muss SDCardFS weiterhin verwendet werden.

Gründe für die Einstellung von SDCardFS

Es gibt verschiedene Gründe, SDCardFS einzustellen.

Stabilität

SDCardFS leidet unter mehreren Race-Bedingungen in Bezug auf die Groß- und Kleinschreibung sowie unter einigen Problemen bei wenig Arbeitsspeicher. Groß- und Kleinschreibungsinsensitive Suchanfragen können in großen Verzeichnissen ziemlich langsam sein, da die Suchanfragen das untergeordnete Verzeichnis durchsuchen müssen, um alternative Schreibweisen zu finden. Auch der gleichzeitige Zugriff auf das obere und das untere Dateisystem kann zu Problemen führen.

Upstream-Parität

SDCardFS erfordert zusätzliche Patches für das VFS, um die Änderung von Optionen bei Bindungs-Mounts zu unterstützen. Diese Patches erfordern zusätzlichen Aufwand, um Änderungen an diesen Bereichen zu akzeptieren. Die Funktionen von SDCardFS können von vorgelagerten Komponenten repliziert werden, sodass dieser Nachteil nicht mehr besteht.

Funktionsübereinstimmung mit der API

In der vorherigen Android-Version wurde der Zugriff auf bestimmte Arten von Metadaten durch den Speicherbereich eingeschränkt. Diese Speicherfunktionen werden vom direkten Speicherzugriff über SDCardFS nicht unterstützt.