Wie kann ich das /system
Verzeichnis wiederbeschreibbar oder schreibgeschützt auf meinem Android-Telefon bereitstellen?
Es gibt ein paar Methoden, wie Sie Ihr /system
Verzeichnis RW oder RO mounten können. Es wird jedoch Root benötigt.
Verbinden Sie Ihr Telefon mit dem Computer. (Stellen Sie sicher, dass USB-Debugging auf Ihrem Telefon aktiviert ist)
Öffnen Sie CMD
/ Terminal
auf Ihrem PC.
Windows: CTRL+ R, dann tippe cmd
.
Ubuntu: CTRL+ ALT+ T.
Mac: Navigieren Sie zu Terminal/Applications/Utilities/
und doppelklicken Sie darauf .
Geben Sie Folgendes ein:
adb shell
su
Wählen Sie eine: (für die Sicherheitsmontage /system
zurück an RO, wenn Sie fertig sind)
mount -o rw,remount /system
mount -o ro,remount /system
Öffnen Sie auf Ihrem Android-Handy ( hierterminal
herunterladen ):
Geben Sie dies ein in terminal
:
su
Wählen Sie eine: (für die Sicherheitsmontage /system
zurück an RO, wenn Sie fertig sind)
mount -o rw,remount /system
mount -o ro,remount /system
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
-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
Dann müssen Sie für zukünftige Läufe die -writable-system
Option beibehalten, sonst sind Bildänderungen nicht sichtbar:
emulator -show-kernel -verbose -writable-system
-verbose
zeigt 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.qcow2
statt system-qemu.img
.
Das bedeutet, dass Änderungen nur dann sichtbar werden, wenn Sie -writable-sytem
zukü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 -help
bestä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 help
enthä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 .qcow2
Overlay 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
diidu
diidu
Kabeljau
Don Hatch
Geremia
mount -o rw,remount /system
gibtmount: '/system' not in /proc/mounts
. Funktioniert jedochmount -o rw,remount /
.