Abandon de SDCardFS

SDCardFS est obsolète sur les appareils lancés avec Android 11 ou version ultérieure et exécutant le noyau version 5.4 ou ultérieure. Sur ces appareils, les tests VTS n'autorisent pas les systèmes de fichiers installés listés en tant que SDCardFS. Les appareils lancés avec Android 11 ou version ultérieure, mais qui exécutent la version 4.19 ou antérieure du noyau, peuvent continuer à utiliser SDCardFS, mais Google ne fournit pas d'assistance supplémentaire.

Avant son abandon, SDCardFS permettait de contrôler l'accès au stockage interne émulé et aux cartes SD externes, ce qui permettait aux applications d'accéder uniquement aux données qui les concernaient. Il fournissait également une couche d'insensibilité à la casse, ainsi qu'un suivi de stockage supplémentaire.

Fonctionnalité de remplacement de SDCardFS

Le remplacement de SDCardFS utilise plusieurs fonctionnalités du système de fichiers du noyau Linux pour obtenir des résultats similaires. L'insensibilité à la casse est gérée directement par le système de fichiers. Les temps de recherche sont donc presque identiques dans les dossiers sensibles à la casse et dans ceux qui ne le sont pas, ce qui élimine le ralentissement des grands dossiers de SDCardFS. Le suivi des quotas effectué par SDCardFS pour collecter rapidement des données de stockage pour les paramètres est désormais configuré à partir de l'espace utilisateur à l'aide de quotas de projet. Dans certains contextes sensibles aux performances, les répertoires sont montés en place. Une nouvelle implémentation FUSE fournit un espace de stockage cloisonné pour l'accès direct au système de fichiers, principalement pour prendre en charge la suppression des informations de localisation.

Configurer la fonctionnalité de remplacement de la carte SD

Pour activer les quotas de projet et la conversion en minuscules pour le stockage émulé sans SDCardFS sur un appareil lancé avec Android 11 ou version ultérieure, héritez de emulated_storage.mk dans le fichier device.mk :

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

Avertissement  : Ne procédez pas ainsi sur les appareils lancés avec Android 10 ou version antérieure, car l'insensibilité à la casse native du système de fichiers est incompatible avec les paramètres de chiffrement basés sur les fichiers utilisés sur ces appareils. Il est nécessaire de continuer à utiliser SDCardFS sur ces appareils.

Raisons de l'abandon de SDCardFS

Plusieurs raisons justifient l'abandon de SDCardFS.

Stabilité

SDCardFS souffre de plusieurs conditions de concurrence concernant la sensibilité à la casse, ainsi que de certains problèmes concernant les situations de mémoire insuffisante. Les recherches insensibles à la casse peuvent être assez lentes dans les grands répertoires, car elles doivent parcourir le répertoire inférieur pour trouver d'autres cas. L'accès simultané aux systèmes de fichiers supérieur et inférieur peut également entraîner des problèmes.

Parité en amont

SDCardFS nécessite des correctifs supplémentaires pour le VFS afin de permettre la modification des options sur les montages de liaison. Ces correctifs entraînent un travail supplémentaire pour accepter les modifications en amont dans ces zones. Les fonctionnalités de SDCardFS peuvent être répliquées par des composants en amont, ce qui élimine ce point sensible.

Parité des fonctionnalités avec l'API

Dans la version précédente d'Android, le stockage étendu limitait l'accès à certains types de métadonnées. L'accès direct au stockage via SDCardFS n'est pas compatible avec ces fonctionnalités de stockage étendu.