SDCardFS veraltet

Die SDCardFS-Unterstützung ist in Android 11 für Kernel-Versionen 5.4 und höher veraltet. VTS-Tests erlauben keine gemounteten Dateisysteme, die als SDCardFS für diese Kernel-Versionen aufgeführt sind. Frühere Kernel-Versionen können weiterhin SDCardFS für Android 11 verwenden, Google bietet jedoch keine zusätzliche Unterstützung.

In früheren Android-Versionen bot SDCardFS eine Möglichkeit, den Zugriff auf emulierten internen Speicher und externe SD-Karten zu kontrollieren, sodass Apps nur auf die für sie relevanten Daten zugreifen konnten. Darüber hinaus bot es eine Ebene der Groß-/Kleinschreibung sowie einige zusätzliche Speicherverfolgung.

SDCardFS-Ersatzfunktionalität

In Android 11 wird die Groß-/Kleinschreibung direkt vom Dateisystem behandelt. Dies führt zu nahezu identischen Suchzeiten in Ordnern mit und ohne Beachtung der Groß-/Kleinschreibung, wodurch die Verlangsamung der großen Ordner von SDCardFS beseitigt wird. Die Kontingentverfolgung, die SDCardFS durchführte, um schnell Speicherdaten für Einstellungen zu sammeln, wird jetzt aus dem Benutzerbereich mithilfe von Projektkontingenten konfiguriert. In einigen leistungsabhängigen Kontexten werden Verzeichnisse an Ort und Stelle gebunden eingebunden. Eine neue FUSE-Implementierung bietet bereichsbezogenen Speicher für den direkten Dateisystemzugriff, in erster Linie um die Schwärzung von Standortinformationen zu unterstützen.

Konfigurieren der SDCard-Ersatzfunktionalität

Um Projektkontingente und Fall Faltung für emulierte Speicher ohne SDCardFS, vererben zu ermöglichen emulated_storage.mk in der device.mk - Datei:

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

Die Verschlüsselung mit Casefolding-Unterstützung erfordert die Verwendung der Richtlinie v2. Um dies zu ermöglichen, geben Sie :v2 innerhalb der vold Flaggen in der fstab. Zum Beispiel:

fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized

Warum SDCardFS verwerfen?

Es gibt verschiedene Gründe, SDCardFS abzulehnen.

Stabilität

SDCardFS leidet unter mehreren Race-Conditions in Bezug auf die Groß-/Kleinschreibung sowie einigen Problemen im Zusammenhang mit niedrigem Speicher. Die Suche nach Groß-/Kleinschreibung kann in großen Verzeichnissen ziemlich langsam sein, da die Suche das untere Verzeichnis durchlaufen muss, um alternative Fälle 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 bei Bind-Mounts zu unterstützen. Diese Patches verursachen zusätzliche Arbeit, um Upstream-Änderungen in diesen Bereichen zu akzeptieren. Die Funktionen von SDCardFS können von Upstream-Komponenten repliziert werden, wodurch dieser Schwachpunkt beseitigt wird.

Funktionsparität mit API

In der vorherigen Version von Android beschränkte der bereichsbezogene Speicher den Zugriff auf bestimmte Arten von Metadaten. Der direkte Speicherzugriff über SDCardFS unterstützt diese bereichsbezogenen Speicherfunktionen nicht.