6 votes

Partition système verrouillée en lecture seule sous Android 10

Aide, je ne sais pas ce que j'ai fait mais après avoir installé une ROM personnalisée, j'ai remarqué que ma partition système ne peut pas être montée en lecture/écriture.

J'ai essayé


La commande "mount -o rw,remount /system" sur un émulateur de terminal, un shell ADB et un terminal TWRP

La commande ne montre aucun retour d'informations indiquant un échec (peut-être ai-je réussi ?)


Le monter en utilisant la fonction de montage intégrée de TWRP.

La case de vérification du système peut être coché (elle ne conserve pas sa coche au redémarrage)


Certaines applications fonctionnent effectivement selon des sources et des avis.

Quelques-uns disent (Echec du montage..) Certains disent (Système monté en rw) certains n'ont pas de retour.


Je ne sais pas quoi faire.

J'ai remarqué cela lorsque j'ai installé une ROM personnalisée. J'ai essayé d'utiliser une autre ROM personnalisée mais c'est la même chose. Le reformatage ne résout pas le problème. Je ne sais pas si cela se produit sur la ROM d'origine.


Pour référence

Appareil : Xiaomi Mi A2

Version Android : Android 10

ROM personnalisée : AICP nightly build 15.0

1 votes

9voto

singhnsk Points 2357

Android 10 empêche les applications ou à peu près quoi que ce soit de monter le système en tant que R/W. Oui, même si vous êtes rooté.

Top John Wu, le créateur de Magisk, a couvert cela dans une série de tweets. Je les mettrai en lien ci-dessous pour votre référence. Votre seul moyen de modifier votre système maintenant serait d'utiliser un module Magisk systemless. Vous pouvez créer le vôtre ou utiliser un autre module et injecter des fichiers à l'intérieur de son dossier avant de redémarrer pour appliquer ce module.

  1. J'ai confirmé que l'incapacité de remonter le système (le répertoire "/" en tant que système-en-racine) en rw est quelque chose de nouveau dans Android Q, et NON un problème lié à l'approche système-en-racine que Magisk utilise dans les versions canary. Je devrai enquêter davantage pour trouver comment y remédier. Source : https://twitter.com/topjohnwu/status/1169720663201988611
  2. J'ai découvert que les images système d'Android 10 sont formatées avec EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS. Cela déduplique les blocs dans le système de fichiers pour réduire la taille de l'image. Sur mon Pixel XL, la partition n'est pas physiquement assez grande pour exécuter avec succès 'e2fsck -E unshare_blocks'. Source : https://twitter.com/topjohnwu/status/1170404631865778177?lang=en
  3. Comme clairement indiqué dans le nom de la fonctionnalité, cette fonctionnalité de blocs partagés EXT4 est en RO (lecture seule). L'incapacité de désactiver cette fonctionnalité en raison du manque d'espace libre dans la partition (du moins sur mon Pixel XL) rend littéralement impossible de monter un jour la partition système en rw. Source : https://twitter.com/topjohnwu/status/1170404633371525120
  4. Je suppose que la justification de Google pour formater les partitions avec cette fonctionnalité activée est l'introduction de overlayfs pour "simuler" une partition inscriptible. RIP à tous les mods ou applications root qui modifient le système. Sur Android 10, il semble que le système soit soit formaté en RO, soit utilisant des partitions logiques. Source : https://twitter.com/topjohnwu/status/1170404634604658688
  5. Au fait, je viens de trouver ce minuterie dans le code source d'Android. Ils appellent ces types de systèmes de fichiers "ext4 dedup". D'autres systèmes de fichiers en lecture seule qu'ils connaissent sont squashfs (largement utilisé dans des appareils extrêmement contraints) et l'EROFS de Huawei. Source : https://twitter.com/topjohnwu/status/1170443615077666816

En résumé, vous ne pouvez plus R/W la partition système avec Android 10. L'argument est simplement rejeté.

2 votes

EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS serait un problème sur les appareils initialement expédiés avec Android 10 (en raison des partitions dynamiques et donc du petit system.img). Sur les appareils mettant à niveau vers Android 10, les développeurs de ROM personnalisées peuvent reconstruire system.img sans SHARED_BLOCKS. Ou l'utilisateur peut essayer e2fsck -E unshare_blocks dans TWRP. Si le manque d'espace pose problème, sauvegardez system.img dans la partition /data ou sur une carte SD externe ou un PC, supprimez le partage de blocs (en redimensionnant le système de fichiers) et réinstallez dans la partition system. Pour l'instant, je ne vois aucune raison pour que cela ne fonctionne pas. Le plus gros problème est dm-verity.

1 votes

@IrfanLatif mon Nokia 8.1 a été mis à jour d'Android 9 à 10 et j'ai rencontré ce problème, c'est là que j'ai découvert les tweets de TJW. J'ai essayé avec une ROM personnalisée et dm-verity était également désactivé. Mon expérience avec dm-verity est plus liée au refus de démarrage du périphérique ou à son marquage comme corrompu/type de démarrage impossible. Cela ne devrait pas être la cause de l'impossibilité de lecture/écriture. Mais je pense que tu en sais plus sur ce sujet. Je ne sais pas comment et de quelles manières les développeurs de ROM personnalisées peuvent résoudre cela, mais les quelques GSIs que j'ai utilisés rencontraient ce problème et je ne m'attends pas à de nombreuses modifications de la part d'un GSI. Voyons ce que les développeurs de ROM réalisent à l'avenir.

2voto

Nick B Points 11

J'avais des problèmes similaires avec Android 10 (Havoc OS / TWRP / Magisk 20.4) sur un ASUS Max Pro M1. Je voulais remonter /system afin de pouvoir modifier /system/etc/hosts. Je n'ai pas réussi à remonter adb, et même "adb root" ne fonctionnait pas non plus.

Finalement, j'ai réussi en utilisant un terminal sur le téléphone plutôt que d'utiliser adb / le mode débogage. Voici ce que j'ai fait, y compris l'installation d'un éditeur de fichiers, car busybox ne peut pas s'installer sur Android 10 non plus :

  1. Installez Termux depuis le google play store.
  2. Exécutez Termux.
  3. Tapez "pkg install vim".
  4. Tapez "su" et accordez les autorisations lorsque l'application Magisk vous le demande.
  5. Tapez "mount -o rw,remount /" #mount -o /system ne fonctionne pas, donc vous devez monter l'ensemble du système de fichiers en mode lecture/écriture.
  6. Si vous voulez utiliser vim en tant que root, vous devrez faire ceci aussi : "alias vi=/data/user/0/com.termux/files/usr/bin/vim" #indiquez au shell où trouver les binaires pour vim, car il est installé avec termux. Vous devrez peut-être modifier légèrement le chemin en fonction de votre téléphone ; vérifiez d'abord pour confirmer que c'est là qu'il se trouve.
  7. Faites votre travail sale.
  8. Lorsque vous avez terminé, tapez "mount -o ro,remount /" pour remonter le système de fichiers en lecture seule.

Ça devrait marcher ! J'espère que cela fonctionnera également pour vous...

1 votes

Salut, je suis également en train d'essayer de modifier le fichier hosts ! Cependant, lorsque j'essaie d'exécuter mount -o rw,remount / dans Termux, j'obtiens l'erreur '/dev/block/dm-0' est en lecture seule. As-tu une idée de ce qui ne va pas ici ?

0 votes

Non, et je serais surpris si cela fonctionnait réellement pour vous. Tout d'abord, le bon sens m'a dit que cela ne devrait pas avoir d'importance si vous accédez à /bin/sh via adb shell ou via termux, mais peu importe. Remonter / en tant que rw semblait fonctionner et cela s'affichait effectivement dans le montage en tant que rw. Je pouvais éditer des fichiers sous /etc, mais : La première fois que j'ai exécuté mount -o ro,remount / j'ai eu une erreur d'E / S sur dev/block/dm-1, mais en répétant la commande cela semblait fonctionner et / est réapparu en tant que ro. Cependant, après un redémarrage, aucun des changements n'était présent. Donc, non, cela ne fonctionne pas, car cela ne survit pas à un redémarrage, désolé.

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