su -c "reboot"
-在设备重启后导致wifi出现问题...我读到这在某些情况下可能导致文件系统损坏...不适用于ssh。toolbox reboot
-同样的问题,但通过ssh起作用。reboot -d 8 -f
-重新启动后引起问题某些应用无法启动busybox killall system_server
-“热重启”(不是真正的系统重启)start|stop
-启动/停止Android运行时(不是真正的系统重启)当我按下(硬件)电源按钮时,设备到底在做什么?我想那是最友好的方式。
#1 楼
当我按下(硬件)电源按钮时,设备到底在做什么?我猜这是最友好的方法。
您会看到一个对话框,其中包含关闭设备电源的选项(Android普通手机不提供重启功能)。长按电源按钮时似乎会调用ShutdownActivity。
无论如何,这是可以在远程或本地尝试的方法,但只能通过root用户访问:
su -c 'am start -a android.intent.action.REBOOT'
它将执行以下操作:正常关机,然后重新启动。当我在这里注意到它时,我正在寻找一个意图。
方法已在Android 4.2.1、5.0.2和6.0.1上进行了测试,并且也适用于Android 4.1.1
Update
已在Android 5.0和6.0.1上进行了测试:
su -c 'svc power reboot'
根据此处的源代码,KitKat构建也应支持该命令。
评论
正是我所需要的。当重新启动文本有值时,我仍然感到奇怪,它说“ Powering off ...”。
–警笛声
16年3月12日在17:13
#2 楼
确实非常简单:Android正在安全关闭运行时的重要部分。
操作系统也在广播意图告诉应用程序和服务正常关闭的意图。这些反过来会刷新其所有数据和共享首选项的缓存,并在sqlite数据库中保存内容,等等。
换句话说,应用程序和服务有机会进行清理
您尝试过的命令更加严格。实际上,它们绕过了安全机制来进行正常关机。
Android本身并不是Linux,就Linux的普通桌面版本而言,可以发出这些命令以关闭Linux环境。 />
可能会创建如下这样的包装脚本:
#!/system/bin/sh
am broadcast android.intent.action.ACTION_SHUTDOWN
sleep 5
reboot
您可以将其另存为
safe_shutdown.sh
,权限为0755。可能会有所不同,具体取决于手机和ROM —因此无法保证。评论
谢谢你的爆炸!是否可以远程执行此操作,例如通过SSH(不是亚行)?
–acy
13年4月15日在16:12
我认为他想知道如何使用命令模仿按钮关闭。
–流程
13年4月15日在16:14
如果这是关闭设备的最友好/最安全/最佳方法,则可以:)
–acy
13年4月15日在16:17
@Flow ADB重新启动?我不确定那是否安全!!!也许它周围的包装器脚本发送广播ACTION_SHUTDOWN然后调用adb重新启动?
–t0mm13b
13年4月15日在16:18
不确定broadcastACTION_SHUTDOWN是否会执行您想要的操作:“应用程序通常不需要处理此操作,因为前台活动也会被暂停。”听起来大多数应用程序因此无法处理它。暂停活动是否足够?
–马修·雷德(Matthew Read)
13年4月15日在21:28
#3 楼
killall zygote
这会杀死
zygote
的根进程并导致Android系统刷新。这不会重新启动手机的硬件,只会重新启动Android进程。
/>默认情况下(在Linux中),
kill
/ killall
命令确实为进程提供了一种正常关闭的方式,尽管这取决于zygote的实现是否能否正常地关闭正在运行的Android应用。注意:无论使用
su -c
,通过SSH或ADB或其他方法连接,都必须以root用户身份运行。此操作的其他名称:
软重启
热重启
评论
我注意到在某些设备上,此命令后Wifi无法正确重新连接(因此,我必须禁用Wifi,请稍等片刻,然后再次重新启用Wifi)。
–palswim
15年3月18日在20:55
对于读者:在Lollipop中,重新启动Android框架的标准方法是重新启动。但是,这需要root访问。
–Firelord♦
15年11月28日在7:49
killall合子是否为进程提供了一种关闭方式的优美方法?有趣的问题。有人必须查看合子源代码才能知道。
–unforgettableidSupportsMonica
15年12月18日在13:33
评论
su -c“ reboot”运行重新启动命令,该命令在reboot.c中定义。这些年来,reboot.c并没有太大变化。它始终调用sync(),然后重新启动设备。另外,由于此提交,现代版本的reboot.c也卸载了所有文件系统。 Android 4.1.1包含了我提到的提交,因此我看不到Android 4.1.1上的su -c“ reboot”怎么可能导致文件系统损坏。亲爱的朋友:Firelord的最新答案(su -c'am start -a android.intent.action.REBOOT')在Android 4.1.2上对我有效,在我看来,它是现有答案中最好的。如果它在Android 4.1.1上适用于您,或者您太忙了而无法尝试,请单击绿色的对勾以使其浮到答案部分的顶部。