Ich habe kürzlich mein Droid X gerootet und alles scheint perfekt zu funktionieren. Ich habe einige Änderungen vorgenommen build.prop
und wenn ich dies tue, adb push build.prop /system/
erhalte ich die folgende Fehlermeldung : failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system
.
Wie kann ich das beheben?
adb remount
, was bekommst du?Antworten:
Nicht alle Telefone und Versionen von Android haben die gleichen Dinge montiert.
Am besten ist es, die Optionen beim erneuten Einhängen einzuschränken.
Einfach als rw (Lesen / Schreiben) wieder montieren:
Wenn Sie alle Änderungen vorgenommen haben, stellen Sie die Verbindung zu ro wieder her (schreibgeschützt):
quelle
adb root
oder Sie erhalten eine Berechtigung verweigert, wenn Sie die Datei verschieben.Balazss-MBP:tools varh1i$ adb shell
generic_x86_64:/ # mount -o rw,remount /system
'/dev/block/vda' is read-only
mv hosts /system/etc/hosts
funktioniert für mich und scheint die einfachste Lösung zu sein.
quelle
Not running as root. Try "adb root" first.
. Und dannadbd cannot run as root in production builds
.$ adb disable-verity
das Gerät$ adb remount
Not running as root. Try "adb root" first.
. Ich habe eingegebenadb root
und dann nochmaladb remount
aber immer noch den gleichen Fehler:Not running as root. Try "adb root" first.
Habe dies von einem Android-Forum bekommen, in dem ich die gleiche Frage gestellt habe. Hoffe das hilft jemand anderem.
Auf einem Terminalemulator am Telefon:
Führen Sie dann an der Eingabeaufforderung cmd das aus
adb push
quelle
adb shell <command>
kann vom Computer aus verwendet werden (wenn Sie kein Terminal auf Ihrem Telefon haben)Obwohl ich weiß, dass es sich bei der Frage um das reale Gerät handelt, muss der Emulator über die Befehlszeile mit folgendem Befehl gestartet werden, falls jemand mit einem ähnlichen Problem im Emulator hierher gekommen ist.
Damit alles auf die geschrieben werden kann
/system
. Ohne dieses Flag gibt es keine Kombination vonremount
odermount
erlaubt es, darauf zu schreiben/system
.Nachdem der Emulator mit diesem Flag gestartet wurde, reicht ein einzelnes
adb remount
Nachheradb root
aus, um die Berechtigungen zum Push zu erhalten/system
.Hier ist ein Beispiel für die Befehlszeile, mit der ich meinen Emulator ausführe:
Der Wert für die
-avd
Flags stammt von:quelle
Ich denke, der sicherste Weg ist, das / System als Lese- / Schreibzugriff erneut zu installieren, indem ich Folgendes verwende:
und wenn Sie fertig sind, montieren Sie es erneut als schreibgeschützt:
quelle
Auf meinem Samsung Galaxy Mini S5570 (nachdem ich auf dem Handy root wurde):
Faust, als Wurzel lief ich:
als normaler Benutzer:
Gewähren Sie Root-Berechtigungen auf dem Touchscreen
Listen Sie alle Mount-Punkte auf, die wir haben, und wir können in meinem Fall sehen, dass / dev / stl12 auf / system als ro gemountet wurde (nur bereit), also müssen wir nur Folgendes tun:
quelle
Versuchen Sie Folgendes an der Eingabeaufforderung:
quelle
adb root remount
Das funktioniert bei mir und ist die einfachste Lösung.
quelle
Hier ist, was für mich funktioniert hat. Ich habe ein emuliertes Android 7.1.1 (Nougat) -Gerät ausgeführt.
Auf einem Terminal habe ich den folgenden Befehl gedrückt. Eine Sache, die beachtet werden muss, ist das Flag -writable-system
Auf einer anderen Registerkarte
Alle Änderungen, die Sie am / system-Inhalt vornehmen, überleben einen Neustart.
quelle
Ich habe mit dem Emulator nachgesehen und folgendes funktioniert.
Führen Sie, wie oben erwähnt, den zweiten Schritt in einem einzigen Schuss aus.
quelle
Öffnen Sie den Terminalemulator auf dem Telefon: dann
Danach wird der Daemon gestartet
dann wird das schreibgeschützte in das schreibgeschützte umgewandelt.
quelle
funktioniert bei mir
quelle
quelle
Ich habe diesen Artikel von Google gefunden und dachte, ich würde die notwendigen Schritte für ein Sony Xperia Z (4.2.2) hinzufügen.
Der Sony verfügt über einen Watchdog-Prozess, der erkennt, wenn Sie ro auf rw on / und / system geändert haben (dies sind die einzigen, die ich ändern wollte) und möglicherweise andere.
Das Folgende war das, was ich ausgeführt habe, um die Änderungen durchzuführen, die ich erreichen wollte. Ich habe diese in ein Fenster eingefügt, da das Entfernen des Ausführungsbits aus / sbin / ric schnell erfolgen muss, um einen Neustart zu verhindern. (Ich habe es versucht
stop ric
; das funktioniert nicht - obwohl es auf einer früheren Version von Android auf dem Telefon funktioniert hat).Ich habe die Hosts-Datei hier geändert, sodass Sie hier die erforderlichen Änderungen am Dateisystem vornehmen. Gehen Sie folgendermaßen vor, um die Dinge so zu belassen, wie wir sie gefunden haben:
An diesem Punkt sollte ric automatisch neu gestartet werden. (Es wurde für mich automatisch neu gestartet.)
quelle
Ein bisschen mehr zu Jan Bergströms Antwort hinzufügen: Da Android ein Linux-basiertes System ist und der Pfad unter Linux Schrägstriche (../) enthält, verwenden Sie bei Verwendung des Push-Befehls "/", um den Zielpfad auf dem Android-Gerät zu definieren.
Der Befehl lautet beispielsweise: adb push C: \ Benutzer \ admin \ Desktop \ 1.JPG sdcard / images /
Beachten Sie, dass hier Schrägstriche verwendet werden, um den Quellpfad der Datei zu definieren, die vom Windows-PC übertragen werden soll, und Schrägstriche verwendet werden, um den Zielpfad zu definieren, da Android ein Linux-basiertes System ist. Sie müssen nicht als Root fungieren, um diesen Befehl zu verwenden, und er funktioniert auch auf Produktionsgeräten einwandfrei.
quelle
Manchmal wird der Fehler angezeigt, weil der Zielort im Telefon nicht vorhanden ist. Zum Beispiel ist ein externer Speicherort für Android-Telefone
/storage/emulated/legacy
anstelle von/storage/emulated/0
.quelle
Vielen Dank, Sérgio , für den Befehl "mount" ohne Parameteridee. Ich würde gemacht müssen
adb push
in/data/data/com.my.app/lib
für einige Test Problem, und erhalten „Read-only - Dateisystem“ -Meldung.Der Befehl zeigt mir:
root@android:/ # ls -l /data/data/com.my.app/
drwxrwx--x u0_a98 u0_a98 2016-05-06 09:16 cache drwxrwx--x u0_a98 u0_a98 2016-05-06 09:04 files lrwxrwxrwx system system 2016-05-06 11:43 lib -> /mnt/asec/com.my.app-1/lib
Es versteht sich also, dass das Verzeichnis "lib" von anderen Anwendungsverzeichnissen getrennt ist.
Der Befehl
mount -o rw,remount /mnt/asec
hat das Problem "r / o fs" nicht behoben. Er möchte, dass der Geräteparameter vor dem Verzeichnisparameter steht.Der Befehl "df" hat auch nicht geholfen, zeigt aber, dass sich mein
/mnt/asec/com.my.app-1
Verzeichnis am separaten Einhängepunkt befindet.Dann
mount
schaue ich vorbei und voila!root@android:/ # mount ......... /dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0
Die nächsten Schritte sind bereits nach oben beschrieben: erneut auf RW montieren, drücken und wieder auf RO montieren.
quelle
Es ist dasselbe, das initrc.img extrahieren und neu packen und die
init
Datei mit dem Code von mount / system bearbeiten mussquelle
Dateien auf die SD-Karte kopieren?
Nun, ich nehme an, Sie möchten Daten vom Entwicklercomputer auf die SD-Karte kopieren? Möglicherweise haben Sie das Gerät gerootet und den von Ihnen adressierten Bereich verfügbar gemacht?) Ich hatte ungefähr das gleiche Problem beim Hochladen von Datendateien für meine Anwendung (Android Studio 1.3.2 in Win7), aber.
So kann beispielsweise der Befehl adb folgendermaßen aussehen:
adb push C: \ testdata \ t.txt /sdcard/download/t.txt
quelle
Wenn beim Kopieren der schreibgeschützten Datei ein Fehler auftritt, können Sie versuchen, die Originaldatei im Stammverzeichnis zu suchen und sie mit einem Stammtexteditor (vorzugsweise) RB Texteditor zu ändern. Diese wird mit der ROM Toolbox-App geliefert.
quelle
Versuchen Sie dies in einem Terminal-Emulator als root:
quelle
In meinem Fall habe ich den Befehl adb push verwendet
~/Desktop/file.txt ~/sdcard/
Ich habe es geändert
~/Desktop/file.txt /sdcard/
und dann hat es funktioniert.Stellen Sie sicher, dass Sie das Telefon trennen und wieder anschließen.
quelle
Wie Chen-Xing erwähnt hat, ist der einfachste Weg:
Aber für mich musste ich zuerst meine Einstellungen ändern:
Einstellungen → Entwickleroptionen → Root-Zugriff
Stellen Sie sicher, dass ADB Root-Zugriff hat:
quelle