So ändern Sie die Hosts-Datei auf Android [geschlossen]

72

Ich habe mein Samsung Galaxy Mini (Android 2.2.1) erfolgreich gerootet und dachte, ich könnte alles ändern (wie es Root normalerweise kann).

Ich möchte die Hosts-Datei auf dem Android ändern, um einige lokale Adressen einzuschließen. Ich erhalte jedoch weiterhin die Meldung, dass ich dazu keine Berechtigung habe. Ich habe folgende Optionen ausprobiert:

  1. adb push /path/to/my/new/hosts /system/etc... und ich bekam die Antwort Read-only file system.

  2. direkt in der Shell am Telefon. Aber das hat auch nicht funktioniert. Ich kann suin der Konsole tun , aber kann die Datei nicht ändern.

Ist es nicht seltsam, dass ich als Superuser einige Dateien nicht ändern darf?

Filip Majernik
quelle

Antworten:

64

Sie haben root, müssen aber / system noch einbinden, um gelesen / geschrieben zu werden

$ adb shell
$ su
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

Weitere Informationen finden Sie hier: Mounten Sie ein Dateisystem mit Lese- und Schreibzugriff .

Leif Andersen
quelle
3
Kann adb das nicht direkt machen? Die Verwendung zeigt:adb remount - remounts the /system partition on the device read-write
gsingh2011
1
Wenn Sie root haben, können Sie den / system-Pfad und den fs-Typ herausfinden mit: adb shell su -c cat / proc / mounts
greg7gkb
2
@ gsingh2011: adb remountgibt mir den Fehler remount failed: Operation not permittedund adb rootgibt den Fehler adbd cannot run as root in production buildsauf meinem entsperrten Nexus 4 aus. Wenn Sie wissen, wie Sie adb remount zum Laufen bringen, würde ich es gerne hören.
Clayton Hughes
4
@ClaytonHughes Ich weiß, dass dies alt ist, aber für zukünftige Thread-Goer adb root && adb remountfunktioniert es gut für mich auf CM10.2 auf dem Nexus 7 (2013).
Brandon
2
Es funktioniert immer noch nicht für mich, auch nicht mit Remount und Root.
JohnyTex
45
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

Dies setzt voraus, dass Ihr / System yaffs2 ist und dass es sich unter / dev / block / mtdblock3 befindet. Der einfachere / bessere Weg, dies auf den meisten Android-Handys zu tun, ist:

adb shell
su
mount -o remount,rw /system

Erledigt. Dies bedeutet nur Remount / System Read-Write. Sie müssen weder das Dateisystem noch den Mount-Speicherort angeben.

Paul
quelle
Auf meinem Gerät (Milestone 3 mit 2.6.35.7-g9f70789) ist "Gerät" ein erforderlicher Parameter für die Bereitstellung. Ich konnte -t ​​yaffs2 allerdings weglassen.
Simon Woodside
7
mount -o remount,rw /systemarbeitete für mich; Der andere Befehl mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /systemführte zu : mount: Permission denied.
KajMagnus
Beachten Sie, dass ich mount -o rw,remount /systemin Nexus 5X tun muss ( remount,rwwird der Fehler "Gerät oder Ressource belegt" erhalten.)
Fruit
Das funktioniert gut.
Stimmen
14

Das hat in meinem Fall nicht wirklich funktioniert - dh um die Hosts-Datei zu überschreiben, müssen Sie den Anweisungen folgen, dh:

./emulator -avd myEmulatorName -partition-size 280

und dann in einem anderen Begriffsfenster (Verschieben der neuen Hosts-Datei / tmp / hosts):

./adb remount
./adb push /tmp/hosts /system/etc
dsomnus
quelle
1
Das stimmt, aber das zählt nur für den Emulator. Ich habe mit einem verwurzelten Telefon gearbeitet (Samsung Galaxy Mini, obwohl ich denke, dass es nicht wirklich wichtig ist, um welches Telefon es sich handelt). Auf einem physischen Gerät müssen Sie die Systempartition erneut bereitstellen.
Filip Majernik
Sie haben Recht, ich habe es nur auf Emulator getestet. Gut zu wissen, danke.
Dsomnus
2
Funktioniert nicht mit dem neuesten SDK (4.0.x) ./adb Push / etc / hosts / system / etc konnte '/ etc / hosts' nicht nach '/ system / etc / hosts'
kopieren
Mariuz - danke, gut zu wissen. Ich habe es am 2.3 gemacht.
Dsomnus
2
Dies ist ein älterer Thread, aber es ist nichts wert, wenn Sie beim Starten des Emulators nicht "-no-snapstorage" angeben, starten Sie möglicherweise den Snapshot, der nicht die Partitionsgröße hat. Ich hatte das gleiche Problem, bis ich "-no-snapstorage" hinzufügte
Nick Bork
11

Der wahrscheinlich einfachste Weg wäre die Verwendung dieser App Hosts Editor . Sie müssen root haben

byroncorrales
quelle
5
Sicher, aber die Beschreibung der Frage beginnt mit "Ich habe mein Samsung Galaxy Mini erfolgreich gerootet", sodass dies kein Problem sein sollte.
NiloVelez
1
Nach allem, was ich sagen kann, können Sie mit dieser App Einträge einzeln bearbeiten. Ich möchte eine neue Hostdatei mit 10 MB einlesen.
Jaybro