Einstellung von SDCardFS

SDCardFS ist auf Geräten, die mit Android 11 oder höher auf den Markt kommen und die Kernelversion 5.4 oder höher ausführen, nicht mehr verfügbar. 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 auf den Markt kommen, aber die Kernelversion 4.19 oder niedriger ausführen, können SDCardFS weiterhin verwenden. Google bietet jedoch keinen zusätzlichen Support.

Vor der Einstellung bot SDCardFS eine Möglichkeit, den Zugriff auf emulierten internen Speicher und externe SD-Karten zu steuern, sodass Apps nur auf die für sie relevanten Daten zugreifen konnten. Außerdem wurde eine Ebene für die Groß-/Kleinschreibung sowie eine zusätzliche Speicherplatzüberwachung eingeführt.

Ersatzfunktionen für SDCardFS

Der Ersatz für SDCardFS verwendet mehrere Dateisystemfunktionen des Linux-Kernels, um ähnliche Ergebnisse zu erzielen. Die Groß-/Kleinschreibung wird direkt vom Dateisystem verarbeitet. Dadurch sind die Suchzeiten in Ordnern, in denen die Groß-/Kleinschreibung beachtet wird, und in Ordnern, in denen sie nicht beachtet wird, nahezu identisch. Die Verlangsamung bei großen Ordnern in SDCardFS wird dadurch vermieden. Die Kontingentverfolgung, die SDCardFS durchgeführt hat, um schnell Speicherdaten für Einstellungen zu erfassen, wird jetzt über Projektkontingente aus dem Nutzerbereich konfiguriert. In einigen leistungsrelevanten Kontexten werden Verzeichnisse direkt eingebunden. Eine neue FUSE-Implementierung bietet eingeschränkten Speicher für den direkten Dateisystemzugriff, hauptsächlich zur Unterstützung der Entfernung von Standortinformationen.

Funktion zum Ersetzen der SD-Karte konfigurieren

Wenn Sie Projektkontingente und Case Folding für emulierten Speicher ohne SDCardFS auf einem Gerät aktivieren möchten, das mit Android 11 oder höher eingeführt wurde, übernehmen Sie emulated_storage.mk in der Datei device.mk:

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

Warnung : Führen Sie diesen Schritt nicht auf Geräten aus, die mit Android 10 oder niedriger eingeführt wurden, da die native Groß-/Kleinschreibung des Dateisystems nicht mit den auf solchen Geräten verwendeten dateibasierten Verschlüsselungseinstellungen kompatibel ist. Auf solchen Geräten muss SDCardFS weiterhin verwendet werden.

Gründe für die Einstellung von SDCardFS

Es gibt verschiedene Gründe für die Einstellung von SDCardFS.

Stabilität

SDCardFS weist mehrere Race-Bedingungen in Bezug auf die Groß-/Kleinschreibung sowie einige Probleme bei wenig Arbeitsspeicher auf. Bei großen Verzeichnissen können case-insensitive Suchvorgänge recht langsam sein, da bei der Suche das untergeordnete Verzeichnis durchlaufen werden muss, um alternative Schreibweisen zu finden. Der gleichzeitige Zugriff auf das obere und untere Dateisystem kann ebenfalls zu Problemen führen.

Upstream-Parität

SDCardFS erfordert zusätzliche Patches für das VFS, um das Ändern von Optionen für Bind-Mounts zu unterstützen. Diese Patches verursachen zusätzlichen Aufwand, um Upstream-Änderungen in diesen Bereichen zu akzeptieren. Die Funktionen von SDCardFS können durch Upstream-Komponenten repliziert werden, wodurch dieser Schwachpunkt beseitigt wird.

Funktionsparität mit der API

In der vorherigen Android-Version wurde der Zugriff auf bestimmte Arten von Metadaten durch den eingeschränkten Speicher begrenzt. Der direkte Speicherzugriff über SDCardFS unterstützt diese Funktionen für den eingeschränkten Speicher nicht.