Wie mounten / System wiederbeschreibbar oder schreibgeschützt? (RW / RO)


55

Wie kann ich das /systemVerzeichnis wiederbeschreibbar oder schreibgeschützt auf meinem Android-Handy bereitstellen?

Antworten:


63

Es gibt einige Methoden, wie Sie Ihr /systemVerzeichnis RW oder RO mounten können . Dafür ist jedoch root erforderlich.

Methode 1:

  1. Verbinden Sie Ihr Telefon mit dem Computer. (Stellen Sie sicher, dass das USB-Debugging auf Ihrem Telefon aktiviert ist.)

  2. Öffnen Sie CMD/ Terminalauf Ihrem PC.

    • Windows: CTRL+ R, dann tippe cmd.

    • Ubuntu: CTRL+ ALT+ T.

    • Mac: Navigieren /Applications/Utilities/Sie zu Terminal und doppelklicken Sie darauf .

  3. Geben Sie dies ein:

    1. adb shell
    2. su

    3. Wählen Sie eine der folgenden Optionen: (Zum Zurücksetzen /systemauf RO, wenn der Vorgang abgeschlossen ist.)

      • Montagesystem RW: mount -o rw,remount /system
      • Montieren Sie das System RO: mount -o ro,remount /system

Methode 2:

  1. Öffnen Sie terminalauf Ihrem Android-Handy ( hier herunterladen ):
  2. Geben Sie dies ein in terminal:

    1. su

    2. Wählen Sie eine der folgenden Optionen: (Zum Zurücksetzen /systemauf RO, wenn der Vorgang abgeschlossen ist.)

      • Montagesystem RW: mount -o rw,remount /system
      • Montieren Sie das System RO: mount -o ro,remount /system

Methode 3:

Wenn Sie den Befehl nicht jedes Mal im Terminal eingeben möchten, habe ich eine App geschrieben, die dies für Sie erledigt:


Android 2.3

Wenn Sie Android 2.3 ausführen und der Befehl fehlschlägt, lesen Sie die folgende Antwort: https://android.stackexchange.com/a/125437/95577


4
Es scheint, dass dies (Methode 1) auf neueren Android nicht mehr funktioniert. Ich versuche es auf einem Android-Emulator mit Android 6 zu machen, erhalte aber immer die Fehlermeldung "mount: Read only file system". Ich habe adb root ausgeführt, aber es macht keinen Unterschied. Irgendeine Idee, was getan werden könnte?
Diidu

1
Ich habe es irgendwie verstanden. Ich muss die Befehlszeilenoption -writable-system verwenden, um den Emulator zu starten. Dann scheint der erste ADB-Remount erfolgreich zu sein. Scheint ... Ich habe noch nicht gesehen, wie es sich in rw geändert hat.
Diidu

Emulator -writable ist immer noch die richtige Antwort.
Edgar Aroutiounian

"Für Leute mit Android 2.3" - diese Formulierung kommuniziert nicht sehr gut. Ich vermute, Sie meinen> = 2.3 oder <= 2.3 (oder weniger wahrscheinlich genau 2.3, wenn es nur einen bestimmten Fehler in 2.3 gibt), aber wir wissen nicht, welcher oder warum.
Don Hatch

2

-writable-system für den Emulator

Wenn Sie den Emulator nach einem Build mit starten, müssen Sie Folgendes verwenden:

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

Für zukünftige Läufe müssen Sie die -writable-systemOption beibehalten, da sonst Bildänderungen nicht sichtbar sind:

emulator -show-kernel -verbose -writable-system

-verbosezeigt uns, dass der Emulator von der Standardeinstellung wechselt -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

zu:

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

Deshalb ist es:

  • entfernt ,read-only

  • verwendet system-qemu.img.qcow2statt system-qemu.img.

    Dies bedeutet, dass Änderungen erst sichtbar werden, wenn Sie -writable-sytemnach der Änderung zukünftige Stiefel weitergeben!

    Wir können sehen, dass das qcow2-Image nur eine kleine Überlagerung über dem Basis-Image ist, da:

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

    enthält:

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

Der Emulator -helpbestätigt dies ebenfalls:

emulator -help

enthält:

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

adb remount + adb root

Ich denke , das ist nur eine Abkürzung für mountwie bei erwähnt https://android.stackexchange.com/a/110928/126934 , aber es ist sehr bequem:

adb root
adb remount
adb shell

adb help enthält:

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

Stellen Sie das ursprüngliche System-Image wieder her

Dasselbe gilt für Benutzerdaten: Entfernen Sie das .qcow2Overlay und generieren Sie es manuell neu: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- Laufen-es-auf-die

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.