Android 反黑产

如何判断手机是否 root

public static boolean isRooted(Context context) {
    if (TextUtils.equals("1", getSystemProperty("ro.secure", null))) {
        return true;
    }
    final String[] filePaths =
            new String[]{"/system/bin/su", "/system/sbin/su", "/system/xbin/su", "/vendor/bin/su", "/sbin/su"};
    for (String filePath : filePaths) {
        final File file = new File(filePath);
        if (file.exists()) {
            return true;
        }
    }
    return false;
}
 
@Nullable
public static String getSystemProperty(String name, String defaultValue) {
    if (TextUtils.isEmpty(name)) {
        return defaultValue;
    }
    try {
        final Class<?> cls = Class.forName("android.os.SystemProperties");
        final Method method = cls.getDeclaredMethod("get", String.class, String.class);
        return (String) method.invoke(null, name, defaultValue);
    } catch (Throwable th) {
        return defaultValue;
    }
}
复制代码

这些文件夹下都可能存在 su 文件:


"/system/bin/", "/system/sbin/", "/system/xbin/", "/vendor/bin/", "/sbin/"
复制代码

参考资料

mp.weixin.qq.com/s/sl33d2pny…

juejin.im/post/598428…

juejin.im/post/5a705e…

转载于:https://juejin.im/post/5ce36b6be51d45106c403150

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值