Accorder manuellement une autorisation
Pour les appareils enracinés, il existe un moyen d'injecter une permission spécifique dans le fichier /data/system/packages.xml
qui détaille toutes les applications installées, ainsi que leurs signatures et autorisations.
L'autorisation mentionnée ci-dessus est <item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
qui n'est généralement accordée qu'aux applications système. Cette ligne doit être ajoutée sous l'onglet <perms>
nœud du nom du paquet que l'on souhaite accorder un accès permanent au stockage externe, qu'il s'agisse d'une carte SD ou d'un lecteur connecté via OTG.
Pour qu'Android reconnaisse la nouvelle permission, un redémarrage est nécessaire .
Révocation de l'autorisation
Pour révoquer l'autorisation susmentionnée, il suffit de supprimer l'option <item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
ligne qu'ils ont eux-mêmes ajoutée.
Alternatives automatisées
Si l'on ne veut pas modifier manuellement packages.xml
mais dispose de Xposed, il est possible d'obtenir un résultat similaire en utilisant l'option XInternalSD
module. Après l'avoir activé, entrez dans ses paramètres et désactivez toutes les cases à cocher sauf celle qui se trouve à côté de Full access to external SD card
.
Celui-ci, en fonction de la version d'Android utilisée, est capable d'accorder un accès en lecture-écriture aux supports externes. Il est testé et fonctionne jusqu'à la version 7.1.2 de Nougat. Cette méthode n'est pas granulaire, donc n'importe quelle application pourra accéder à n'importe quel support externe.
Je ne suis affilié ni à XInternalSD, ni à son développeur.