android - 如何向 AOSP 添加自定义 INTENT 以授予对系统级控制调用的访问权限?

标签 android android-intent android-source

我需要能够访问重启功能。安全不允许我这样做。该平台是一个自定义构建,因此这将只是我基于 AOSP 的构建的一部分。

我想知道如何更改 AOSP 并调用系统函数来重启。是否可以添加我可以从用户空间调用的自定义 INTENT,然后为我执行重启命令?

以下代码在用户级应用程序中不起作用,所以我想我可以从 AOSP 构建中执行此操作并添加一个我可以调用的自定义 Intent 。可能吗?

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 ) 为您的应用签名

然后在 list 中请求重启权限:

<uses-permission android:name="android.permission.REBOOT" />

然后就可以调用reboot了:

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
pm.reboot(null)

一定要use your own certificates ,而不是 AOSP 的默认值。每个人都有他们,可以让他们的应用程序成为您平台上的系统应用程序

关于android - 如何向 AOSP 添加自定义 INTENT 以授予对系统级控制调用的访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58725833/

相关文章:

java - 分享 Instagram Story 的贴纸坏了?

android - 无法在适配器中使用 Intent

android - Android 包安装期间写入元信息

Android:在 AOSP 构建中包含 su 二进制可执行文件

android - 在 Android 4.2 中跟踪来自 JNI 的 wifi 请求者实现时的错误

java - 如何确保我的线程/进程在不同的内核上运行

android - 如何将一些 "metadata"附加到 Android Listview 项目?

android - 三星galaxy 2s没有权限

java - 系统应用程序与 android :persistent=true crashes after update

java - Android-如何将数据从 Activity 发送到服务?