Comment monter / système réinscriptible ou en lecture seule? (RW / RO)


Réponses:


63

Il existe quelques méthodes pour monter votre /systemrépertoire RW ou RO. Cependant, il faudra root.

Méthode 1:

  1. Connectez votre téléphone à l'ordinateur. (Assurez-vous que le débogage USB est activé sur votre téléphone)

  2. Ouvrez CMD/ Terminalsur votre PC.

    • Windows: CTRL+ R, puis tapez cmd.

    • Ubuntu: CTRL+ ALT+ T.

    • Mac: Accédez à Terminal,/Applications/Utilities/ puis double-cliquez dessus .

  3. Tapez ceci:

    1. adb shell
    2. su

    3. Choisissez l'une des options suivantes: (pour des raisons de sécurité, /systemretournez à RO lorsque vous avez terminé)

      • Système de montage RW: mount -o rw,remount /system
      • Système de montage RO: mount -o ro,remount /system

Méthode 2:

  1. Ouvrez terminalsur votre téléphone Android (télécharger ici ):
  2. Tapez ceci dans le terminal:

    1. su

    2. Choisissez l'une des options suivantes: (pour des raisons de sécurité, /systemretournez à RO lorsque vous avez terminé)

      • Système de montage RW: mount -o rw,remount /system
      • Système de montage RO: mount -o ro,remount /system

Méthode 3:

Si vous ne voulez pas taper la commande à chaque fois dans le terminal, j'ai écrit une application conçue pour le faire pour vous:


Android 2.3

Pour les personnes utilisant Android 2.3 et la commande échouant, examinez la réponse suivante: https://android.stackexchange.com/a/125437/95577


4
Il semble que cela (méthode 1) ne fonctionne plus sur les nouveaux Android. J'essaie de le faire sur un émulateur Android exécutant Android 6, mais j'obtiens toujours l'erreur "montage: système de fichiers en lecture seule". J'ai lancé adb root, mais cela ne fait aucune différence. Une idée sur ce qui pourrait être fait?
Diidu

1
Je l'ai eu, en quelque sorte. Je dois utiliser l'option de ligne de commande -writable-system lors du démarrage de l'émulateur. Alors le premier remount semble réussir. Semble ... je ne l'ai pas encore vu changer.
Diidu

emulator -writable est toujours la bonne réponse.
Edgar Aroutiounian

"Pour les personnes utilisant Android 2.3" - cette formulation ne communique pas très bien. Je suppose que vous voulez dire> = 2.3 ou <= 2.3 (ou, moins probable, exactement 2.3 s'il y a un bogue particulier dans la version 2.3 seulement) mais nous ne savons pas lequel ni pourquoi.
Don Hatch

2

-writable-system pour l'émulateur

Lors du lancement de l'émulateur après une compilation avec, vous devez utiliser:

. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel -verbose -writable-system

Ensuite, pour les futures exécutions, vous devez conserver l’ -writable-systemoption, sinon les modifications de l’image ne seront pas visibles:

emulator -show-kernel -verbose -writable-system

-verbosenous montre que l'émulateur bascule de la valeur par défaut -drive:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img,read-only

à:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

Par conséquent, il:

  • supprime ,read-only

  • utilise system-qemu.img.qcow2au lieu de system-qemu.img.

    Cela implique que les modifications ne seront visibles que si vous transmettez -writable-sytemles futures bottes après leur modification!

    Nous pouvons voir que l'image qcow2 est juste une petite superposition au dessus de l'image de base puisque:

    qemu-img info /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2
    

    contient:

    backing file: /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img
    

L'émulateur -helpconfirme également ceci:

emulator -help

contient:

-writable-system     make system & vendor image writable after 'adb remount'

adb remount + adb root

Je pense que c'est juste un raccourci pour ce qui est mountmentionné sur https://android.stackexchange.com/a/110928/126934 , mais c'est très pratique:

adb root
adb remount
adb shell

adb help contient:

 root                     restart adbd with root permissions
 remount
     remount /system, /vendor, and /oem partitions read-write

Restaurer l'image système d'origine

Idem que pour les données utilisateur: supprimez la .qcow2superposition et régénérez-la manuellement: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- courir-it-on-the

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.