Ich suche nach der besten / freundlichsten Möglichkeit, mein gerootetes Android 4.1.1-Gerät neu zu starten. Bisher habe ich folgende Lösungen gefunden:
su -c "reboot"
- Verursacht Probleme mit WLAN nach dem Neustart auf meinem Gerät ... Ich habe gelesen, dass dies in einigen Fällen zu einem beschädigten Dateisystem führen kann ... Funktioniert bei mir nicht über ssh.toolbox reboot
- Gleiche Bedenken hier, funktioniert aber über ssh.reboot -d 8 -f
- verursacht Probleme nach dem Neustart, zB einige Apps starten nichtbusybox killall system_server
- "Hot Reboot" (kein wirklicher Systemneustart)start|stop
- Startet / stoppt Android Runtime (kein wirklicher Systemneustart)
Was macht das Gerät genau, wenn ich den (Hardware-) Netzschalter drücke? Ich denke, das ist der freundlichste Weg.
su -c "reboot"
führt denreboot
Befehl aus, der in definiert istreboot.c
.reboot.c
hat sich im Laufe der Jahre nicht viel verändert. Es hat immer sync () aufgerufen und das Gerät neu gestartet. Dank dieses Commits können moderne Versionenreboot.c
auch alle Dateisysteme aushängen. Android 4.1.1 enthält das von mir erwähnte Commit. Daher sehe ich nicht, wie essu -c "reboot"
bei Android 4.1.1 jemals zu einer Beschädigung des Dateisystems kommen kann.su -c 'am start -a android.intent.action.REBOOT'
) funktioniert unter Android 4.1.2 und scheint mir die beste der vorhandenen Antworten zu sein. Wenn es unter Android 4.1.1 funktioniert oder Sie zu beschäftigt sind, um es zu testen, klicken Sie auf das grüne Häkchen, damit es oben im Antwortbereich angezeigt wird.Antworten:
Ganz einfach:
Mit anderen Worten, Apps und Dienste können systematisch bereinigt werden.
Die Befehle, die Sie ausprobiert haben, sind härter. Sie umgehen tatsächlich die Sicherheitsmechanismen für ein ordnungsgemäßes Herunterfahren.
Android ist nicht per se Linux im Sinne einer gewöhnlichen Desktop-Version von Linux, bei der diese Befehle zum Herunterfahren der Linux-Umgebung ausgegeben werden könnten.
Möglicherweise können Sie ein Wrapper-Skript wie das folgende erstellen:
Sie können dies
safe_shutdown.sh
mit einer Berechtigung von 0755 als speichern. Ihre Laufleistung kann je nach Mobilteil und ROM variieren - daher gibt es keine Garantien.quelle
adb reboot
? Ich bin nicht sicher, ob das sicher ist!?! Vielleicht ein Wrapper-Skript, um eine Sendung zu senden undACTION_SHUTDOWN
dann anzurufenadb reboot
?ACTION_SHUTDOWN
uns nicht sicher, ob der Rundfunk das tut, was Sie möchten: "Apps müssen dies normalerweise nicht tun , da die Vordergrundaktivität ebenfalls angehalten wird." Klingt so, als würden die meisten Apps damit nicht umgehen. Ist es ausreichend, die Aktivität anzuhalten?Es wird ein Dialogfeld mit der Option zum Ausschalten des Geräts angezeigt (Android bietet standardmäßig keinen Neustart an). Es scheint, dass ShutdownActivity aufgerufen wird, wenn Sie die Ein / Aus-Taste lang drücken.
Auf jeden Fall können Sie dies aus der Ferne oder lokal versuchen, jedoch nur mit Root-Zugriff:
Das System wird ordnungsgemäß heruntergefahren und anschließend neu gestartet. Ich suchte nach einer Absicht, als ich sie hier bemerkte .
Methode wird getestet auf Android 4.2.1, 5.0.2 und 6.0.1 und soll für Android 4.1.1 arbeiten und
Aktualisieren
Getestet auf Android 5.0 und 6.0.1:
Gemäß dem hier angegebenen Quellcode sollten KitKat-Builds den Befehl ebenfalls unterstützen.
quelle
Dadurch wird der Root-
zygote
Prozess abgebrochen und das Android-System aktualisiert.Dadurch wird nicht die Hardware Ihres Telefons neu gestartet, sondern nur die Android-Prozesse.
Standardmäßig (unter Linux) ermöglichen die Befehle
kill
/ daskillall
ordnungsgemäße Herunterfahren der Prozesse, obwohl es von der zygote- Implementierung abhängt , ob dies wiederum das ordnungsgemäße Herunterfahren Ihrer ausgeführten Android-Apps bewirkt.Hinweis: Sie müssen dies als root ausführen, unabhängig davon, ob Sie eine
su -c
Verbindung über SSH oder ADB oder eine andere Methode herstellen.Andere Namen für diese Aktion:
quelle
am restart
. Dies erfordert jedoch Root-Zugriff.killall zygote
es eine Möglichkeit, Prozesse ordnungsgemäß herunterzufahren? Interessante Frage. Jemand müsste sich denzygote
Quellcode ansehen, um es zu wissen.