关于终端设备的设备唯一性的那些事之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 ...
随机推荐
- linux安装mysql8.0
linux 上安装mysql8.0 mysql版本8.0.16 MySQL Community 操作系统centos7 准备工作: mysql8.0 rpm文件 安装步骤: 1. 下载mysql的re ...
- python爬去壁纸网站上的所有壁纸
import requests as r 2 from bs4 import BeautifulSoup 3 import os 4 base_url = "http://www.win40 ...
- python3 循环位移动
python3 中 >> 为算术右移位,高位补符号位: <<为左移位,低位补0: 1 # 假如将一个无符号的数据val,长度为N,需要循环移动n位.可以利用下面的公式: 2 ...
- 全网最详细的Linux命令系列-cat命令
cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 命令格式: cat [选项] [文件].. ...
- C++中的广义集合于for范围访问
在C++11中可以通过for在范围循环中访问广义集合 如: std::vetcor v={1,2,3}; int a[4] {1,2,3,4}; std::array<int,4>a2 { ...
- BUAA_OO_第四单元
一.UML解析器设计 先看下题目:第四单元实现一个基于JDK 8带有效性检查的UML(Unified Modeling Language)类图,顺序图,状态图分析器 MyUmlInteractio ...
- 02.ElementUI源码学习:babel配置
书接上文,接下来项目将引入babel支持ES6+语法兼容. Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行 ...
- 解决Linux无法读写U盘中的NTFS问题
1 问题描述 由于笔者因为某些需要把Windows装在了U盘上面(在这里建议一下如果有需要请使用固态U盘),在Linux下挂载时,能读取但并不能写. 2 尝试的解决方案 2.1 remount 一开始 ...
- Java8 Map computeIfAbsent方法说明
// 方法定义 default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) { . ...
- Pytorch系列:(二)数据加载
DataLoader DataLoader(dataset,batch_size=1,shuffle=False,sampler=None, batch_sampler=None,num_worker ...