Deprecazione SDCardFS

Il supporto SDCardFS è deprecato in Android 11 per le versioni del kernel 5.4 e successive. Il test VTS non consente i file system montati elencati come SDCardFS per quelle versioni del kernel. Le versioni precedenti del kernel possono continuare a utilizzare SDCardFS per Android 11, tuttavia Google non fornisce supporto aggiuntivo.

Nelle versioni precedenti di Android, SDCardFS forniva un modo per controllare l'accesso alla memoria interna emulata e alle schede SD esterne, consentendo alle app di accedere solo ai dati rilevanti. Inoltre, ha fornito un livello di insensibilità alle maiuscole, oltre a un tracciamento aggiuntivo dello spazio di archiviazione.

Funzionalità di sostituzione SDCardFS

In Android 11, la distinzione tra maiuscole e minuscole è gestita direttamente dal filesystem. Ciò si traduce in tempi di ricerca quasi identici nelle cartelle con distinzione tra maiuscole e minuscole, rimuovendo il rallentamento della cartella di grandi dimensioni da SDCardFS. Il monitoraggio delle quote che SDCardFS stava eseguendo per raccogliere rapidamente i dati di archiviazione per le impostazioni è ora configurato dallo spazio utente utilizzando le quote del progetto. In alcuni contesti sensibili alle prestazioni, le directory sono montate sul posto. Una nuova implementazione di FUSE fornisce storage delimitato per l'accesso diretto al filesystem, principalmente per supportare la redazione delle informazioni sulla posizione.

Configurazione della funzionalità di sostituzione della SDCard

Per abilitare le quote di progetto e caso pieghevole per la conservazione emulato senza SDCardFS, eredita dal emulated_storage.mk nel device.mk di file:

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

La crittografia con supporto per casefolding richiede l'utilizzo della policy v2. A tal fine, specificare :v2 entro le bandiere Vold nel fstab. Per esempio:

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

Perché deprecare SDCardFS?

Esistono vari motivi per deprecare SDCardFS.

Stabilità

SDCardFS soffre di diverse race condition riguardanti la distinzione tra maiuscole e minuscole, nonché alcuni problemi relativi a circostanze di scarsa memoria. Le ricerche senza distinzione tra maiuscole e minuscole possono essere piuttosto lente in directory di grandi dimensioni perché le ricerche devono spostarsi nella directory inferiore per trovare casi alternativi. Anche l'accesso ai file system superiore e inferiore può causare problemi.

Parità a monte

SDCardFS richiede patch aggiuntive al VFS per supportare la modifica delle opzioni sui montaggi di bind. Queste patch comportano un lavoro aggiuntivo per accettare modifiche a monte in queste aree. Le funzionalità di SDCardFS possono essere replicate dai componenti upstream, rimuovendo questo punto dolente.

Parità di funzionalità con API

Nella versione precedente di Android, l'archiviazione con ambito limitava l'accesso a particolari tipi di metadati. L'accesso diretto all'archiviazione tramite SDCardFS non supporta queste funzionalità di archiviazione con ambito.