重新启动root用户设备

时间:2016-12-10 08:31:29

标签: java android

我正在尝试创建一个供个人使用的应用程序,可以重新启动或关闭我的Android设备,无论哪种方法都有效,但此代码不起作用:

Runtime.getRuntime().exec("su -c reboot");

我已经在android清单中添加了REBOOT权限

但是如果我在ADB shell中执行此代码,我的设备会重新启动。

这是我的代码:

public void reboot() {
    Process rebootProcess = null;
    try
    {
        rebootProcess = Runtime.getRuntime().exec("su -c reboot");
    }
    catch (IOException e)
    {
        e.printStackTrace();
        return;
    }

    // We waitFor only if we've got the process.
    if (rebootProcess != null)
    {
        try
        {
            int result = rebootProcess.waitFor();
            Log.i("result", "" + result);
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }
}

更新

在ADB shell下执行命令仅在输入su时有效,按Enter键然后键入reboot。它不能在单行上运行。

1 个答案:

答案 0 :(得分:0)

查看我的git repo,获取rebootLib文件,就像你需要的那样,如果遇到任何问题,请查看示例。

重新启动权限只能由系统应用程序使用(使用系统密钥签名),它还需要android:sharedUserId =" android.uid.system"在你的清单中运作。您的应用永远不会调用该权限,因为您使用root权限时不需要该权限。

Repo Link