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 verwenden, 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. Darüber hinaus wurde die Groß- und Kleinschreibung nicht sensibilisiert und zusätzliche Speichernachverfolgungen werden möglich.

Ersatzfunktion für SDCardFS

Als Ersatz für SDCardFS werden mehrere Linux-Kernel-Dateisystemfunktionen verwendet, um ähnliche Ergebnisse zu erzielen. Die Unterscheidung zwischen Groß- und Kleinschreibung wird direkt vom Dateisystem vorgenommen. Dadurch sind die Suchzeiten in Ordnern, bei denen die Groß- und Kleinschreibung berücksichtigt wird, nahezu identisch, wodurch die große Verlangsamung des Ordners von SDCardFS beseitigt wird. Die Kontingentsaufzeichnung, die SDCardFS durchgeführt hat, um schnell Speicherdaten für Einstellungen zu erfassen, 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 einen begrenzten Speicher für den direkten Dateisystemzugriff, hauptsächlich, um das Entfernen von Standortinformationen zu unterstützen.

Funktion zum Ersetzen der SD-Karte konfigurieren

Wenn Sie Projektkontingente und das Zusammenklappen von Fällen für emulierten Speicher ohne SDCardFS auf einem Gerät mit Android 11 oder höher aktivieren möchten, übernehmen Sie emulated_storage.mk in der Datei device.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 für die Einstellung von SDCardFS.

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 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 Upstream-Änderungen an diesen Bereichen zu akzeptieren. Die Funktionen von SDCardFS können von vorgelagerten Komponenten repliziert werden, sodass dieses Problem nicht mehr auftritt.

Funktionsparität mit API

In der vorherigen Android-Version wurde der Zugriff auf bestimmte Arten von Metadaten durch den Speicherbereich eingeschränkt. Der direkte Speicherzugriff über SDCardFS unterstützt diese eingeschränkten Speicherfunktionen nicht.