我想首先介绍一下我的情况,我正在制作一个使用Runtime.getRuntime().exec(...)
传递各种shell命令的内核调整程序,它运行良好,但问题是每次运行时都会询问su权限带有su的shell命令。
我希望应用只询问一次权限,然后执行所有命令而不再请求su。目前我的应用程序有大约30行su命令,所以我的应用程序用户必须允许su访问30次才能使一切正常工作。
答案 0 :(得分:2)
可能有效的一种方法是使用su运行shell并将各种命令传递到希望生成的root shell进程的stdin中。这意味着su只使用一次。
这样做的代码在人们想要运行带有无法在su命令行上传递的参数的命令的上下文中已经多次涉及,因此必须通过管道输入到生成的进程中。
答案 1 :(得分:0)
我解决了这个问题,在异步任务中使用相同的根调用接口,最初我在Fragment中需要单独使用方法,这会导致一次又一次地询问权限。然后将其更改为一个标准的exec方法,并使用它来每次进行系统调用。它修正了错误。