新闻  |   论坛  |   博客  |   在线研讨会
移动设备标识码简单总结
电子禅石 | 2020-07-22 17:38:26    阅读:16924   发布文章

做数据产品知识储备,到处搜的资料整理的,比较碎就没有放引用链接了,欢迎指正。
一、安卓设备

   名称
   
   
   说明
   
   
   格式
   
   
   获取方式
   
   
   应用
   
  
   IMEI
   
   
   国际移动设备识别码(International Mobile Equipment Identity)相当于移动电话的身份证,存在主板内存中,双卡双待手机有两个imei号。用于GSM设备。不会改变
   
   
   15~17位,十进制,前8位(TAC)是型号核准号码(早期为6位),是区分手机品牌和型号的编码。接着2位(FAC)是最后装配号(仅在早期机型中存在),代表最终装配地代码。后6位(SNR)是串号,代表生产顺序号
   
   
   安卓8.0以上用getImei获取,8.0以下用TelephonyManager.getDeviceId(),需要获取READ_PHONE_STATE 权限
   
   
   
   
   重装APP不会改变
   
  
   MEID/
   ESN
   
   
   移动设备识别码(Mobile Equipment Identifier),类似imei,用于CDMA制式的移动设备
   
   
   14位,十六进制,RR – 有效范围 ’99’, ’98’, ’97’ ,全球统一管理;XXXXXX – 有效范围 000000--999999;ZZZZZZ – 有效范围 000000-- 999999;C – 有效范围 0 -- 9 – 不参与空中传输。
   
   
   
   安卓8.0以上用getMeid获取,8.0以下用TelephonyManager.getDeviceId(),需要获取READ_PHONE_STATE 权限
   
   
   CDMA设备返回的,一般不使用
   
  
   MAC
   
   
   网络地址(Media Access Control Address)在网络中唯一标识一个网卡,一台设备中的多个网卡有多个MAC地址,烧制在网卡EPROM中。包括WiFi mac地址和蓝牙mac地址
   
   
   48位,二进制,常表示为12个16进制数,前6个是制造商编号,后6个是网络产品(网卡)的系列号
   
   
   INTERNET、ACCESS_WIFI_STATE、ACCESS_NETWORK_STATE
   
   Android 6.0之后被禁止,若获取则会被判定为有害应用。
   
   
   用于确认网络设备位置,一般与IMEI一起使用定位一台设备
   
  
   IMSI
   
   
   国际移动用户识别码 (International Mobile Subscriber Identity)用于蜂窝网络中唯一确定一个用户,存在SIM卡(CDMA2000中存在手机或RUIM),双卡手机只返回一个IMSI,用户换手机、换卡不换号,都不变
   
   
   最大15位,绝大多数为15位,十进制。 由移动国家代码(MCC,Mobile Country Code)、 移动网络代码 (MNC,Mobile Network Code)和移动订户识别代码(MSIN,Mobile subscription identification number)依次连接而成
   
   
   READ_PHONE_STATE
   
   TelephonyManager.getSubscriberId()
   
   
   
   
   
   
   用户更换手机时仍可使用
   
  
   ICCID
   
   
   SIM卡卡号(Integrate circuit card identity)用于区分每张SIM卡,可以伪造,双卡手机只返回一个ICCID
   
   
   19~20位,少数6/12位,十进制。前6位是运营商代号
   
   
   READ_PHONE_STATE
   
   TelephonyManager.getSimSerialNumber()
   
   
   
   
   区分运营商
   
  
   UUID
   
   
   通用唯一识别码(Universally Unique Identifier),由随机算法得到的伪唯一识别码(重复概率为170亿分之一),每次获取都会改变。应用最广泛的是微软的GUIDs
   
   
   
   
   
   
   
   
   
   用于生成UDID
   
  
   UDID
   
   
   设备唯一标识符(Unique Device Identifier),通常是非系统原生的,开发商自定义解决。
   
   
   
   
   
   
   
   
   获取UUID后,写入.so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)
   
  
 
二、IOS设备

   名称
   
   
   说明
   
   
   格式
   
   
   获取方式
   
   
   应用
   
  
   IDFV
   
   
   应用开发商标识符(Identifier For Vendor),同一开发商的应用的IDFV都一样。当用户卸载某应用商的所有应用,重装该应用商的应用时,IDFV改变
   
   
   通过CFBundleIdentifier(DNS反转格式)的前两部分生成,如:com.cjh.one和com.cjh.two得到的IDFV是一样的。如(583D2BB0-B19C-4A9A-A600-2A1EB2FB7E39
   )
   
   
   
   
   
   
   
  
   IDFA
   
   
   广告标识符(Identifier For Advertising)苹果专门给各广告提供商用来追踪用户而设的,由系统存储,用户可以主动还原隐私、还原广告标识符、开关IDFA开关、充值系统来改变这个值。同一设备的所有应用拿到的都是同一个IDFA
   
   
   
   
   
   
   
   
   
   跨应用的用户追踪、广告推广
   
  
   UUID
   
   
   通用唯一识别码(Universally Unique Identifier),由随机算法得到的伪唯一识别码(重复概率为170亿分之一),每次获取都会改变。应用最广泛的是微软的GUIDs
   
   
   
   
   
   
   
   
   
   将第一次获取的UUID存到keychain中,之后每次都使用keychain,就成为不变的唯一ID
   
  
   IMEI
   
   
   国际移动设备识别码(International Mobile Equipment Identity)
   
   
   
   
   
   ios5后禁止获取
   
   
   
   
  
   UDID
   
   
   设备唯一标识符(Unique Device Identifier)可以唯一锁定一台设备,只有越狱可以改变
   
   
   
   
   
   ios5后弃用
   
   
   
   
  
   OpenUDID
   
   
   开源方案,利用剪切板在不同应用间共享一个OpenUDID,
   
   
   
   
   
   ios7后弃用
   
   
   
   
  
   MAC
   
   
   网络地址(Media Access Control Address)
   
   
   
   
   
   ios7后禁止获取
   
   
   
   
  
   
   
   
   
   
   
   
   
   
   
   
   
   
————————————————

原文链接:https://blog.csdn.net/a719217180/article/details/107018439


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客