Desactivación de SDCardFS

SDCardFS está obsoleto en dispositivos que se inician con Android 11 o superior y ejecutan la versión de kernel 5.4 o superior. En dichos dispositivos, las pruebas de VTS no permiten sistemas de archivos montados enumerados como SDCardFS. Los dispositivos que se inician con Android 11 o superior pero ejecutan la versión de kernel 4.19 o inferior pueden seguir usando SDCardFS, pero Google no brinda asistencia adicional.

Antes de su desaprobación, SDCardFS proporcionaba una forma de controlar el acceso al almacenamiento interno emulado y a las tarjetas SD externas, lo que permitía que las aplicaciones accedieran solo a los datos relevantes para ellas. Además, proporcionó una capa de insensibilidad a mayúsculas y minúsculas, así como un seguimiento de almacenamiento adicional.

Funcionalidad de reemplazo de SDCardFS

El reemplazo de SDCardFS utiliza varias características del sistema de archivos del kernel de Linux para lograr resultados similares. La insensibilidad a mayúsculas y minúsculas es manejada directamente por el sistema de archivos; esto da como resultado tiempos de búsqueda casi idénticos en carpetas que distinguen entre mayúsculas y minúsculas, eliminando la ralentización de carpetas grandes de SDCardFS. El seguimiento de cuotas que SDCardFS estaba haciendo para recopilar rápidamente datos de almacenamiento para la configuración ahora se configura desde el espacio de usuario utilizando cuotas de proyecto. En algunos contextos sensibles al rendimiento, los directorios se montan en enlace en su lugar. Una nueva implementación de FUSE proporciona almacenamiento de ámbito para el acceso directo al sistema de archivos, principalmente para respaldar la redacción de la información de ubicación.

Configuración de la funcionalidad de reemplazo de la tarjeta SD

Para habilitar las cuotas de proyectos y el plegado de casos para el almacenamiento emulated_storage.mk sin SDCardFS, herede de emulated_storage.mk en el archivo device.mk :

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

Haga esto solo para dispositivos que se inicien con Android 11 o superior.

¿Por qué desaprobar SDCardFS?

Hay varias razones para desaprobar SDCardFS.

Estabilidad

SDCardFS sufre de varias condiciones de carrera relacionadas con la distinción entre mayúsculas y minúsculas, así como algunos problemas relacionados con circunstancias de poca memoria. Las búsquedas que no distinguen entre mayúsculas y minúsculas pueden ser bastante lentas en directorios grandes porque las búsquedas tienen que recorrer el directorio inferior para encontrar casos alternativos. Acceder a los sistemas de archivos superior e inferior al mismo tiempo también puede generar problemas.

paridad aguas arriba

SDCardFS requiere parches adicionales para el VFS para admitir el cambio de opciones en los montajes de enlace. Estos parches generan un trabajo adicional para aceptar cambios ascendentes en estas áreas. Las funciones de SDCardFS se pueden replicar mediante componentes ascendentes, lo que elimina este problema.

Paridad de características con API

En la versión anterior de Android, el almacenamiento limitado limitaba el acceso a determinados tipos de metadatos. El acceso directo al almacenamiento a través de SDCardFS no es compatible con estas funciones de almacenamiento con ámbito.