【发布时间】:2011-07-25 23:12:16
【问题描述】:
我正在寻找一种可用于重新启动已root 设备的解决方案。我知道重启设备对于用户as stated here 来说是非常糟糕的设计,而且它并不是真正的应用程序。主要目的是在我的测试期间重启手机(我在一个视频聊天应用程序上工作,有时我需要在一切都向南时重启)
我观察到,在终端(例如adb shell 或 ConnectBot)中使用 reboot 重启手机比使用 ACTION_REBOOT 重启手机要快得多,因为无论如何我都无法使用。
目前,我可以通过
获得超级用户权限Process root = Runtime.getRuntime().exec("su");
但我无法进行实际的重启。我尝试了 G1 (HTC) 和 Galaxy S (Samsung),但没有成功。我在/system/bin/reboot中找到了重启可执行文件
这是我的一些尝试:
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot");
我阅读了this article 关于 Runtime.exec() 的缺陷,但我认为我不是这种情况。
由于使用 ConnectBot 使我能够执行这样的操作,我很确定这是可能的。请不要告诉我去看看ConnectBot code,这是一个大而复杂的项目:)
你能帮我解决这个问题吗?
谢谢。
【问题讨论】:
-
根据这个问题,我做了一个我开源的小应用程序:github.com/rbochet/Fast-Forward-Reboot
标签: java android runtime root reboot