Une recherche rapide révèle qu'il existe des questions similaires sans réponse ( este , este y este ). Permettez-moi d'essayer de le démystifier, en commençant par un bref historique.
QU'EST-CE QUE .android_secure
RÉPERTOIRE ?
Afin de résoudre le problème du manque d'espace dans le stockage interne, app2sd
( Déplacer vers la carte SD ) était la fonction native d'Android jusqu'à Lollipop. Avec cette méthode .apk
(ou des fichiers entiers) /data/app/<pkg>/
) sont déplacés sous forme chiffrée .asec
pour .android_secure
sur une carte SD externe ou interne sdcard
(montée à /mnt/sdcard/
o /mnt/media_rw/sdcard[N]/
). À chaque démarrage .android_secure
est monté sur /mnt/secure/asec/
et le ( ext4
) conteneurs de système de fichiers ( .asec
) sont décryptés (en utilisant dm-crypt
) et montés dans des répertoires individuels (nommés d'après les noms des paquets) dans un système de fichiers temporaire monté à l'adresse suivante /mnt/asec/
por vold
. Liens symétriques de /data/app/<pkg>/
et éventuellement /data/data/<pkg>/lib/
sont orientés vers /mnt/asec/<pkg>/
y /mnt/asec/<pkg>/lib/
.
POURQUOI L'ACCÈS .android_secure
EST RESTREINT ?
Dès les premiers jours d'Android, l'accès à android_secure
(qui est devenu plus tard .android_secure
) a été restreint. Le site commettre États :
_Afin de protéger le /android_secure
sur les supports amovibles VFAT, nous cachons le répertoire avec un fichier en lecture seule et de taille nulle. tmpfs
monté sur le dessus._
Plus tard, dans Android 4.4, lorsque FUSE a commencé à être utilisé pour émulation de cartes SD à partir du point de montage original ( /mnt/media_rw/sdcard1
) vers le chemin accessible à l'utilisateur ( /storage/sdcard1/
), la taille zéro tmpfs
fonctionnalité ( Ignorer les tentatives d'accès à des fichiers sensibles sur le plan de la sécurité ) a été déplacé vers sdcard
démon qui a été utilisé pour monter FUSE. Dans Android 6, le app2sd
méthode était abandonné en faveur de l'Adoptable Storage (l'UUID du système de fichiers est également inclus dans les points de montage).
Dans Android 7 sdcardfs
a été ajouté parallèlement à FUSE et à l'initiative de la "Toujours bloquer les fichiers sensibles à la sécurité" La fonctionnalité était ajouté à sdcardfs
dans le noyau. Dans Android 9, FUSE a été complètement supprimé (de sdcard
) mais le sdcardfs
bloque toujours la création/suppression de .android_secure
répertoires dans la racine du système de fichiers émulé. Cependant, comme vous l'avez remarqué, il est possible d'accéder au chemin par le biais du point de montage original non émulé, à savoir /mnt/media_rw/[UUID]/.android_secure
.
Pour plus de détails sur l'émulation des systèmes de fichiers, voir Qu'est-ce que /storage/emulated/0/ ?
POURQUOI Root ne peut pas accéder à un répertoire ?
Comment est-il possible de refuser à Root la possibilité de répertorier une entrée de répertoire ?
root
n'est rien d'autre que le cher utilisateur du noyau. Le noyau n'empêche pas UID 0 de faire du mal ou du bien. Mais il y a des choses qui sont plus chères au noyau que Root. Cela inclut SELinux 1 Linux capacités 2 et évidemment les restrictions du système de fichiers comme nous le voyons avec FUSE 3 y sdcardfs
4 . Et comme Root ne peut pas supprimer un fichier avec immutable
attribut 5 . Il est possible de supprimer ces restrictions ou d'en ajouter d'autres en modifiant les sources du noyau.
1 Voir explication y exemple .
2 Une démonstration simple :
~# setpriv --bounding-set -sys_admin -- sh -c 'id; mount -o ro,remount /'
uid=0(root) gid=0(root) groups=0(root)
mount: permission denied (are you root?)
3 FUSE documentation :
"Aucun autre utilisateur ( y compris Root ) peut accéder au contenu du système de fichiers monté "
4 L'UID 0 est vérifié après filename ( .android_secure
) est vérifié.
5 Pourquoi je ne peux pas supprimer ce fichier en tant que Root ?
RELATION :
1 votes
Cela répond-il à votre question ? Que contient le répertoire /mnt/asec ?
0 votes
@alecxs Je ne crois pas que cela réponde à mes questions.
0 votes
Vous ne pouvez pas changer les permissions
------
parce que la façon dont il est monté askubuntu.com/questions/429848