Wie kann ich das /system
Verzeichnis wiederbeschreibbar oder schreibgeschützt auf meinem Android-Handy bereitstellen?
Wie kann ich das /system
Verzeichnis wiederbeschreibbar oder schreibgeschützt auf meinem Android-Handy bereitstellen?
Antworten:
Es gibt einige Methoden, wie Sie Ihr /system
Verzeichnis RW oder RO mounten können . Dafür ist jedoch root erforderlich.
Verbinden Sie Ihr Telefon mit dem Computer. (Stellen Sie sicher, dass das 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 /Applications/Utilities/
Sie zu Terminal und doppelklicken Sie darauf .
Geben Sie dies ein:
adb shell
su
Wählen Sie eine der folgenden Optionen: (Zum Zurücksetzen /system
auf RO, wenn der Vorgang abgeschlossen ist.)
mount -o rw,remount /system
mount -o ro,remount /system
terminal
auf Ihrem Android-Handy ( hier herunterladen ):Geben Sie dies ein in terminal
:
su
Wählen Sie eine der folgenden Optionen: (Zum Zurücksetzen /system
auf RO, wenn der Vorgang abgeschlossen ist.)
mount -o rw,remount /system
mount -o ro,remount /system
Wenn Sie den Befehl nicht jedes Mal im Terminal eingeben möchten, habe ich eine App geschrieben, die dies für Sie erledigt:
Wenn Sie Android 2.3 ausführen und der Befehl fehlschlägt, lesen Sie die folgende Antwort: 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
Für zukünftige Läufe müssen Sie die -writable-system
Option beibehalten, da sonst Bildänderungen nicht sichtbar sind:
emulator -show-kernel -verbose -writable-system
-verbose
zeigt 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.qcow2
statt system-qemu.img
.
Dies bedeutet, dass Änderungen erst sichtbar werden, wenn Sie -writable-sytem
nach 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 -help
bestä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 mount
wie 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 .qcow2
Overlay 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