常规root的检查方案

简介: root

1.检测路径1

public boolean c() {

    String[] strArr = {"/system/bin/", "/system/xbin/", "/system/sbin/", "/sbin/", "/vendor/bin/"};
    int i = 0;
    while (i < 5) {
        try {
            if (new File(strArr[i] + "su").exists()) {
                return true;
            }
            i++;
        } catch (Exception e) {
        }
    }
    return false;
}

public String o() {

    return a("ro.kernel.qemu", "0");
}

2.检测路径2

public static boolean a() {

    String[] strArr = {"/system/xbin/", "/system/bin/", "/system/sbin/", "/sbin/", "/vendor/bin/", "/su/bin/"};
    try {
        int length = strArr.length;
        for (int i = 0; i < length; i++) {
            String str = strArr[i] + "su";
            if (new File(str).exists()) {
                String a = a(new String[]{"ls", "-l", str});
                f.b("cyb", "isRooted=" + a);
                if (TextUtils.isEmpty(a) || a.indexOf("root") == a.lastIndexOf("root")) {
                    return false;
                }
                return true;
            }
        }
    } catch (Exception e) {
    }
    return false;
}

3.检测属性

public static boolean checkRootMethod1() {

    if (PatchProxy.isSupport(new Object[0], null, changeQuickRedirect, true, 3217, new Class[0], Boolean.TYPE)) {
        return ((Boolean) PatchProxy.accessDispatch(new Object[0], null, changeQuickRedirect, true, 3217, new Class[0], Boolean.TYPE)).booleanValue();
    }
    String str = Build.TAGS;
    return str != null && str.contains("test-keys");
}

4. 检测路径3

public static boolean checkRootMethod2() {

if (PatchProxy.isSupport(new Object[0], null, changeQuickRedirect, true, 3218, new Class[0], Boolean.TYPE)) {
    return ((Boolean) PatchProxy.accessDispatch(new Object[0], null, changeQuickRedirect, true, 3218, new Class[0], Boolean.TYPE)).booleanValue();
}
try {
    if (new File("/system/bin/su").exists() || new File("/system/xbin/su").exists()) {
        return true;
    }
} catch (Exception e) {
}
return false;

}

5.检测包名

public static boolean checkRootMethod3() {

if (PatchProxy.isSupport(new Object[0], null, changeQuickRedirect, true, 3219, new Class[0], Boolean.TYPE)) {
    return ((Boolean) PatchProxy.accessDispatch(new Object[0], null, changeQuickRedirect, true, 3219, new Class[0], Boolean.TYPE)).booleanValue();
}
try {
    if (new File("/system/app/Superuser.apk").exists()) {
        return true;
    }
} catch (Exception e) {
}
return false;

}

相关文章
|
3月前
|
测试技术 数据库 数据安全/隐私保护
测试备份的作用
测试备份的作用
67 5
|
7月前
|
弹性计算 运维 Unix
检查当前是不是root用户
【4月更文挑战第29天】
54 2
|
关系型数据库 MySQL 数据安全/隐私保护
mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查
mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查
mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查
|
存储 Shell Linux
Shell命令切换root用户、管理配置文件、检查硬件
  与其他基于UNIX的系统一样,Linux也可以被多个人同时使用。多用户功能能够让多人在单个Linux系统上拥有账户,并且保护自己的数据不被他人破坏。
323 0
|
Shell Linux
检查你是否是root用户
检查你是否是root用户
157 1
|
SQL 前端开发 关系型数据库
MySQL only_full_group_by 1055 报错的三种解决方案,临时关闭有影响吗?
当我们迁移到 MySQL 5.7+ 的版本时,常会碰到 `ERROR 1055 only_full_group_by` 错误,这是 5.7 之后 `SQL_MODE` 默认打开了严格模式导致的错误。说明你代码里有地方写的不严谨。
1457 0
LXJ
tripwire安装、检测、恢复、更新脚本(参数版本)
包含了tripwire安装、检测、恢复、更新功能
LXJ
379 0
Confluence 6 升级自定义的站点和空间仔细测试你的修改
修改可能对 Confluence 的后续版本不兼容,当你对 Confluence 进行升级的时候,你应该总是对你自定义修改的模板文件进行仔细的测试来确定所有的修改对新版本的 Confluence 兼容。
1152 0