3 votes

Pourquoi les tentatives d'écriture dans /system/priv-app entraînent-elles le passage de /system en lecture seule ?

J'essaie d'écrire des fichiers dans le répertoire /system/priv-app. Je démarre en mode de récupération (TWRP) et j'exécute adb shell.

~ # mount /system
~ # mount
rootfs on / type rootfs (rw,seclabel)
...
/dev/block/mmcblkXXXX on /system type ext4 (rw,seclabel,relatime,data=ordered)

Je peux alors courir :

~ # mkdir /system/tmp
~ # touch /system/tmp/test

Cela fonctionne bien : Je n'ai aucun problème à modifier /system. (Je peux également supprimer des choses de /system/priv-app.) Mais si j'essaie ensuite de écrire dans /system/priv-app j'obtiens ce qui suit :

~ # mkdir /system/priv-app/test
mkdir: can't create directory '/system/priv-app/test': Read-only file system
~ # mount
rootfs on / type rootfs (rw,seclabel)
...
/dev/block/mmcblkXXXX on /system type ext4 (ro,seclabel,relatime,data=ordered)

Maintenant /system est soudainement monté en lecture seule ! Les permissions et la propriété sont identiques dans /system et /system/priv-app et je fonctionne en tant que Root.

~ # ls -al /
...
drwxr-xr-x   18 root     root          4096 Nov 25 07:32 system
~ # ls -al /system
...
drwxr-xr-x   59 root     root          4096 Aug  5  1972 priv-app

Dans TWRP, SELinux est réglé sur permissif :

~ # getenforce
Permissive

J'utilise Lineage OS 14.1 (Android Nougat) sur un Moto G 2015 (alias Moto G3). Il est enraciné avec l'addon officiel Lineage su. J'ai également essayé Magisk et j'obtiens le même résultat.

Je suis à court d'idées et je n'arrive pas à trouver les bons termes de recherche, parce que j'ai essayé une tonne de choses et je n'ai rien trouvé.

Comment puis-je activer l'écriture dans /system/priv-app ?

1voto

Irfan Latif Points 16863

La protection d'Android contre les codes malveillants a toujours été une priorité pour Google, les équipementiers et les fournisseurs de SOC. Même la protection en écriture /system a été mis en œuvre au niveau du noyau par certains OEM. Et par défaut, les montages Android /system en lecture seule afin d'éviter toute modification intentionnelle ou accidentelle pour AVB/dm-vérité pour fonctionner correctement. Seules les mises à jour OTA peuvent modifier la partition du système.
Cependant si dm-verity est désactivé lors de l'enracinement de l'appareil ou lors du flashage du noyau/ROM personnalisé, nous pouvons monter /system read/write pour les modifications. Mais certains programmes ont un code intégré pour vérifier si /system est monté. rw et, si c'est le cas, rétablir le statut de l'entreprise. ro . Solid Explorer États :

Si le point de montage est monté en mode r/o, il sera temporairement remonté en mode r/w. Une fois l'opération terminée (avec succès ou non), l'application monte à nouveau la partition en mode r/o.

TWRP a aussi une option mount_sys_ro_chk et par défaut il monte /system en lecture seule .
La solution consiste donc à changer le point de montage de /system à quelque chose d'autre car cela ne sera pas vérifié habituellement.

Un autre facteur qui peut forcer ro le montage d'une partition est l'option mount du noyau Linux erreurs=remount-ro . Cette option de montage est généralement par défaut sur un système de fichiers nouvellement créé :

~# tune2fs -l /dev/block/bootdevice/by-name/system | grep Error
Errors behavior:          Remount read-only

Ainsi, le système de fichiers sera monté en lecture seule si une erreur se produit, par exemple. Max Mount Count est atteint et e2fsck n'est pas exécuté. Cependant, c'est rarement le cas sur Android. Vous pouvez consulter le journal du noyau pour détecter de telles erreurs :

~# dmesg | grep mount

Modifier le comportement par défaut n'est pas recommandé et peut s'avérer réellement dangereux :

~# mkdir /system-temp
~# mount -o rw,errors=continue /dev/block/bootdevice/by-name/system /system-temp

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X