目前来说Android平台并没有提供能够root检查的工具。但是我们可以通过两种方式来判断
手机里面是否有su文件
这个su文件是不是能够执行
但是这两种检查方式都存在缺点。
第一种存在误测和漏测的情况,比如su没有放到常规路径下,就容易漏掉,但是这种情况是有办法尽量规避(或者说减小误差)的,比喻运行which检查,或者遍历shell中所有的环境变量的PATH;还有一种情况是手机没有root但是存在su文件,这种情况一般出现在手机曾经被root过,但是又进行了系统还原操作。
而第二种,有可能检查不准确,或者会有弹窗提示用户是否要授予root权限。
一、 检查手机是否存在su文件
private static boolean checkSuFile() {
Process process = null;
try {
// /system/xbin/which 或者 /system/bin/which
process = Runtime.getRuntime().exec(new String[]{"which", "su"});
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
if (in.readLine() != null) return true;
return false;
} catch (Throwable t) {
return false;
} finally {
if (process