文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android 区别真机和模拟器的几种方法

2022-06-06 08:07

关注

现在的模拟器的功能太强大,从蓝牙,传感器等配件到IMEI,Mac,以及手机硬件信息什么都可以模拟

为了防止用户利用模拟器模仿真机进行刷单,刷流量等恶意操作。

需要获取设备返回的一些信息来鉴别设备的真伪。

下面是整理的模拟器和真机的区别

虽然大部分都可以模仿,伪造,但是如果综合所有维度来监控,应该不存在太大问题。

一,native方式。

通过c代码读取设备中的配置和硬件相关信息。

1,diskstats

获取闪存的分区状态信息。


int fd = open(“/proc/diskstats”, O_RDONLY);
bytes = read(fd, buf, bytes);

区别:真机下都有mmcblk0分区,但是模拟器没有分区信息。

2,mac地址。

通过socket和ioctl读取mac地址。


sockfd = socket(AF_INET, SOCK_DGRAM, 0);
ioctl(sockfd, SIOCGIFCONF, (char*)&ifc);
ioctl(sockfd, SIOCGIFADDR, &ifr[i])
ioctl(sockfd, SIOCGIFHWADDR, (char*)&ifr[i])

区别:真机可以获取wlan0的ip和mac地址,模拟器只能获取eth0的ip和mac地址;

3,有用的prop信息。


__system_property_get(key, buf);

区别: 模拟器没有ro.boot.serialno和ro.serialno属性,真机中为机器序列号。

模拟器 ro.hardware属性为goldfish,真机为各自的型号。

4,cpu信息。


int fd = open(“/proc/cpuinfo”, O_RDONLY);
bytes = read(fd, buf, bytes);

区别:模拟器中cpuinfo的硬件为Goldfish。

5,drivers


int fd = open(“/proc/tty/drivers”, O_RDONLY);

区别:模拟器中包含goldfish的驱动

6,模拟器特有文件。


int fd = open(“/dev/socket/qemud”, O_RDONLY);
int fd = open(“/dev/qemu_pipe”, O_RDONLY);

区别:模拟器专有的文件,真机中没有。

二,传统的方式:

通过Java层的代码获取,可以有以下方式:

1,IMEI和IMSI

IMEI  移动设备国际身份码。

IMSI  IMSI国际移动用户识别码,储存在SIM卡中


final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
String imsi = tm.getSubscriberId();

设备1:354273055927169 / null(无卡)

设备2:862966024243759 / 460011040618938

模拟器:000000000000000 / 310260000000000

2,Serial序列号


String serial = android.os.Build.SERIAL;

设备1:4df78680771b117b

设备2:OBAI5HDQZPDIRCQG

模拟器:unknown

3,android_id


String android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

 设备和模拟器都有,16位。

4,Mac地址


WifiManager wifimanage=(WifiManager)getSystemService(Context.WIFI_SERVICE); WifiInfo wifiinfo= wifimanage.getConnectionInfo();

设备1:88:32:9b:1e:49:20

设备2:f8:a4:5f:fd:56:17

模拟器:null

以上就是对Android 区别真机和模拟器 方法的整理和对比,有需要的朋友可以参考一下.

您可能感兴趣的文章:Android开发必备:秒杀真机超快模拟器Genymotion介绍Android 判断真机和模拟器的方法


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯