Ritiro di SDCardFS

SDCardFS è deprecato sui dispositivi lanciati con Android 11 o versioni successive e con kernel versione 5.4 o successive. Su questi dispositivi, i test VTS non consentono file system montati elencati come SDCardFS. I dispositivi che vengono lanciati con Android 11 o versioni successive, ma che eseguono la versione del kernel 4.19 o precedenti, possono continuare a utilizzare SDCardFS, ma Google non fornisce ulteriore assistenza.

Prima del ritiro, 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 pertinenti. Inoltre, forniva un livello di insensibilità alle maiuscole e minuscole, nonché un monitoraggio aggiuntivo dello spazio di archiviazione.

Funzionalità di sostituzione SDCardFS

La sostituzione di SDCardFS utilizza diverse funzionalità del file system del kernel Linux per ottenere risultati simili. La gestione dell'insensibilità alle maiuscole e minuscole viene gestita direttamente dal filesystem. Di conseguenza, i tempi di ricerca sono quasi identici nelle cartelle sensibili alle maiuscole e minuscole e in quelle insensibili alle maiuscole e minuscole, eliminando il rallentamento delle cartelle di grandi dimensioni da SDCardFS. Il monitoraggio della quota eseguito da SDCardFS per raccogliere rapidamente i dati di archiviazione per le impostazioni ora viene configurato dallo spazio utente utilizzando le quote di progetto. In alcuni contesti sensibili alle prestazioni, le directory vengono montate in bind sul posto. Una nuova implementazione di FUSE fornisce l'archiviazione con ambito per l'accesso diretto al file system, principalmente per supportare l'oscuramento delle informazioni sulla posizione.

Configurare la funzionalità di sostituzione della scheda SD

Per attivare le quote di progetto e la conversione in maiuscolo/minuscolo per l'archiviazione emulata senza SDCardFS su un dispositivo lanciato con Android 11 o versioni successive, eredita da emulated_storage.mk nel file device.mk:

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

Avviso : non eseguire questa operazione sui dispositivi con Android 10 o versioni precedenti, poiché la distinzione tra maiuscole e minuscole nativa del file system è incompatibile con le impostazioni di crittografia basata su file utilizzate su questi dispositivi. È necessario continuare a utilizzare SDCardFS su questi dispositivi.

Motivi per ritirare SDCardFS

Esistono vari motivi per ritirare SDCardFS.

Stabilità

SDCardFS presenta diverse condizioni di competizione relative alla distinzione tra maiuscole e minuscole, nonché alcuni problemi relativi a situazioni di memoria insufficiente. Le ricerche senza distinzione tra maiuscole e minuscole possono essere piuttosto lente in directory di grandi dimensioni perché devono percorrere la directory inferiore per trovare casi alternativi. Anche l'accesso simultaneo ai file system superiore e inferiore può causare problemi.

Parità upstream

SDCardFS richiede patch aggiuntive al VFS per supportare la modifica delle opzioni sui montaggi bind. Queste patch causano lavoro aggiuntivo per accettare le modifiche upstream a queste aree. Le funzionalità di SDCardFS possono essere replicate dai componenti upstream, eliminando questo problema.

Parità delle funzionalità con l'API

Nella versione precedente di Android, lo spazio di archiviazione isolato limitava l'accesso a particolari tipi di metadati. L'accesso diretto allo spazio di archiviazione tramite SDCardFS non supporta queste funzionalità di archiviazione isolata.