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