Sur un appareil de type tablette ou smartphone, installé avec le système d’exploitation Android en mode « rooté » (action de déverrouiller l’OS pour avoir le contrôle total de l’appareil avec l’utilisateur root, comme sous GNU/linux), il n’est pas possible de modifier les fichiers systèmes en mode CLI (Command line Interface) dans un terminal.
Lorsque l’utilisateur avancé souhaite modifier un fichier système sous le profile root, généralement le système affiche ce type de message d’erreur : « command fails, Read-only file system ».
Ce message indique, que la partition système n’est accessible qu’en lecture seule. Pour outrepasser cette limitation (encore une), la partition système doit être montée avec les droits d’écriture.
Résoudre le problème du « Read-only file system »
Avant de rentrer dans le vif du sujet, il faut quelques pré-requis :
- Android « rooté »,
- Un cable micro USB pour relier l’appareil Android sur le PC (ici le PC est sous GNU/Linux),
- Etre très prudent aux actions sur les fichiers système, une erreur est vite arrivée. Faite une sauvegarde avant (on sait jamais) : Sauvegarder son Android.
Pour illustrer, je vais prendre pour exemple l’ajout d’une donnée dans le fichier /etc/hosts et la suppression d’une application pré-installer dans la ROM.
Se connecter sur l’appareil android avec l’outil adb
- Brancher l’appareil Android sur le PC avec le câble USB
- Activer le mode débug sur l’appareil :
- Ouvrir un Terminal :
- Se connecter à l’appareil :
adb devices
adb shell
Changer d’utilisateur et les droits en écriture sur la partition système
- Passer en root (il se peut que l’OS Android demande l’autorisation sur l’appareil) :
su root
mount -o rw,remount /system
echo "127.0.0.1 cmp-cdn.ghostery.com" >> /etc/hosts
tail -5 /etc/hosts
Dans mon cas je vais supprimer l’application Kernel Adiutor, qui est pré-installé avec la ROM Orion car je ne peux pas la mettre à jour dans l’état.
rm -R /system/app/KernelAdiutor/
mount -o ro,remount /system
exit
exit