Android判断root授权拒绝还是授权了

花未眠001 发布于 2014/07/28 15:39
阅读 1K+
收藏 2

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

加载中
0
mark35
mark35
一个截屏程序需要root权限?
花未眠001
只是随便截的图,不是截屏程序。
0
yanweimin7
yanweimin7

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

花未眠001
好像没有广播,我想知道的就是有没有或得到允许,但是,这个对话框弹出来就已经给个返回值为0。
0
花未眠001
没有人能回答吗?给个可行方案也行啊
0
小耶果
小耶果

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


0
obaniu
obaniu

执行命令:su id,如果返回“uid=0”说明你的程序获取到root授权

0
花未眠001
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;
}

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

返回顶部
顶部