一直想清楚的理解IMEI是什么,但是怎么也找不到合適的下筆思路,最終還是把imei.org上的這篇介紹翻譯過(guò)來(lái),做個(gè)記錄。
原文地址:http://imei.org/2013/05/imei-number-decode/ 原文標(biāo)題:What Is IMEI Number and How To Decode It
譯文:
“
你可能聽(tīng)說(shuō)過(guò)IMEI,也知道它是移動(dòng)設(shè)備的標(biāo)識(shí)ID,但是你知道它的具體功用嗎?IMEI自手機(jī)出產(chǎn)后就伴隨其一生,究竟什么是IMEI,如何理解它的數(shù)字含義?
智能手機(jī)是全世界范圍內(nèi)偷竊事件的“主角”,不要低估IMEI的重要性,把IMEI備份一下是一個(gè)明智的決定。本文會(huì)解釋為什么我們的手機(jī)需要IMEI,同時(shí)會(huì)列出如何找到并記錄IMEI的技術(shù)方法。
IMEI是什么?
IMEI的全稱(chēng)是International Mobile Equipment Identity,每臺(tái)設(shè)備都必備的一個(gè)唯一標(biāo)識(shí),用來(lái)區(qū)分設(shè)備與設(shè)備。當(dāng)你購(gòu)買(mǎi)一臺(tái)新的手機(jī)設(shè)備時(shí),你會(huì)在收據(jù)上看到IMEI;當(dāng)你需要修理手機(jī)時(shí),手機(jī)服務(wù)商可能會(huì)要求你提供IMEI。標(biāo)準(zhǔn)的IMEI是一個(gè)14位數(shù)字,同時(shí)也有IMEI/SV這樣的16位數(shù)字形式(僅新設(shè)備有),SV是由軟件設(shè)計(jì)的。當(dāng)然蘋(píng)果的iPhone GSM有 15位數(shù)字,而CDMA是14位數(shù)字。不管如何,IMEI的設(shè)計(jì)動(dòng)機(jī)不僅僅是一個(gè)ID標(biāo)識(shí),它也可以用來(lái)阻止網(wǎng)絡(luò)訪問(wèn),還可以用IMEI來(lái)進(jìn)行運(yùn)營(yíng)商解鎖。
如果你的手機(jī)失竊,你可以將情況上報(bào)到你的手機(jī)服務(wù)商,他們會(huì)阻止這臺(tái)手機(jī)進(jìn)行一切的網(wǎng)絡(luò)訪問(wèn),同時(shí)警察也可以通過(guò)IMEI來(lái)識(shí)別丟失的設(shè)備。
IMEI怎么查看?
多數(shù)手機(jī)在你輸入撥號(hào)*#06#后就能看到IMEI了,當(dāng)然也有其他的一些方法:
- iOS:Settings->General->About(設(shè)置->通用->關(guān)于手機(jī)),這樣也可以看到有IMEI(需要自己下滑尋找)。iPhone手機(jī)同樣可以在sim卡托盤(pán)上找到IMEI,當(dāng)然如果你不是使用原生的托盤(pán)就看不到了。
- Android:Settings->About(設(shè)置->關(guān)于),這里可以看到IMEI,序列號(hào)和其他的信息。
- 老的Sony或者索愛(ài):輸入 * Right * Left Left * Left *
- 新的索愛(ài)或者Blackberry:Options->Status(選項(xiàng)->狀態(tài))
你可以使用http://imei.org/check-iphone-carrier/ 服務(wù)通過(guò)輸入IMEI來(lái)獲得手機(jī)的運(yùn)營(yíng)商信息
如何解釋IMEI:
2004年以來(lái),統(tǒng)一的IMEI格式為:AA-BBBBBB-CCCCCC-D,這是一個(gè)15位數(shù)字號(hào),其中:
- AA:兩位數(shù)字號(hào),表示Reporting Body Identifier,用來(lái)表示由TAC(Type Allocation Code)分配的GSMA。
- BBBBBB:TAC(FAC)的剩余部分。
- CCCCCC:機(jī)器序列號(hào)(SNR)
- D:Luhn 檢測(cè)位
舉例來(lái)說(shuō),現(xiàn)在iPhone 5的TAC為01-332700,而三星的Galaxy S2為35-853704,而C部分的SNR是由手機(jī)制造商自定義的生產(chǎn)序列號(hào),最后一位校驗(yàn)位是通過(guò)算法來(lái)生成的。
IMEI是手機(jī)相關(guān)的,與sim卡無(wú)關(guān),當(dāng)你的手機(jī)被偷后,無(wú)論手機(jī)重置還是更換sim卡,IMEI都是不變的,這時(shí)你是可以通過(guò)聯(lián)系你的手機(jī)服務(wù)商來(lái)鎖住手機(jī)的服務(wù)的。如果這行不通,可以聯(lián)系你所在地區(qū)的運(yùn)營(yíng)商來(lái)鎖定IMEI對(duì)于運(yùn)營(yíng)商網(wǎng)絡(luò)的訪問(wèn)。
有時(shí)候IMEI是變化的,盡管這不合法。有些竊賊有能力將合法的新的IMEI安裝到你的手機(jī)里從而重新啟用這個(gè)手機(jī)。另外鑒于犯罪動(dòng)機(jī),還有人會(huì)利用IMEI來(lái)監(jiān)聽(tīng)設(shè)備。
綜上,IMEI是手機(jī)的重要的唯一性ID,你需要去備份并記住它。
”
翻譯結(jié)束。
最后附加一些說(shuō)明。
關(guān)于TAC:http://en.wikipedia.org/wiki/Type_Allocation_Code
關(guān)于最后一位校驗(yàn)位的算法和python code:
以14位IMEI為例,校驗(yàn)位假設(shè)是C
- 從后向前,記錄下每隔兩位的數(shù)字,記為列表A
- 從后向前,記錄下除A以外的數(shù)字,記為列表B
- 將A中的數(shù)字都乘以2,如果一個(gè)數(shù)字乘以2后大于10,那么把這個(gè)結(jié)果拆為兩個(gè)數(shù)字(個(gè)位數(shù)一個(gè),十位數(shù)一個(gè)),記為列表A'
- 把A'和B中的所有數(shù)字求和,記為S
- 計(jì)算S*9%10,記為F,如果F等于C,校驗(yàn)通過(guò),否則IMEI有問(wèn)題。
1: if len(arg0)==15:
2: check_bit = int(arg0[-1])
3: i = len(arg0)-2
4: l,r = [],[]
5: while i>=0:
6: m = int(arg0[i])*2
7: if m<10:
8: l.append(m)
9: else:
10: l.append(m%10)
11: l.append(m/10)
12:
13: r.append(int(arg0[i-1]))
14: i-=2
15: l.reverse()
16: r.reverse()
17: if sum((sum(l),sum(r)))*9%10==check_bit:
18: return True
19: return False