Ritiro di SDCardFS

SDCardFS è deprecato sui dispositivi lanciati con Android 11 o versioni successive e che eseguono la versione del kernel 5.4 o successive. Su questi dispositivi, i test VTS non consentono i file system montati elencati come SDCardFS. I dispositivi lanciati con Android 11 o versioni successive, ma che eseguono la versione del kernel 4.19 o precedente, 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 virtualizzata e alle schede SD esterne, consentendo alle app di accedere solo ai dati pertinenti. Inoltre, forniva un livello di insensibilità alle maiuscole, nonché un monitoraggio dello spazio di archiviazione aggiuntivo.

Funzionalità di sostituzione di SDCardFS

Il sostituto di SDCardFS utilizza diverse funzionalità del file system del kernel di Linux per ottenere risultati simili. La sensibilità alle maiuscole viene gestita direttamente dal filesystem; di conseguenza, i tempi di ricerca sono quasi identici nelle cartelle sensibili alle maiuscole e nelle cartelle insensibili alle maiuscole, eliminando il rallentamento delle cartelle di grandi dimensioni da SDCardFS. Il monitoraggio delle quote che SDCardFS eseguiva 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 vengono montate in modo vincolato. Una nuova implementazione di FUSE fornisce spazio di archiviazione basato su ambito per l'accesso diretto al file system, principalmente per supportare l'oscuramento dei dati sulla posizione.

Configurare la funzionalità di sostituzione della scheda SD

Per attivare le quote del progetto e la combinazione delle maiuscole per lo spazio di archiviazione virtuale 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 avviati con Android 10 o versioni precedenti, poiché la sensibilità alle maiuscole e alle minuscole nativa del file system non è compatibile con le impostazioni di crittografia basate su file utilizzate su questi dispositivi. È necessario continuare a utilizzare SDCardFS su questi dispositivi.

Motivi per ritirare SDCardFS

Esistono vari motivi per cui SDCardFS è stato ritirato.

Stabilità

SDCardFS presenta diversi problemi di race condition relativi alla sensibilità alle maiuscole, nonché alcuni problemi relativi a circostanze di scarsa memoria. Le ricerche insensibili alle maiuscole possono essere piuttosto lente in directory di grandi dimensioni perché devono esaminare la directory inferiore per trovare le maiuscole alternative. Anche l'accesso ai filesystem superiore e inferiore contemporaneamente può causare problemi.

Parità upstream

SDCardFS richiede patch aggiuntive al VFS per supportare la modifica delle opzioni per i mount di montaggio. Queste patch richiedono un lavoro aggiuntivo per accettare le modifiche a monte di queste aree. Le funzionalità di SDCardFS possono essere replicate dai componenti a monte, rimuovendo questo problema.

Parità di funzionalità con l'API

Nella release precedente di Android, lo spazio di archiviazione limitato consentiva l'accesso a determinati tipi di metadati. L'accesso diretto allo spazio di archiviazione tramite SDCardFS non supporta queste funzionalità di archiviazione basate su ambito.