━━━━━━━━━━━━━━
概括
━━━━━━━━━━━━━━
ROOT是安卓手机的最高权限,拥有ROOT之后就意味着已经获得了系统的最高权限,这时候你可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
我们在开发一个需要ROOT权限的项目时,需要检查安卓手机是否已经获取ROOT权限。
那么问题来了,我们要怎么用代码来检查安卓手机是否已经获取ROOT权限了呢?
凯粉们有什么需要楼主出的教程,欢迎在评论区留言,楼主看到后会根据教程难度选择是否出该教程!
━━━━━━━━━━━━━━
准备工具
━━━━━━━━━━━━━━
【软件名称】:梦雪AIDE
【软件版本】:v3.2.190122
【更新时间】:2018-1-21
【软件大小】:35.37MB
【软件包名】:com.aide.ui1
【支持系统】:Android4.0+
【测试机型】:一加五T
【修改说明】:已汉化、破解、共存
【下载地址】:
━━━━━━━━━━━━━━
教程开始
━━━━━━━━━━━━━━
第一步:使用AIDE创建一个项目
第二步:在MainActivity类中定义一个checkRoot()方法用来检查是否已经获取ROOT权限,代码如下:
/**
执行Linux命令,检查是否已经获取ROOT权限
*/
private boolean checkRoot() {
//声明进程对象
Process process=null;
//声明数据输出流对象
DataOutputStream os=null;
//声明执行结果
int exitValue=1;
try {
//执行su命令
process = Runtime.getRuntime().exec("su");
//实例化数据输出流对象
os = new DataOutputStream(process.getOutputStream());
os.writeBytes("exit\n");//退出
//清空数据输出流
os.flush();
//将执行结果赋值
exitValue = process.waitFor();
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (os != null) {
try {
os.close();//关闭输出流
} catch (IOException e) {
e.printStackTrace();
}
}
//杀掉子线程
process.destroy();
}
return exitValue == 0;
}
第三步:在onCreate方法内调用checkRoot()方法来判断是否已经获取ROOT权限,代码如下:
/*
判断是否获取root权限
true 已获取ROOT权限
false 未获取ROOT权限
*/
if (checkRoot()) {
Toast.makeText(this, "已获取root权限", 0).show();
} else {
Toast.makeText(this, "未获取root权限", 0).show();
}
举报 0