Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:如何通过软件重启我的主板?_Android_Multithreading_Reboot_Watchdog - Fatal编程技术网

Android 安卓:如何通过软件重启我的主板?

Android 安卓:如何通过软件重启我的主板?,android,multithreading,reboot,watchdog,Android,Multithreading,Reboot,Watchdog,我为pcDuino板开发了一个Android应用程序(基于Android 4.2) 在我的应用程序中,有一个看门狗线程;此线程检查从其他线程接收的消息;如果出现任何问题(另一个线程在特定时间内未接收到消息),则该看门狗线程必须重新启动电路板 我的应用程序是一项服务,该服务在主板启动时启动(已经完成) 那么,是否可以通过软件重新启动此电路板?我正在使用此链接中的以下代码。只要你有根就行。另外,reboot-p将在代码中需要此选项时执行关机 这将是相当特定于设备的,但您可以看到是否存在/syste

我为pcDuino板开发了一个Android应用程序(基于Android 4.2)

在我的应用程序中,有一个看门狗线程;此线程检查从其他线程接收的消息;如果出现任何问题(另一个线程在特定时间内未接收到消息),则该看门狗线程必须重新启动电路板

我的应用程序是一项服务,该服务在主板启动时启动(已经完成)


那么,是否可以通过软件重新启动此电路板?

我正在使用此链接中的以下代码。只要你有根就行。另外,reboot-p将在代码中需要此选项时执行关机


这将是相当特定于设备的,但您可以看到是否存在/system/bin/reboot或类似程序,以及在未经授权的情况下运行时是否有效。在该板上,如果还没有setuid可执行文件,您可能会以某种方式获得root访问权并创建setuid可执行文件以重新启动该板,但请小心操作,以免引入更大的安全漏洞。
    Process chperm;
    try {
        chperm = Runtime.getRuntime().exec("su");
        DataOutputStream os =
                new DataOutputStream(chperm.getOutputStream());

        os.writeBytes("reboot\n");
        os.flush();

        chperm.waitFor();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }