本人09年购买PALM PRE 改本机 成功清零,教程见本网站,不再重复。1 [+ P' S0 F3 q6 D* A5 T0 C
2010年公司手机换卡,imsi,esn等全变了,需要重新写ESN,清MEID。
) O# }$ u* E/ f0 P- B. V$ R这次清零耗时3个月,反复尝试各种版本ROM(1.0.3 一致到1.4),用网友提供的地址清零MEID和ESN,均不成功。& g9 J: E2 R$ A/ h$ T5 R& w
主要表现为
' a& c% @/ A4 ^& w(1)有的ROM ,MEID即使全部提供地址均清0,但RequestNVItemRead meid 仍为原值。
( x8 A* x" R7 `: B" Y(2)有的ROM,MEID个别地址始终无法清零。一旦执行RequestNVItemRead meid,即恢复原值。6 K4 E# _) a5 a0 c% s
(3)提供的MEID地址中,有些存放的不是本机的MEID,有的是全0., I3 `1 o; Y8 L
(4)ESN能够成功清0.
# O, x% c2 v6 k C) {8 q因此
* O7 \3 z% C R 在1.0.3版本下,采用UNICDMA3.1.4 进行全地址扫描,步长1024。结果地址段如下。, h2 |8 s( `2 K/ I* ^6 J* [) ^
23:04:24 : READABLE area at 0x00000000
+ P- e3 n% |: T, V+ K1 i2 H23:04:27 : Unreadable area at 0x000010000 E) G3 R6 a3 O4 `( D* H
0:49:56 : READABLE area at 0x001FB400
( h5 Q: b3 e$ X5 C" n7 @7 G! v0:49:59 : Unreadable area at 0x001FE000 / [+ I7 T2 t. r/ x% o2 k) ^
0:50:21 : READABLE area at 0x00200000
$ M& n# N: b* E( S; y; _0:50:24 : Unreadable area at 0x002010004 X! |; ~" o+ I0 K
0:50:33 : READABLE area at 0x00202000
- I* Y4 L4 N9 x$ {1 f- I0:50:59 : Unreadable area at 0x0093C000 ' g& X5 e( c6 D- \) B7 ^( A7 ~- u
0:51:08 : READABLE area at 0x0093D000 8 l7 Z$ ^" P: I* i) j! v
0:51:42 : Unreadable area at 0x012DE000
3 V: z6 u9 _0 k, o6 Y9 D; U& Q6 e% z/ X6:26:11 : User break at address 0x01923400
2 Y0 ?' I8 \2 l4 ?& `2 S1 J6 B7 s4 I S" ~9 w9 z+ F/ B& P/ F' t
, p- g2 J6 g/ G- N
其中两个关键地址段中存放了有效的ESN和MEID信息,分别是
! `3 f; B$ O6 v/ I 0x00202000 开始 结束0x93Bff0 长度0x739FF0
1 ^4 ]5 ^0 X. o+ \& a# @) U: x' u' i 0x0093D000 开始 结束0x012DDff0 长度9A0FF0
) P: H R4 m+ K/ s5 B* j/ I
; d& e) o3 ^7 @, ~" @; a+ `3 a将两段内存导出用ULTRA EDIT 查询 MEID 和ESN 获得所在行首的地址如下
. J; N7 x2 r2 f+ ?) _+ r& n" L- {& J3 C/ i' t
iMEID
0 o8 Q, J8 ?: x& @$ b4 S% A; j1 P起始 0x2020006 g O2 e* t# Q! j7 G; S
行偏移量 0x37f30 0x37fe0 2 0x38010 0x38020 0x383f0 0x38400 ( y# f3 G4 B* \& j' _
行绝对地址 0x239F30 0x239FE0 0x23A010 0x23A020 0x23A3F0 0x23A4003 G% L+ |2 x, f# n* T! x7 x" F
+ L9 n$ E1 S- y M, d% N7 K7 p
起始 0x0093D000; ?2 A; N5 N8 B3 M% ] d
行偏移量 0x11f340 0x1687b0 0x5ebb20 0x5f0890 0x6f0c30 ; a' G; g0 ~7 b. |6 D, S, B
行绝对地址 0xA5C340 0xAA57B0 0xF28B20 0xF2D890 0x102DC30
6 @ j, C% h' S+ \5 Lesn8 E& R! I# W- y: P4 K
起始 0x202000
6 Q, l+ N c9 \9 ^偏移0x38340
. `7 X1 D- b- q% [; K绝对地址 0X23A340$ b0 v% E+ }6 M, g
9 ]' C) {* F! y1 i6 X行起始 0x0093D000
: t( y1 w9 ?. V) b2 w, t9 m* }" U行偏移量 0x11EEC0 0x11F350 0x125610 0x1362C0 0x149180 0x1700F0 0x75E2A0
2 v4 M9 o8 o2 z' r$ v8 y, [行绝对地址 0xA5BEC0 0xA5C350 0xA62610 0xA732C0 0xA86180 0xAAD0F0 0x109B2A0) U" q! v. s; z" K2 h
{3 B z. X8 b0 Q' l) E3 O7 O' D) s3 H Z3 q: }8 P
上述行地址有的在网友给出的地址表中,有的不在。
) u' Y8 g" g( }# A$ Q1 A; h' N/ [对上述地址清零后,使用RequestNVItemRead meid 仍然显示本机MEID,证明无效。
9 M+ d& x2 S' J" p-------------------------------------------------------------------------------------------------------------1 }0 _/ K' q. E# k: u- d3 U
这也是我在本次MEID清零中,百思不得其解的地方。扫描内存,清零全部目标地址后,仍然失败。
5 N2 A# b, Q5 E' r我怀疑,在清零的过程中,系统把MEID或者ESN写在另一个或几个新地址上,而这个写操作是登入QXDM professional之后执行的。
, m0 R% |9 l, k+ S在导出内存的时候,新地址上的值还不是ESN或者MEID。按此考虑,操作如下* y" L& x! H4 W3 P
(1)连接QXDM professional,meid_cd 设置为1,对所有第一遍内存扫出的MEID和ESN目标清零,然后MEID_cd设置为0.
- Q8 \& V' S5 F. F这时候 RequestNVItemRead meid 仍然是本机值,ESN已经为0.
! Q- X- ]8 ?: o2 x" X" \(2)退出QXDM professional,关闭屏幕右下角蓝色地球的图标,释放com口。手机不要重启,不要动。: ^/ h/ C8 T/ F+ ^! [1 O8 Q7 Y
(3)用UNIcdma重新导出两个关键地址段内容文本,用ultraedit再次扫描MEID 和ESN。
, X) `( Q& r$ M( _6 H$ r结果为:第一遍扫描中的MEID和ESN的地址均为0了,但MEID出现在了第一遍扫描结果以外的地址上,如下
4 {8 ~/ h$ ~5 J7 DMEID
. g' l& j1 [6 {) J起始 0x0093D0000 g6 K: B1 i# \
行偏移 0x8e2620
6 Z! @& f1 [- z8 u7 B+ V行绝对地址 0x121F620/ ^3 L, p3 I8 f" [
(4)关闭UNIcdma, 重新登入QXDM professional,修改meid_cd=1, 清零行0x121F620上的MEID,修改meid_cd=0.
3 J3 a) L) f) U, X+ ` L执行RequestNVItemRead meid 确认meid已经清0.# R6 t: r2 A; D# t2 ^5 U
) {" y( g( m( J* K4 d8 i- a
剩下工作就是写入ESN等数据,在此不再重复。9 b# T( `3 ?/ ~$ [+ m- ]% ?# \) O
说明:(1)我给出的偏移地址和绝对地址是行地址,MEID就在这行上,但未必是本行第一个字节开始。8 P$ l( I* b i* y7 {5 q' D# L% _
(2)整个操作过程中,手机始终与PC保持mpt diag连接。不要重启。
/ ~ a9 Z2 }6 w4 K希望本文对大家有所帮助。! q" V1 e# @" m1 y* F" u
1 s2 J6 r' ^% O% M9 P/ j% J$ G
[ Edited by oni on 2010-6-1 11:19 ] |