Wie kann /system wiederbeschreibbar oder schreibgeschützt gemountet werden? (RW/RO)

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

Antworten (2)

Es gibt ein paar Methoden, wie Sie Ihr /systemVerzeichnis RW oder RO mounten können. Es wird jedoch Root benötigt.

Methode 1:

  1. Verbinden Sie Ihr Telefon mit dem Computer. (Stellen Sie sicher, dass 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 Sie zu Terminal/Applications/Utilities/ und doppelklicken Sie darauf .

  3. Geben Sie Folgendes ein:

    1. adb shell

    2. su

    3. Wählen Sie eine: (für die Sicherheitsmontage /systemzurück an RO, wenn Sie fertig sind)

      • Montagesystem RW:mount -o rw,remount /system
      • Montagesystem RO:mount -o ro,remount /system

Methode 2:

  1. Öffnen Sie auf Ihrem Android-Handy ( hierterminal herunterladen ):

  2. Geben Sie dies ein in terminal:

    1. su

    2. Wählen Sie eine: (für die Sicherheitsmontage /systemzurück an RO, wenn Sie fertig sind)

      • Montagesystem RW:mount -o rw,remount /system
      • Montagesystem RO:mount -o ro,remount /system

Android 2.3

Für Leute, die Android 2.3 ausführen und der Befehl fehlschlägt, sehen Sie sich diese Antwort an: https://android.stackexchange.com/a/125437/95577

Es scheint, dass dies (Methode 1) auf neueren Android-Geräten nicht mehr funktioniert. Ich versuche es auf einem Android-Emulator mit Android 6, 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?
Ich habe es, irgendwie. Ich muss beim Starten des Emulators die Befehlszeilenoption -writable-system verwenden. Dann scheint der erste adb-Remount erfolgreich zu sein. Scheint ... ich habe noch nicht gesehen, dass es sich in rw geändert hat.
emulator -writable ist immer noch die richtige Antwort.
„Für Leute, die Android 2.3 verwenden“ – 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.
Für mich mount -o rw,remount /systemgibt mount: '/system' not in /proc/mounts. Funktioniert jedoch mount -o rw,remount /.

-writable-systemfü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

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

emulator -show-kernel -verbose -writable-system

-verbosezeigt uns, dass der Emulator von der Voreinstellung 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 es:

  • entfernt,read-only

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

    Das bedeutet, dass Änderungen nur dann sichtbar werden, wenn Sie -writable-sytemzukünftige Stiefel nach der Änderung weitergeben!

    Wir können sehen, dass das qcow2-Bild nur eine kleine Überlagerung über dem Basisbild 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
    

Auch der Emulator -helpbestätigt dies:

emulator -help

enthält:

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

adb remount+adb root

Ich denke, dies ist nur eine Abkürzung für mount, wie unter https://android.stackexchange.com/a/110928/126934 erwähnt , aber es ist sehr praktisch:

adb root
adb remount
adb shell

adb helpenthält:

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

Stellen Sie das ursprüngliche Systemabbild wieder her

Dasselbe wie 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- läuft-es-auf-dem