漏洞修复-Root检测+模拟器检测

漏洞修复篇之 模拟器检测以及Root机型检测 如果是模拟器或者Root的机型 直接退出程序

/***
 * 安全漏洞检测工具类
 * **/
public class SafeUtils {
    /***
     * .通过设备硬件特征信息检测运行环境是否为模拟器
     ***/
    public static Boolean CheckEmulatorBuild(Context context) {
        String BOARD = android.os.Build.BOARD;
        String BOOTLOADER = android.os.Build.BOOTLOADER;
        String BRAND = android.os.Build.BRAND;
        String DEVICE = android.os.Build.DEVICE;
        String HARDWARE = android.os.Build.HARDWARE;
        String MODEL = android.os.Build.MODEL;
        String PRODUCT = android.os.Build.PRODUCT;
        if (BOARD == "unknown" || BOOTLOADER == "unknown" || BRAND == "generic"
                || DEVICE == "generic" || MODEL == "sdk" || PRODUCT == "sdk"
                || HARDWARE == "goldfish") {
            return true;
        }
        return false;
    }

    /**
     * .通过检测指定目录下是否存在su程序来检测运行环境是否为Root设备
     *
     **/
    public static boolean CheckRootPathSU() {
        File f = null;
        final String kSuSearchPaths[] = { "/system/bin/", "/system/xbin/",
                "/system/sbin/", "/sbin/", "/vendor/bin/" };
        try {
            for (int i = 0; i < kSuSearchPaths.length; i++) {
                f = new File(kSuSearchPaths[i] + "su");
                if (f != null && f.exists()) {
                    return true;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

/**
 * 判断是否是调试模式
 * 需要把mainfest中的debugger去掉
 */
public static boolean isApkDebugable(Context context) {
    try {
        ApplicationInfo info = context.getApplicationInfo();
        return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
    } catch (Exception e) {

    }
    return false;
}

public static boolean isApkDebugable(Context context,String packageName) {
    try {
        PackageInfo pkginfo = context.getPackageManager().getPackageInfo(
                packageName, 1);
        if (pkginfo != null ) {
            ApplicationInfo info= pkginfo.applicationInfo;
            return (info.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0;
        }

    } catch (Exception e) {

    }
    return false;
}
}

猜你喜欢

转载自blog.csdn.net/zww986736788/article/details/81218634
今日推荐