android 检测手机是否被Root
程序员文章站
2022-05-10 09:42:44
...
import android.text.TextUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
/**
* 使用 boolean isRoot = PACheckSysUtils.isRoot();
* 检测手机是否被Root
*/
public class CheckSysUtils {
private static final String TAG = "PACheckSysUtils";
/**
* 检测是否root
* modify by hiyi 20180928,移除雁联SDK的root检测,重新开发
*
* @param
* @return
*/
public static boolean isRoot() {
String[] paths = {
"/system/xbin/su",
"/system/bin/su",
"/system/sbin/su",
"/sbin/su",
"/vendor/bin/su",
"/su/bin/su"
};
try {
for (String path : paths) {
if (new File(path).exists()) {
String execResult = exec(new String[]{"ls", "-l", path});
Log.d(TAG, "isRooted = " + execResult);
//形如(rooted):-rwxr-xr-x root root 75348 1970-01-01 08:32 su
if (TextUtils.isEmpty(execResult)
|| execResult.indexOf("root") == execResult.lastIndexOf("root")) {
return false;
}
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
private static String exec(String[] exec) {
if (exec == null || exec.length <= 0) {
return null;
}
StringBuilder ret = new StringBuilder();
ProcessBuilder processBuilder = new ProcessBuilder(exec);
try {
Process process = processBuilder.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
ret.append(line);
}
process.getInputStream().close();
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
return ret.toString();
}
}
上一篇: docker构建dnmp 环境
推荐阅读
-
php使用curl检测网页是否被百度收录的示例分享_PHP教程
-
Android判断手机是否是小米MIUI系统的方法
-
解决android有的手机拍照后上传图片被旋转的问题
-
解决android有的手机拍照后上传图片被旋转的问题
-
转:三星安卓手机刷机包(ROM)刷机教程与ROOT教程总索引 博客分类: mobile 三星Android
-
android 判断 手机 是否 打开 允许模拟位置 选项 博客分类: android android允许模拟位置
-
去一家作手机map和导航公司面试被问到的一些问题。 面试Android设计模式数据结构编程
-
Android手机信号强度检测详细介绍
-
Android手机信号强度检测详细介绍
-
Android实现检测手机摇晃的监听器