Android 检测到WSO2 EMM代理根

Android 检测到WSO2 EMM代理根,android,wso2,root,wso2carbon,wso2-emm,Android,Wso2,Root,Wso2carbon,Wso2 Emm,今天,我安装了WSO2 EMM服务器,作为现有mdm软件的替代品。 我的公司正在制造她自己的安卓智能手机,一款有安卓4.x.x股票的平板电脑。 我安装了安卓EMM代理,并获得了我的设备已扎根的信息 您的设备已根目录,因此不允许注册 但手机上没有根 那么,我怎样才能告诉代理设备没有根呢? 或者我应该和开发者谈谈吗?我也有同样的问题 您可以通过修改代理的源来绕过根测试来解决此问题 这是文件Root.java中的函数isDeviceRooted(),只需注释三行测试: public boolean i

今天,我安装了WSO2 EMM服务器,作为现有mdm软件的替代品。 我的公司正在制造她自己的安卓智能手机,一款有安卓4.x.x股票的平板电脑。 我安装了安卓EMM代理,并获得了我的设备已扎根的信息

您的设备已根目录,因此不允许注册

但手机上没有根

那么,我怎样才能告诉代理设备没有根呢?
或者我应该和开发者谈谈吗?

我也有同样的问题

您可以通过修改代理的源来绕过根测试来解决此问题

这是文件Root.java中的函数isDeviceRooted(),只需注释三行测试:

public boolean isDeviceRooted() { 
    // if (checkRootMethod3()){return true;}
    // if (checkRootMethod2()){return true;}
    // if (checkRootMethod1()){return true;}
    return false;
}

另一种方法是分析代理发现您的设备根目录的方式

代码如下:

/**
*Returns true if the OS build tags contains "test-keys"
*/
public boolean checkRootMethod1(){
    String buildTags = android.os.Build.TAGS;

    if (buildTags != null && buildTags.contains("test-keys")) {
        Log.e("ROOT CHECKER", "ROOT METHOD 1");
        return true;
    }
    return false;
}
/**
*Returns true if the device contains SuperUser.apk which is stored into the device in the rooting process
*/
public boolean checkRootMethod2(){
    try {
        File file = new File("/system/app/Superuser.apk");
        if (file.exists()) {
            Log.e("ROOT CHECKER", "ROOT METHOD 2");
            return true;

        }
    } catch (Exception e) { }

    return false;
}
/**
*Executes a shell command (superuser access with su binary) and returns true if the command succeeds
*/
public boolean checkRootMethod3() {
    if (new ExecShell().executeCommand(ExecShell.SHELL_CMD.check_su_binary) != null){
        Log.e("ROOT CHECKER", "ROOT METHOD 3");
        return true;
    }else{
        return false;
    }
}
因此,有3张支票:

  • 你的Android buildTags上有“测试密钥”链
  • 您的设备上有Superuser.apk
  • 您的设备实际上是根设备,因为您可以执行shell命令 具有超级用户访问权限