7
回答
Android判断root授权拒绝还是授权了
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   

如图,怎么知道是选择了拒绝还是授权?我想要获取到我的应用有没有获取到授权!有没有什么好的办法?

举报
花未眠001
发帖于4年前 7回/1K+阅
共有7个答案 最后回答: 4年前

会不会发出什么广播?或者你认为你执行的功能失败了就是授权失败了吧

--- 共有 1 条评论 ---
花未眠001好像没有广播,我想知道的就是有没有或得到允许,但是,这个对话框弹出来就已经给个返回值为0。 4年前 回复

去做一个只有root才能成功的操作,比如去尝试删一个系统文件(开个玩笑),成功即已root,不成功即非root.


public boolean slientInstall(File file) {
boolean result = false;
Process process = null;
OutputStream out = null;
try {
process = Runtime.getRuntime().exec("su");
Thread.sleep(3000);
out = process.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(out);
dataOutputStream.writeBytes("chmod 777 " + file + "\n");
dataOutputStream.writeBytes("LD_LIBRARY_PATH=/vendor/lib:/system/lib pm install -r " +file);
// 提交命令
dataOutputStream.flush();
// 关闭流操作
dataOutputStream.close();
out.close();
int value = process.waitFor();
int a = process.exitValue();
// 代表成功
if (value == 0) {
result = true;
} else if (value == 1) { // 失败
result = false;
} else { // 未知情况
result = false;
}
} catch (Exception e) {
return false;
}
return result;
}

进过反复琢磨,发现中间停顿几秒之后再执行下面的语句,返回值就会不同。解决了。

顶部