6 votes

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

Aidez-moi, 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 donne aucun retour d'échec (peut-être ai-je réussi?)


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

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


Certaines applications qui fonctionnent réellement selon les sources et les avis.

Certaines disent (Échec de montage..) Certaines disent (Système monté en rw) certaines n'ont pas de feedback.


Je ne sais pas quoi faire.

J'ai remarqué cela quand 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 n'aide pas non plus. 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 tout autre élément de monter le système en 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 vais les lier ci-dessous pour votre référence. Votre seul moyen de falsifier votre système maintenant serait d'utiliser un module Magisk sans système. Vous pouvez en créer un vous-même ou utiliser un autre module et injecter des fichiers à l'intérieur de son dossier avant de redémarrer pour appliquer ce module.

  1. Vient de confirmer que l'incapacité de remonter le système (le répertoire "/" dans le système en tant que racine) en rw est quelque chose de nouveau dans Android Q, PAS un problème avec l'approche de Magisk basée sur le système en tant que racine utilisée dans les versions canary. Je devrai enquêter davantage pour trouver comment y faire face. 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. Il 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 physiquement pas 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 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 jamais monter la partition système en tant que rw. Source : https://twitter.com/topjohnwu/status/1170404633371525120
  4. Je suppose que la justification de Google pour formater les partitions avec cette fonction 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 en utilisant des partitions logiques. Source : https://twitter.com/topjohnwu/status/1170404634604658688
  5. Au fait, je viens de trouver cette information dans le code source d'Android. Ils appellent ce genre 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

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

2 votes

EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS poserait un problème sur les appareils initialement expédiés avec Android 10 (en raison des partitions dynamiques et donc de la petite system.img). Sur les appareils mettant à niveau vers Android 10, les développeurs de ROM personnalisée peuvent reconstruire system.img sans SHARED_BLOCKS. Ou l'utilisateur peut essayer e2fsck -E unshare_blocks dans TWRP. Si le manque d'espace est un problème, sauvegardez system.img sur 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 reflasher sur la partition system. À l'heure actuelle, je ne vois pas de raison pour que cela ne fonctionne pas. Le plus gros problème est dm-verity.

1 votes

@IrfanLatif mon Nokia 8.1 mis à jour d'Android 9 à 10 et a eu ce problème et c'est à ce moment-là que j'ai découvert les tweets de TJW. J'ai essayé avec une ROM personnalisée et dm-verity était également exclu. Mon expérience avec dm-verity concerne davantage le refus du périphérique de démarrer ou le marquer comme corrompu/ne démarrera pas. Ça ne devrait pas être la cause du R/W qui ne se produit pas. Mais je crois que tu en sais plus sur ce sujet. Je ne sais pas comment et de quelle manière les développeurs de ROM personnalisées peuvent régler cela, mais les quelques GSIs que j'ai utilisés avaient ce problème et je ne peux pas attendre beaucoup de modifications d'une GSI. Voyons ce que les développeurs de ROM réaliseront à 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 pour pouvoir modifier /system/etc/hosts. Je n'ai pas réussi à remonter adb, cependant, et exécuter "adb root" n'a pas fonctionné non plus.

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

  1. Installer Termux depuis le Google Play Store.
  2. Lancer Termux.
  3. Taper "pkg install vim".
  4. Taper "su", et accorder les autorisations lorsque l'application Magisk vous le demande.
  5. Taper "mount -o rw,remount /" #mount -o /system ne fonctionne pas, vous devez donc monter le système de fichiers entier en mode lecture/écriture.
  6. Si vous voulez utiliser vim en tant que root, vous devrez également faire ceci : "alias vi=/data/user/0/com.termux/files/usr/bin/vim" #indiquez à l'interpréteur de commandes où trouver les binaires de vim, puisqu'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 ce que vous avez à faire.
  8. Lorsque vous avez terminé, tapez "mount -o ro,remount /" pour remonter le système de fichiers en lecture seule.

Cela devrait fonctionner! J'espère que cela fonctionne é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 cause ce problème?

0 votes

Non, et je serais surpris si cela fonctionnait réellement pour vous. Tout d'abord, le bon sens me 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 rw semblait fonctionner et cela apparaissait effectivement en rw dans le montage. Je pouvais éditer des fichiers sous /etc, mais : La première fois que mount -o ro,remount / a provoqué 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 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