termux-setup-storage
uniquement les subventions Android.permission.WRITE_EXTERNAL_STORAGE qui permet à l'application d'accéder à la carte SD interne. /sdcard
.
L'init d'Android crée des rootfs /
avec des autorisations 0:0
(uid:gid) et 0755
(mode). Ainsi, le répertoire racine devrait être accessible à tout utilisateur non racine.
Cependant SELinux joue son rôle en limitant les accès non autorisés à rootfs. Vous pouvez voir ces refus de politique par :
dmesg | grep 'avc: denied'
* Très probablement, SELinux refusera aussi cette commande si elle est exécutée à partir d'une application non-Root.
Pour voir toutes les règles SEPolicy, sesearch
outil de setools-Android peut être utilisé.
Pour définir SELinux permissif :
echo 0 >/sys/fs/selinux/enforce
# or
setenforce 0
Ou ajouter une exception à la politique SELinux :
supolicy --live 'allow untrusted_app rootfs dir { read open }'
* supolicy
est fourni par les solutions d'enracinement, par exemple Magisk, SuperSu
Cette politique autorise la lecture de rootfs mais vous risquez quand même d'obtenir des erreurs car la lecture des attributs des fichiers/répertoires sous rootfs n'est pas autorisée par la politique.
En outre, les deux solutions nécessitent des privilèges de racine et sont non persistantes, c'est-à-dire qu'elles doivent être définies après le redémarrage.
Ainsi, si vous exécutez une version de production non rootée d'Android (avec application de SELinux), vous ne serez pas en mesure de lire les fichiers rootfs. /
.