Si vous avez déjà essayé de gérer des fichiers sur un appareil Android, vous avez probablement remarqué que les choses fonctionnent différemment selon la version d'Android que vous utilisez. À partir d'Android 10, Google a introduit un changement fondamental dans la façon dont les applications interagissent avec le système de fichiers. Ce changement, connu sous le nom de Stockage limité, a redéfini les règles de lecture et d'écriture de fichiers sur le stockage partagé. Pour les utilisateurs qui chargent des applications, gèrent des fichiers OBB ou travaillent avec des gestionnaires de fichiers, il est essentiel de comprendre le stockage étendu.
Dans cet article, nous explorerons ce qu'est le stockage limité, pourquoi Google l'a mis en œuvre, comment il affecte les utilisateurs et les développeurs quotidiens, et ce que cela signifie pour quiconque installe des fichiers APK ou XAPK en dehors du Play Store.
Le problème avec l'ancien modèle de stockage
Avant Android 10, toute application demandant l'autorisation READ_EXTERNAL_STORAGE ou WRITE_EXTERNAL_STORAGE pouvait accéder à pratiquement n'importe quel fichier sur le stockage partagé de l'appareil. Cela incluait des photos, des documents, des téléchargements et même des fichiers créés par d'autres applications. Même si cela rendait la gestion des fichiers plus pratique, cela créait de sérieux problèmes de confidentialité et de sécurité.
Considérez une simple application de lampe de poche. Sous l'ancien modèle, si vous lui accordiez une autorisation de stockage, il pouvait lire silencieusement vos photos, numériser vos documents téléchargés ou même modifier des fichiers appartenant à d'autres applications. Il n’y avait pas de contrôle granulaire. Soit vous avez donné à une application un accès complet à l’intégralité de votre stockage, soit vous l’avez complètement refusé.
Ce large accès a conduit à des problèmes concrets. Certaines applications récoltaient les données des utilisateurs en analysant le stockage à la recherche de fichiers sensibles. D’autres ont laissé derrière eux des fichiers orphelins qui encombraient l’appareil longtemps après la désinstallation de l’application. Google avait besoin d'une solution qui équilibrait la convivialité et la confidentialité, et le stockage limité était leur réponse.
Ce que fait réellement le stockage limité
Le stockage étendu modifie fondamentalement la relation entre les applications et le système de fichiers. Dans ce modèle, chaque application dispose de son propre bac à sable privé sur un stockage externe, généralement situé sur /Android/data/[package.name]/. Les applications peuvent lire et écrire librement dans leur propre bac à sable sans avoir besoin d'aucune autorisation.
Cependant, accéder aux fichiers en dehors de ce sandbox nécessite de passer par des API contrôlées. Voici comment fonctionne le nouveau modèle :
Stockage spécifique à l'application
Chaque application dispose d'un répertoire dédié auquel elle seule peut accéder. Lorsque l'application est désinstallée, ce répertoire est automatiquement nettoyé. Aucune autre application ne peut lire ou écrire à cet emplacement sans accès root. Cela élimine le problème des fichiers orphelins et empêche la surveillance des données entre applications.
Collections multimédias
Pour les médias partagés tels que les photos, les vidéos et les fichiers audio, Android fournit l'API MediaStore. Les applications peuvent contribuer aux médias aux collections partagées et lire les médias créés par d'autres applications, mais uniquement via cette interface structurée. Une application peut voir ses propres médias sans aucune autorisation, mais l'accès aux médias d'autres applications nécessite les autorisations READ_MEDIA_IMAGES, READ_MEDIA_VIDEO ou READ_MEDIA_AUDIO introduites dans Android 13.
Cadre d'accès au stockage
Pour les documents et autres fichiers non multimédias, les applications doivent utiliser Storage Access Framework (SAF). Cela présente un sélecteur de fichiers système à l'utilisateur, qui choisit explicitement les fichiers ou répertoires auxquels l'application peut accéder. L'application n'obtient jamais un accès global à l'ensemble du système de fichiers.
L'autorisation MANAGE_EXTERNAL_STORAGE
Pour les applications qui nécessitent réellement un accès étendu aux fichiers, telles que les gestionnaires de fichiers, les outils de sauvegarde et les logiciels antivirus, Android fournit l'autorisation MANAGE_EXTERNAL_STORAGE. Cependant, cette autorisation nécessite une approbation spéciale de Google pour les applications distribuées via le Play Store, et les utilisateurs doivent l'accorder manuellement via les paramètres système plutôt qu'une simple boîte de dialogue.
La chronologie du déploiement
Google n'a pas imposé le stockage limité du jour au lendemain. La transition s'est faite progressivement :
- Le stockage limité Android 10 (API 29) : a été introduit, mais les applications pouvaient se désinscrire en utilisant requestLegacyExternalStorage="true" dans leur manifeste. Cela a donné aux développeurs le temps de s’adapter.
- Android 11 (API 30) : L'indicateur hérité a été ignoré pour les applications ciblant l'API 30 ou supérieure. Le stockage limité est devenu obligatoire pour les applications nouvelles et mises à jour sur le Play Store.
- Android 12 et versions ultérieures : D'autres améliorations ont été apportées, notamment des autorisations multimédias granulaires et des performances SAF améliorées.
- Android 13 (API 33) : L'autorisation large READ_EXTERNAL_STORAGE a été abandonnée au profit d'autorisations multimédias spécifiques.
- Android 14 (API 34) : L'accès partiel aux photos et aux vidéos a été introduit, permettant aux utilisateurs d'accorder l'accès à des fichiers spécifiques plutôt qu'à des bibliothèques multimédias entières.
Comment le stockage limité affecte le chargement latéral
Pour les utilisateurs qui installent des applications en dehors du Play Store, le stockage limité présente des défis pratiques qui méritent d'être compris.
Téléchargement et accès aux fichiers APK
Lorsque vous téléchargez un fichier APK via un navigateur, il atterrit généralement dans le dossier Téléchargements. Dans le cadre du stockage limité, l'application de navigateur est propriétaire de ce fichier. Si vous souhaitez l'installer à l'aide d'une autre application, telle qu'un gestionnaire de fichiers, ce gestionnaire de fichiers a besoin d'un accès approprié. La plupart des gestionnaires de fichiers modernes gèrent cela correctement via SAF, mais les plus anciens peuvent avoir des difficultés.
Le programme d'installation du package système peut toujours accéder aux fichiers que vous sélectionnez explicitement via le sélecteur de fichiers, de sorte que le flux de base de téléchargement et d'installation d'un APK fonctionne toujours. Cependant, les flux de travail d'installation automatisés qui reposaient sur l'accès direct au chemin de fichier peuvent être interrompus.
Fichiers OBB et données de jeu
C’est là que le stockage limité crée le plus de frictions pour les chargeurs latéraux. De nombreux grands jeux utilisent des fichiers OBB (Opaque Binary Blob) stockés dans /Android/obb/[package.name]/. Sous l'ancien modèle, vous pouviez simplement copier les fichiers OBB dans le bon répertoire à l'aide de n'importe quel gestionnaire de fichiers.
Avec le stockage limité, le répertoire /Android/obb/ est restreint. Sur Android 11 et versions ultérieures, les applications classiques ne peuvent pas écrire dans le répertoire OBB d'une autre application. Cela signifie que si vous téléchargez un fichier XAPK contenant des données OBB, le programme d'installation nécessite un traitement spécial pour placer correctement ces fichiers.
Des outils tels que notre Extracteur OBB peuvent vous aider à extraire des fichiers OBB des packages XAPK, mais les placer dans le répertoire approprié sur les versions Android plus récentes peut nécessiter l'utilisation d'un gestionnaire de fichiers avec l'autorisation MANAGE_EXTERNAL_STORAGE ou l'utilisation de commandes ADB à partir d'un ordinateur.
Considérations sur l'installation de XAPK
Les fichiers XAPK regroupent un APK avec des données OBB et divisent parfois les configurations APK. Leur installation sur des appareils exécutant Android 11 ou une version ultérieure nécessite un programme d'installation qui comprend les restrictions de stockage étendues. Le programme d'installation doit soit détenir l'autorisation MANAGE_EXTERNAL_STORAGE, soit utiliser les API appropriées pour placer les fichiers OBB au bon emplacement.
C'est l'une des raisons pour lesquelles la conversion des fichiers XAPK au format APK standard peut être utile. Un APK autonome ne nécessite pas de placement de fichier OBB, ce qui simplifie le processus d'installation sur les versions Android les plus récentes. Vous pouvez utiliser notre Convertisseur XAPK en APK pour extraire l'APK de base d'un package XAPK.
Ce que les développeurs doivent savoir
Si vous développez des applications Android, le stockage étendu nécessite de repenser la façon dont vous gérez les fichiers :
- Utiliser des répertoires spécifiques à l'application pour tous les fichiers dont seule votre application a besoin. Ceux-ci ne nécessitent aucune autorisation et sont automatiquement nettoyés lors de la désinstallation.
- Utiliser MediaStore pour les photos, vidéos et fichiers audio qui doivent être visibles par d'autres applications et survivre à la désinstallation.
- Utiliser SAF lorsque votre application doit fonctionner avec des documents ou des répertoires sélectionnés par l'utilisateur.
- Évitez les chemins de fichiers codés en dur. Les chemins comme /sdcard/MyApp/ ne sont plus fiables. Utilisez plutôt Context.getExternalFilesDir().
- Le comportement du Testez sur plusieurs niveaux d'API. diffère considérablement entre Android 10, 11, 13 et 14.
Stratégies migratoires
Si votre application stockait auparavant des fichiers dans un stockage partagé, vous avez besoin d'un plan de migration. L'approche recommandée consiste à copier les fichiers existants vers le stockage spécifique à l'application lors du premier lancement après la mise à jour, puis à supprimer les anciennes copies. Utilisez Environment.getExternalStorageDirectory() avec l'indicateur hérité pendant la période de transition pour lire les anciens fichiers, puis déplacez-les vers le nouvel emplacement.
Idées fausses courantes
"Le stockage limité signifie que les applications ne peuvent accéder à aucun fichier"
C'est faux. Les applications peuvent toujours accéder librement à leurs propres fichiers, contribuer aux collections multimédias partagées et demander l'accès à des fichiers spécifiques via le sélecteur de système. Ce qui a changé, c'est que les applications ne peuvent plus parcourir silencieusement l'intégralité du système de fichiers.
"Les gestionnaires de fichiers ne fonctionnent plus sur les nouvelles versions d'Android"
Les gestionnaires de fichiers qui demandent MANAGE_EXTERNAL_STORAGE fonctionnent toujours. L'utilisateur doit simplement accorder cette autorisation spéciale via les paramètres. Les gestionnaires de fichiers les plus populaires se sont déjà adaptés à cette exigence.
"Le stockage limité affecte uniquement la carte SD"
Le stockage limité s’applique à tout le stockage partagé, y compris le stockage partagé interne. Le terme « stockage externe » dans Android fait référence au stockage partagé accessible à plusieurs applications, pas nécessairement à une carte SD physique.
Conseils pratiques pour les utilisateurs
Si vous chargez régulièrement des applications ou gérez des fichiers sur votre appareil Android, voici quelques recommandations pratiques :
- Utilisez un gestionnaire de fichiers moderne qui prend en charge MANAGE_EXTERNAL_STORAGE. Des applications comme Solid Explorer, MiXplorer et Total Commander se sont bien adaptées au stockage limité.
- Accordez les autorisations avec soin. Lorsqu'un gestionnaire de fichiers demande « Accès à tous les fichiers », comprenez qu'il s'agit de l'autorisation MANAGE_EXTERNAL_STORAGE et qu'elle est nécessaire pour bénéficier de toutes les fonctionnalités.
- Utilisez ADB pour les opérations de fichiers tenaces. Si vous ne pouvez pas placer de fichiers OBB via un gestionnaire de fichiers, connecter votre appareil à un ordinateur et utiliser adb push contourne entièrement les restrictions de stockage étendues.
- Convertissez des packages complexes en formats plus simples. Si un fichier XAPK vous pose problème sur un appareil plus récent, extraire uniquement le composant APK peut être la solution la plus simple.
- Gardez vos applications d'installation à jour. Les anciennes versions des installateurs XAPK peuvent ne pas gérer correctement le stockage étendu.
L'avenir du stockage Android
Google continue d'affiner le modèle de stockage à chaque version d'Android. Android 14 a introduit un accès partiel aux médias, permettant aux utilisateurs de partager des photos spécifiques avec une application plutôt qu'avec l'intégralité de leur bibliothèque. Android 15 devrait apporter de nouvelles améliorations aux performances et à la convivialité du Storage Access Framework.
La tendance est claire : Android évolue vers un modèle dans lequel les utilisateurs ont un contrôle précis sur ce que chaque application peut voir et modifier. Bien que cela crée des frictions pour les utilisateurs expérimentés et les utilisateurs latéraux, cela améliore considérablement la confidentialité et la sécurité pour la base d'utilisateurs plus large.
Travailler avec un stockage limité sans casser les données de l'application
Le stockage limité représente l'un des changements les plus importants apportés à l'architecture d'Android ces dernières années. En limitant les applications à leurs propres bacs à sable et en exigeant le consentement explicite de l'utilisateur pour un accès plus large, Google a considérablement amélioré la politique de confidentialité de la plateforme. Pour les utilisateurs qui chargent des applications et gèrent des fichiers manuellement, comprendre ces restrictions vous aide à contourner les points de friction occasionnels. Et pour les développeurs, l’adaptation au stockage limité n’est pas facultative mais plutôt une exigence fondamentale pour le développement Android moderne.
L'installation d'APK, le placement de fichiers OBB et la gestion quotidienne du stockage s'effectuent tous dans le même système : le stockage limité. Une fois que vous avez compris comment cela fonctionne, c'est vous qui contrôlez votre appareil, au lieu d'être à la merci d'applications qui pourraient abuser d'un accès étendu aux fichiers.