关于终端设备的设备唯一性的那些事之IMEI(转)
最近和别人聊起来数据上报,一起讨论到imei和MAC地址,然后发现一个问题:知道这两个东西都不唯一,但是不知道为什么…………
回来上各种小网站巴拉巴拉找了一下,终于大概了解了前世今生,这里简单汇总一下imei相关的内容。会在另一篇文章汇总MAC地址相关的内容。链接如下:
什么是IMEI?
国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”。
- “移动设备”就是手机,不包括便携式电脑。
- “国际”这个字眼也表明了它可辨识的范围是全球,即全球范围内IMEI不会重复。
- “身份”表明了它的作用,是辨识不同的手机;一机一号,类似于人的身份证号。
- “码”字又说明它是一串编号,常称为手机的“串号”、“电子串号”。
IMEI用于在移动电话网络中识别每一部独立的手机等行动通讯装置,相当于移动电话的身份证,储存在移动设备中,可用于监控被窃或无效的移动设备。
IMEI保存在什么地方?
IMEI存储在手机的EEPROM(俗称“码片”)里(关于EEPROM可以自行搜索,可以理解为是一种电子式可抹除可编程只读存储器)。
IMEI的组成
IMEI由15位数字组成,每位数字仅使用0~9的数字,其组成为:
- 前6位数(TAC,Type Approval Code)是“型号核准号码”,一般代表机型。
- 接着的2位数(FAC,Final Assembly Code)是“最后装配号”,一般代表产地。
- 之后的6位数(SNR,Serial Number,出厂序号)是“串号”,一般代表生产顺序号。
- 最后1位数(SP)通常是“0”,为检验码,备用。
如:SAMSUNG的一台GT-I9308手机的IMEI是:355065 05 331100 1/01。其中,355065是TAC,05是FAC,331100是SNR,1是SP,01是软件版本号。
TAC
TAC由欧洲型号认证中心分配。TAC码前三位在不同的时期会发生变化。过去的一些老型号的手机基本上都是446/448开头,但在不同的时期也会有不同的TAC码。如大家最熟悉的8210升级8250,如果前三位是448902就不能升级,因为CPU不同。因此过去所说的只要是同一型号的手机TAC码一定一样的说法是不够准确的。
FAC
FAC由厂家编码,通常表示生产厂家及其装配地。有时FAC也不能完全证明手机是否是行货,T68上市后热买一度造成缺货,因此爱立信代理商调集了一部分马来西亚生产(FAC码71)紧急救援,因此这部分有入网许可证T68同样是“行货”。不过FAC码也不是一成不变的即使是同一产地的产品,如西门子3508I和MOTO C300因为其产量巨大已经从开始的37升级到40,而C300的行货FAC也有80/81/82。
尤其重要的是欧洲型号认证中心重新分配了IMEI,FAC被和TAC合并在一起,FAC码的数字统一从00开始,因此无论什么型号什么品牌,其IMEI的第七、八位均是00、01、02或03这样向后编排。
SNR码
SNR(Serial Number)码即序号码,也由厂家分配。识别每个TAC和FAC中的某个设备的。每一部手机的SNR都不会一样.简单的说该号码可以说明手机出产日期的先后,通常数值越大说明该机型出厂时间越晚,所以如果一部刚上市不久的手机的IMEI上出现了6位的SNR,你就得小心了,因为刚上市不久的手机其SNR最多不会超过四位,大家可以在购机时留意一下。也许这可以作为鉴别手机是否被JS修改IMEI的好办法之一。
SP备用码
SP基本上已经没有象过去文章所说那样“一般为0”了,其号码由厂家做设置,可忽略。
IMEI不一定是15位
有些手机在IMEI上做了自己的定义。如爱立信手机在待机时输入*#06#可能会出现17位的IMEI,其最后两位的主要作用是用来识别软件版本。这里需要说明的是三星V200也使用了17位的IMEI,最后两位的主要作用是用来识别软件版本,一般来说数值越低版本也越低,比如T618的R1A版本为02而R1F版本则为03,最新的R1L版本是05。
为什么需要IMEI?
IMEI号有一个主要目的:识别移动设备。标示该设备的全球唯一性。便于信号发射塔识别,可以帮助安全机构定位手机及其使用者的位置,同时也能帮助找到销售这种手机的商店资料.
设计的目的
既然唯一,那就肯定可以做到监控。这种监控包括:
- 防止被盗:小偷可以改变SIM卡,但是不能改变插SIM卡的电话,当一个运营商知道设备已被盗,将设备IMEI列入黑名单IMEI码,并锁定网络。那么这个设备就被废弃了。因为IMEI号是硬编码到硬件设备。
- 设备监控:警匪片最常见的扔手机的桥段的原因。
IMEI与设备
设备都有IMEI么?
####不只手机,所有使用移动网络的设备都应该有IMEI
IMEI标准用于任何蜂窝网络设备,这意味着,3G/4G卡,笔记本电脑的PCMCIA无线网络卡,和其他移动设备也有IMEI。
####移动设备不一定有IMEI
- 能接入非cdma网络的设备都有imei,cdma不使用imei,但有作用类似的meid,如果能同时使用cdma与非cdma网络,则同时有imei与meid
- 2006年,联发科开发出了一种MTK手机芯片,将手机的主板与软件集成在了一起,大大降低了手机生产的门槛,使得普通厂商在没有核心技术的情况下,只需采购MTK芯片及其配件便可批量生产出手机,自此山寨机开始横行。由于山寨手机是中小型工厂生产的非正规产品,没有办理正规的入网注册手续,绝大部分山寨手机没有IMEI,或者多部山寨机使用相同的IMEI。没有IMEI或者IMEI不规范的移动设备会阻碍运营商定位手机使用者的位置,这就使得设计IMEI的初衷被背弃了。
所有的设备都有唯一的IMEI么?
IMEI用于标示一台独立的设备,双卡类的手机因为有两个SIM卡插槽,被归类为两台设备,因此如果您使用的是双SIM卡的手机,你会看到两个IMEI号,每一个SIM卡插槽一个。
设备的IMEI可修改么?
可以确认的是:可以修改,不过取决于手机芯片类型。
目前大部分手机使用的都是EEPROM,因此原理上和实际中都是可擦除可修改的。
所有的设备的IMEI都唯一么?
首先可以确认不唯一。原因在移动设备不一定有IMEI和设备的IMEI可修改里面已经说明了。
- 很多山寨机厂商并不会办理入网注册,因此就会存在使用的设备没有IMEI或者IMEI不规范,在出厂时就重复了。
- 由于IMEI可修改,因此自然就会有修改自己设备的IMEI,并且可以改为任何值。
IMEI不得不说的山寨机
2003年开始在中国大陆设计制造生产的一类仿制名牌或杂牌、小品牌的手机,因其成本低,性价比高,不遵守行业规则而得名山寨机。
2006年,联发科技开发出了一种MTK手机芯片,将手机的主板与软件集成在了一起,大大降低了手机生产的门槛,使得普通厂商在没有核心技术的情况下,只需采购MTK芯片及其配件便可批量生产出手机。迎来山寨机大爆发。
2007年10月15日,中国国务院宣布取消手机生产核准制,也即对厂家的手机生产牌照要求,转而对手机颁发进网许可证,一些早期的贴牌和白牌手机厂开始成为正规厂商。例如早期的山寨厂商天宇朗通公司于2002年成立,以生产贴牌手机起家,2003年得到联发科支持,生产天语手机。
2008年6月30日,巴基斯坦电信管理局(PTA)方面接到网上用户申请后,锁住了IMEI码为135790246811220的手机,结果竟造成巴境内的众多中国产手机同时死机。随后所有中国产手机在巴基斯坦市场完全停止销售。
2009年6月,由于山寨机没有IMEI,极易为犯罪份子和恐怖份子使用,藉以逃避跟踪。印度电信管理局宣布,将于12月1日起封杀无IMEI手机,同时要求当地电信营运商停止山寨机的通讯网路服务。
2009年10月由于山寨机威胁到了欧洲国际大厂的生存,欧洲设备型号认证中心对中国手机厂家进行惩罚性收费,现在欧洲对中国产手机的IMEI收费从原来的免费到每一机型的IMEI码收费2000美元。
转自:https://cloud.tencent.com/developer/article/1132770
参考资料
关于终端设备的设备唯一性的那些事之IMEI(转)的更多相关文章
- Android设备唯一性判断
前段时间项目需要一个功能,就是在操作完某一个逻辑之后返回给客户一个红包,安全校验团队需要我们提供android设备的唯一标示,起初直接通过获取设备的imei号传给了server端,后台公司云迹监控发现 ...
- [转] web前端js构造无法销毁的类UUID识别码,识别浏览器设备唯一性
用户行为统计在如今的前端生态中已是稀松寻常,如各种站长统计工具.识别用户访问客户端唯一性是必要的实现,对于web前端获取的设备信息,一般容易想到的是通过navigator.userAgent,但相同设 ...
- 极光推送的设备唯一性标识 RegistrationID
极光推送的设备唯一性标识 RegistrationID 极光推送的设备唯一性标识 RegistrationID | 极光博客 https://blog.jiguang.cn/registrationi ...
- 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID
---恢复内容开始--- 转:https://www.jianshu.com/p/38f4d1a4763b [心路历程] 最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番 ...
- 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID -费元星
在公司做数据分析的时候,发现NA端有很多ID,所有来系统的理解一下,有问题大家多指出 [心路历程] 最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番搜索资料+请教大神 ...
- IOS 生成设备唯一标识
前言 iOS设备5.0以上放弃使用[[UIDevice currentDevice] uniqueIdentifier]来获得设备唯一ID iOS设备私有方法禁止用户获取和使用IMEI 需求 需要一个 ...
- Linux字符设备驱动
一.字符设备基础 字符设备 二.字符设备驱动与用户空间访问该设备的程序三者之间的关系 三.字符设备模型 1.Linux内核中,使用 struct cdev 来描述一个字符设备 动态申请(构造)cdev ...
- iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
一.UDID (Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和 ...
- iOS设备唯一标识的前世今生
设备唯一标识 估计很多开发都有被要求过获取一下设备的唯一标识,获取设备的唯一标识经常使用在我们做统计或者是在保证一台设备登录亦或者是做IM的时候可能会考虑去使用它,这一次在自己的需求当中就有一个&qu ...
随机推荐
- Andrew BP 神经网络详细推导
Lec 4 BP神经网络详细推导 本篇博客主要记录一下Coursera上Andrew机器学习BP神经网络的前向传播算法和反向传播算法的具体过程及其详细推导.方便后面手撸一个BP神经网络. 目录 Lec ...
- 订单退款&重复支付需求疑问点归纳整理
更新历史记录: 更新内容 更新人 更新时间 新建 Young 2020.12.10 16:45 更新产品疑问解答 Young 2020.12.11 10:14 更新退款权益终止时间 Young 2 ...
- RabbitMQ镜像队列集群搭建、与SpringBoot整合
镜像模式 集群模式非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的,并且实现集群比较的简单. Mirror镜像队列,目的是为了保证 RabbitMQ 数据的高可靠 ...
- validator库参数校验
目录 validator库参数校验若干实用技巧 基本示例 翻译校验错误提示信息 自定义错误提示信息的字段名 自定义结构体校验方法 自定义字段校验方法 自定义翻译方法 validator库参数校验若干实 ...
- Java并发编程之同步/并发集合
同步集合 Java中同步集合如下: Vector:基于数组的线程安全集合,扩容默认增加1倍(ArrayList50%) Stack:继承于Vector,基于动态数组实现的一个线程安全的栈 Hashta ...
- 高仿京东到家APP引导页炫酷动画效果
前言 京东到家APP的引导页做的可圈可点,插画+动效,简明生动地说明了APP最吸引用户的几个亮点(商品多,价格低,配送快...).本文主要分析拆解这些动画效果,并完成一个高仿Demo,完整的Demo代 ...
- Android Studio 之 制作 Nine-Patch 图片(.9图片)
•引言 9.png 可以保证图片在合适的位置进行局部拉伸,避免了图片全局缩放造成的图片变形问题. 但是由于Android Studio对于.9图片的检查更加严格,所以不符合AS要求的.9图片会带来很多 ...
- C语言const是如何保证变量不被修改的?
这小段文章要理清楚的是,在C语言中,$const$是如何保证变量不被修改的? 我们可以想到两种方式: 第一种,由编译器来阻止修改$const$变量的语句,让这种程序不能通过编译: 第二种,由操作系统来 ...
- shell算数和逻辑运算
算术运算 Shell允许在某些情况下对算术表达式进行求值,比如:let和declare 内置命令,(( ))复合命令和算术扩 展.求值以固定宽度的整数进行,不检查溢出,尽管除以0 被困并标记为错误.运 ...
- [Fundamental of Power Electronics]-PART I-3.稳态等效电路建模,损耗和效率-3.3 等效电路模型的构建
3.3 等效电路模型的构建 接下来,让我们完善直流变压器模型来解决变换器的损耗问题.这将使用众所周知的电路分析技术来确定变换器的电压,电流和效率. 在前面的章节,我们利用电感伏秒平衡和电容电荷平衡得到 ...