美文网首页Android进阶之路Android技术知识
判断Android设备是否拥有Root权限

判断Android设备是否拥有Root权限

作者: waiwaaa | 来源:发表于2019-03-29 09:46 被阅读4次

在android开发中,出于安全的考虑我们很多时候已被Root的手机需要禁止用户访问敏感信息或者提示用户后再操作。所以判断是否拥有Root权限是很有必要的。

/**
 * 判断Android设备是否拥有Root权限
 */
public class RootCheck {
 
    private final static String TAG = "RootUtil";
 
    public static boolean isRoot() {
        String binPath = "/system/bin/su";
        String xBinPath = "/system/xbin/su";
        if (new File(binPath).exists() && isExecutable(binPath))
            return true;
        if (new File(xBinPath).exists() && isExecutable(xBinPath))
            return true;
        return false;
    }
 
    private static boolean isExecutable(String filePath) {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec("ls -l " + filePath);
            // 获取返回内容
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String str = in.readLine();
            Log.i(TAG, str);
            if (str != null && str.length() >= 4) {
                char flag = str.charAt(3);
                if (flag == 's' || flag == 'x')
                    return true;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (p != null) {
                p.destroy();
            }
        }
        return false;
    }
}

相关文章

网友评论

    本文标题:判断Android设备是否拥有Root权限

    本文链接:https://www.haomeiwen.com/subject/qsixhqtx.html