Warum ist mein Dateisystem plötzlich schreibgeschützt?

Etwas Hintergrund:

Mein HTC Desire HD hat mehrere Probleme. Das erste Problem ist, dass ich keine Verbindung mit einem USB-Kabel herstellen kann.

Ich habe also festgestellt, dass ich ADB anweisen kann, über WLAN zu arbeiten, und ich habe diese Methode einige Zeit verwendet. Ich verwende VISIONary, um das Gerät temporär zu rooten, dann führe ich ein Terminal auf dem Gerät aus und führe Folgendes aus:

$ su
#setprop service.adb.tcp.port 5555
#stop adbd
#start adbd

Ich verwende dann netcfg, um die IP meines Geräts zu finden, und schließlich auf meinem PC, den ich verwende

adb connect {device IP}:5555

Ich kann dann auf meinem PC laufen

adb shell

und verwenden Sie diese Shell, um Folgendes zu tun:

cd /etc
echo 127.0.0.1 localhost >hosts
echo {my pc's IP} some.dnsname.com >>hosts

Hier kommt das zweite Problem ins Spiel: Hin und wieder (scheint im Zusammenhang mit dem Beenden und Löschen des Caches einer App zu stehen, die some.dnsname.com verwendet - aber nicht immer) wird die Hosts-Datei einfach auf eine leere Datei zurückgesetzt :(

Da ich (noch) nicht das tiefgreifende Wissen hatte, um mit diesen Problemen umzugehen, habe ich einfach "gelernt, mit ihnen zu leben" ...

Vor ein paar Augenblicken, als ich diesen Prozess vielleicht zum 30. Mal oder so durchlief, beschloss eine neue Ausgabe , meinen Tag interessanter zu machen. Ich habe versucht, die Hosts-Datei zu ändern (zu überschreiben) und erhalte die folgende Meldung:

cannot create hosts: read-only file system

Ich habe versucht, etwas darüber zu lesen, und es scheint, dass ich das System im Lese-/Schreibmodus neu mounten muss.

Laufen

mount | grep system

kehrt zurück

/dev/block/mmcblk0p25 /system ext3 ro,relatime,errors=continue,data=ordered 0 0
none /system/xbin tmpfs rw,relatime,gid=10132 0 0

Ich brauche Hilfe bei :
1) Mein System wieder lesen und schreiben lassen (welchen Mount/Remount-Befehl muss ich ausführen?)
2) Verstehen, was dieses neue Problem verursacht haben könnte.
3) Ideen, wie ich mit den beiden Hintergrundproblemen umgehen kann, sind ebenfalls sehr willkommen.

danke fürs lesen...

Antworten (2)

/systemist standardmäßig fast immer schreibgeschützt. Mounten Sie es einfach erneut als R/W:

# mount -t ext3 -o rw,remount /dev/block/mmcblk0p25 /system

Es gibt auch mindestens eine App , die versucht, dies für Sie zu tun, aber es funktioniert möglicherweise nicht auf allen Geräten.

Eine andere Option besteht darin adb root, adbd als root neu zu starten (sofern Ihr ROM dies zulässt) und dann einfach adb remount. Auf ROMs, auf denen adbd bereits als root läuft, ist der erste Befehl unnötig und adb remountfunktioniert auf Anhieb. Von einem PC:

C:> adb root
* Some response about success *
C:> adb remount
Remount succeeded

Warum es umgehauen wird, ist Ihr Gerät NAND entsperrt? Viele HTC-Geräte werden versuchen, ihre /systemPartition auf einen Bestandszustand zurückzusetzen, wenn sie NAND-gesperrt sind, wobei Änderungen /systembestenfalls flüchtig vorgenommen werden. Das ist so etwas wie eine fundierte Vermutung, aber die Tatsache, dass Sie bemerkt haben, dass Sie VISIONary für Temproot verwenden, scheint diese Hypothese zu stützen.

adb root sagt: adbd kann in Produktions-Builds nicht als root ausgeführt werden
@epeleg: Da musst du damit fertig werden mount.
Können Sie erraten, was sich plötzlich geändert hat? Ich habe das viele Male gemacht und das System war nie schreibgeschützt.
@epeleg: Ich bin mir nicht ganz sicher, warum es von Anfang an nicht schreibgeschützt war, es sei denn, Sie verwenden ein ROM, das so modifiziert wurde, dass es beim Booten als R / W gemountet wird.
@epeleg: Eigentlich habe ich an eine Möglichkeit gedacht: VISIONary hat möglicherweise Ihre Systempartition während des Temproot-Prozesses als R / W für Sie gemountet. Wenn später ein Systemprozess auftauchte und feststellte, dass die Berechtigungen falsch waren, könnte er ihn möglicherweise schreibgeschützt neu einhängen (was mit der NAND-Sperre zusammenhängen könnte).
Dies ist sehr wahrscheinlich. Später fand ich heraus, dass diesmal etwas mit VISIONary schief gelaufen war. Auf meinem Telefon liefen Hunderte von Prozessen. nach einem neustart funktioniert es jetzt wie vorher. Was bedeutet NAND-gesperrt? und woran erkenne ich ob das bei meinem handy so ist?
@epeleg: Soweit ich weiß ist es im Grunde gleichbedeutend mit einem gesperrten Bootloader. Wenn Sie Ihren Bootloader neu starten und nirgendwo "Unlocked" steht, ist er gesperrt ( adb reboot bootloaderfunktioniert dafür oder reboot bootloadervon einer Adb-Shell). Der Text „Entsperrt“ ist auf HTC-Geräten normalerweise ziemlich prominent irgendwo oben auf dem Bootloader-Bildschirm.
danke für die zusätzlichen Informationen, ich muss offensichtlich noch viel mehr über dieses Betriebssystem lernen. Ich könnte weitermachen und was ist ein gesperrter Bootloader und was macht adb reboot bootloaderer, aber vielleicht wäre eine passendere Frage, wo kann ich über all das lesen?
@epeleg: Das CyanogenMod-Wiki und das XDA-Wiki sind beide ziemlich gute Ressourcen. Beide haben Glossarseiten mit gebräuchlichen Begriffen im Zusammenhang mit Android-Geräten und Rooting und dergleichen, obwohl sie nicht sehr tiefgründig sind. Ehrlich gesagt, könnte Google die beste Wahl für wirklich detailliertes Lesen sein. Ich glaube nicht, dass ich irgendwelche Links auf Anhieb habe, weil ich die meisten einfach irgendwann in der Vergangenheit bei Google gefunden habe ...
adb remount gibt mirdm_verity is enabled on the system partition. Use "adb disable-verity" to disable verity. If you do not, remount may succeed, however, you will still not be able to write to these volumes. remount of /system failed: Read-only file system remount failed

Dies hat es für mich behoben, indem ich Android 11 Run Android Emulator mit verwendet habe

Android/Sdk/emulator/emulator -avd Pixel_5_API_30 -writable-system --writable-system
adb shell
avbctl disable-verification
adb reboot
adb remount
adb shell
su
mount -o rw,remount -t ext4 /system

Nehmen Sie die erforderlichen Änderungen vor und ändern Sie das System damit wieder in den schreibgeschützten Zustand

mount -o ro,remount -t ext4 /system