Android 區別真機和模擬器的幾種方法_Android

來源:互聯網
上載者:User

現在的模擬器的功能太強大,從藍芽,感應器等配件到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 區別真機和模擬器 方法的整理和對比,有需要的朋友可以參考一下.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.