O SDCardFS foi descontinuado em dispositivos lançados com o Android 11 ou versões mais recentes e que executam a versão 5.4 ou mais recente do kernel. Em tais dispositivos, o teste VTS não permite que sistemas de arquivos ativados sejam listados como SDCardFS. Os dispositivos lançados com o Android 11 ou versões mais recentes, mas que executam a versão 4.19 ou inferior do kernel, podem continuar usando o SDCardFS, mas o Google não oferece suporte adicional.
Antes da descontinuação, o SDCardFS oferecia uma maneira de controlar o acesso ao armazenamento interno emulado e aos cartões SD externos, permitindo que os apps acessassem apenas os dados relevantes para eles. Além disso, ele oferecia uma camada de insensibilidade a maiúsculas e minúsculas, além de algum rastreamento de armazenamento adicional.
Funcionalidade de substituição do SDCardFS
O substituto do SDCardFS usa vários recursos do sistema de arquivos do kernel do Linux para atingir resultados semelhantes. A indiferença a maiúsculas e minúsculas é processada diretamente pelo sistema de arquivos. Isso resulta em tempos de pesquisa quase idênticos em pastas sensíveis e insensíveis a maiúsculas e minúsculas, removendo a lentidão de pastas grandes do SDCardFS. O rastreamento de cota que o SDCardFS fazia para coletar rapidamente dados de armazenamento para configurações agora é configurado no espaço do usuário usando cotas de projeto. Em alguns contextos sensíveis ao desempenho, os diretórios são vinculados e montados no lugar. Uma nova implementação do FUSE oferece armazenamento com escopo para acesso direto ao sistema de arquivos, principalmente para oferecer suporte à redação de informações de local.
Configurar a funcionalidade de substituição do cartão SD
Para ativar cotas de projeto e conversão de maiúsculas e minúsculas para armazenamento emulado sem SDCardFS
em um dispositivo lançado com o Android 11 ou versões mais recentes,
herde de emulated_storage.mk
no arquivo device.mk
:
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
Aviso : não faça isso em dispositivos lançados com o Android 10 ou versões anteriores, já que a insensibilidade a maiúsculas e minúsculas nativa do sistema de arquivos é incompatível com as configurações de criptografia baseadas em arquivos usadas nesses dispositivos. É necessário continuar usando o SDCardFS em dispositivos assim.
Motivos para descontinuar o SDCardFS
Há vários motivos para descontinuar o SDCardFS.
Estabilidade
O SDCardFS sofre de várias condições de disputa relacionadas à sensibilidade a maiúsculas e minúsculas, além de alguns problemas relacionados a situações de pouca memória. As pesquisas sem diferenciação entre maiúsculas e minúsculas podem ser lentas em diretórios grandes porque precisam percorrer o diretório inferior para encontrar alternativas. Acessar os sistemas de arquivos superior e inferior ao mesmo tempo também pode causar problemas.
Paridade upstream
O SDCardFS requer patches adicionais para o VFS para oferecer suporte à mudança de opções em montagens de vinculação. Esses patches causam trabalho extra para aceitar mudanças upstream nessas áreas. Os recursos do SDCardFS podem ser replicados por componentes upstream, removendo esse ponto problemático.
Igualdade de recursos com a API
Na versão anterior do Android, o armazenamento com escopo limitava o acesso a determinados tipos de metadados. O acesso direto ao armazenamento pelo SDCardFS não é compatível com esses recursos do armazenamento isolado.