博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟器检验
阅读量:7294 次
发布时间:2019-06-30

本文共 1336 字,大约阅读时间需要 4 分钟。

  1. 属性检测
    1.  //判断当前设备是否是模拟器。如果返回TRUE,则当前是模拟器,不是返回FALSE
          public static boolean isEmulator(Context context){
              try{
                  TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                  String imei = tm.getDeviceId();
                  if (imei != null && imei.equals("000000000000000")){
                      return true;
                  }
                  return  (Build.MODEL.equals("sdk")) || (Build.MODEL.equals("google_sdk"));//系统全局属性判断
              }catch (Exception ioe) {
              }
              return false;
          } 
                   其次,android各个os版本都有code name,模拟器中,属性
BRAND和DEVICE都是“generic”,Landroid/os/Build:->BRAND的值可以判断是否为模拟器;
          绕过方法:修改系统源码相应属性,重新编译;将判断模拟器的逻辑代码重新设计;
       2. 检测IMEI和IMSI,默认值分别为000000000000000(15个)和310260000000000
          需要申请android.permission.READ_PHONE_STATE权限
          
TelephoneManager Tm=(TelephoneyManager)getSystemService(TELEPHONY_SERVICE);
          String imsi=Tm.getSubscriberId();
          String imei=Tm.getDeviceId();
          绕过方法:修改Android SDK下/tools/emulator-arm.exe文件,修改后保存
     


2.     虚拟文件检测
     模拟器中存在特殊文件或目录,如/system/bin/qemu-props(在模拟器中设置系统属性),/system/lib/libc_malloc_debug_qemu.so文件,/sys/qemu_trace目录等。
     private static String[] knwon_files={"/system/bin/qemu-props","/system/lib/libc_malloc_debug_qemu.so","/sys/qemu_trace"};
     
     public static boolean hasQEmuFiles(){
          for(String pipe: known_files){
               File qemu_file=new File(pipe);
               if(qemu_file.exists()){
                    return true;
         }
          return false;
     }
     参考资料:

3.     基于Cache行为的模拟器检测
    
其他方法: 
    

转载于:https://www.cnblogs.com/littlefishxu/p/3969200.html

你可能感兴趣的文章
帧中继配置
查看>>
eclipse安装快速打开项目所在位置的插件
查看>>
Python爬虫框架Scrapy 学习笔记 6 ------- 基本命令
查看>>
lvm快照的创建恢复
查看>>
数学之美笔记(二十)
查看>>
网站设计八步骤
查看>>
Oracle系统用户的默认密码及功能
查看>>
获取数组中的最大值
查看>>
Operation category READ is not supported in state standby
查看>>
elasticsearch 6.6 安装(CentOS 7.5) 修订
查看>>
python进阶资源整理
查看>>
对Struts2的认识(-)
查看>>
25个经典的Spring面试问答
查看>>
老男孩Linux运维第41期20171016第六周学习重点课堂记录
查看>>
负载均衡 LVS
查看>>
APACHE-TOMCAT集群环境部署
查看>>
Linux文件管理以及一些常用的基础命令解析
查看>>
SpringQuartz定时任务调度器
查看>>
开始——“运行”命令集
查看>>
配置管理篇(0)_SaltStack 安装
查看>>