我需要能够使用重新启动功能。安全不允许我这样做。该平台是一个自定义版本,因此它将仅是基于AOSP的版本的一部分。
我想知道如何更改AOSP并能够调用系统功能以进行重新引导。是否可以添加一个可以从用户空间调用的自定义INTENT,然后它将为我执行重新启动命令?
以下代码在用户级别的应用程序中不起作用,因此我想我可以从AOSP构建中执行此操作,并添加一个我可以调用的自定义意图。可能吗?
Process chperm;
try {
Runtime rt = Runtime.getRuntime();
chperm = rt.exec(new String[] {"/system/bin/reboot"});
chperm.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
您必须是系统应用。诸如重新启动之类的某些权限仅授予系统应用程序。您已使用平台证书(generate a jks from platform.pk8 and platform.x509.pem)
对应用进行签名然后在清单中请求重新启动许可:
<uses-permission android:name="android.permission.REBOOT" />
然后您可以调用重新启动:
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
pm.reboot(null)
请确保为use your own certificates,而不是AOSP中的默认值。每个人都有他们,可以让他们的应用成为您平台上的系统应用]