Android如何使用超级用户权限?允许访问。

6
我正在寻找在Android设备上获得超级用户访问权限的方法。基本上我希望我的应用程序能够删除系统文件,所以像大多数其他应用程序一样在启动应用程序后询问用户是否允许,并且我需要使用哪些代码来执行这些操作?在谷歌上没有找到太多相关信息。
先感谢您的帮助!
3个回答

10
如果设备已经取得了 root 权限,你可以使用下面的代码来获取 root shell 访问权限:
    try
    {
        Process process = Runtime.getRuntime().exec("su");
        DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); 
        DataInputStream inputStream = new DataInputStream(process.getInputStream());

        outputStream.writeBytes(command + "\n");
        outputStream.flush();

        outputStream.writeBytes("exit\n"); 
        outputStream.flush(); 
        process.waitFor();
    }
    catch (IOException e)
    {
        throw new Exception(e);
    }
    catch (InterruptedException e)
    {
        throw new Exception(e);
    }

这里的“command”是您想要执行的命令。


你在哪里找到这个资源的,朋友?有没有相关文档可以参考?我猜每次需要运行需要此访问权限的命令时,只需使用命令变量即可? - sg86-
很高兴能提供帮助!我不记得在哪里找到那段代码,但我知道它花费了很多搜索。示例来自我目前正在开发的一个应用程序。 要运行多个命令,只需使用“outputStream.writeBytes(“command\n”);”和“outputStream.flush();”为每个命令执行即可。您还可以创建一个命令列表进行循环。 - Blu Dragon

1

如果我理解正确,您想授予您的应用程序root权限。然而,在设备上安装的标准Android镜像无法实现此要求。su命令不支持切换到root。

不过,您可以在设备上加载自定义的Root ROM,除此之外恐怕没有其他解决方案了。


1
我使用许多应用程序,在启动之前要求超级用户权限,所以不确定你在说什么。 - sg86-
当然你可以请求超级用户权限,但是在一个默认未root的设备上,使用默认未修改的ROM这个方法不会起作用。这就是我想要说的。 - Octavian Helm

1

这里你可以找到关于如何获得Root权限的清晰说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接