本人09年购买PALM PRE 改本机 成功清零,教程见本网站,不再重复。, W+ P. D1 Q) N1 X; S0 d5 d
2010年公司手机换卡,imsi,esn等全变了,需要重新写ESN,清MEID。# J% y7 K5 r& c# D+ H9 L
这次清零耗时3个月,反复尝试各种版本ROM(1.0.3 一致到1.4),用网友提供的地址清零MEID和ESN,均不成功。
' g8 }, Z' U {' y' ^! L* N+ L主要表现为
$ k2 ~/ A1 d8 Q* }(1)有的ROM ,MEID即使全部提供地址均清0,但RequestNVItemRead meid 仍为原值。
' U$ v: |; z1 ^0 z& m( S$ J(2)有的ROM,MEID个别地址始终无法清零。一旦执行RequestNVItemRead meid,即恢复原值。
. d. L7 q6 {7 n* e5 r(3)提供的MEID地址中,有些存放的不是本机的MEID,有的是全0.
7 `3 o5 C. l8 \' N. z! K3 G5 `% R3 l5 R(4)ESN能够成功清0.. l9 x. l/ `! X
因此
# }+ R+ ?/ N! S) \' o% {7 S 在1.0.3版本下,采用UNICDMA3.1.4 进行全地址扫描,步长1024。结果地址段如下。. w" r" Y3 M; i9 K5 D/ t+ ?0 h R+ U5 @
23:04:24 : READABLE area at 0x00000000( w8 G9 H- P3 f E8 c% u7 R2 c
23:04:27 : Unreadable area at 0x00001000
6 l5 M: _- ?! P0:49:56 : READABLE area at 0x001FB400
6 j) E5 `! o0 y( i; H& l0:49:59 : Unreadable area at 0x001FE000
! z( y' F" p$ l0:50:21 : READABLE area at 0x00200000
6 _$ f/ i% b. I* ^2 }1 P9 a0 M6 J0:50:24 : Unreadable area at 0x00201000
' a' w9 M) Z: {4 t C0:50:33 : READABLE area at 0x00202000 ( t/ G# o# U4 r/ D/ V
0:50:59 : Unreadable area at 0x0093C000 ; u/ d( p b6 }! c5 ~7 W
0:51:08 : READABLE area at 0x0093D000 / Z# }" i" X8 F% I& N6 N4 {1 L
0:51:42 : Unreadable area at 0x012DE000
- \( S" V" o2 y% Z6:26:11 : User break at address 0x01923400
* E: x# s* ]1 \+ h# o5 _+ z& t6 I1 D$ `6 U
, V' U8 p0 W3 j. n$ ?其中两个关键地址段中存放了有效的ESN和MEID信息,分别是
9 o1 x( L/ y# v; o( v 0x00202000 开始 结束0x93Bff0 长度0x739FF0 ^7 H3 {% }: w* F1 C
0x0093D000 开始 结束0x012DDff0 长度9A0FF0
# ~- E& w) x+ }$ z$ ], l* E* Z8 t5 ]4 Y, s/ x6 R% h1 Y
将两段内存导出用ULTRA EDIT 查询 MEID 和ESN 获得所在行首的地址如下
/ a$ U+ P. E% m$ y" O X3 Z) \. N# @% h" y# }/ B9 w) q" |2 q
iMEID
y: T. c1 j8 |& d* O起始 0x202000* c. O4 ^. x0 Q
行偏移量 0x37f30 0x37fe0 2 0x38010 0x38020 0x383f0 0x38400
# |) v5 z1 s# {! C J行绝对地址 0x239F30 0x239FE0 0x23A010 0x23A020 0x23A3F0 0x23A400
: D5 Q+ q. H- @3 g
! H ]( w {' U/ D. d6 u起始 0x0093D0006 J7 @- z" G; f1 N. E, D
行偏移量 0x11f340 0x1687b0 0x5ebb20 0x5f0890 0x6f0c30 ; _9 A- N' F! M4 k9 s# a* R
行绝对地址 0xA5C340 0xAA57B0 0xF28B20 0xF2D890 0x102DC30
2 B3 e& U* ?' h' a. Cesn
9 U; @ X, u9 g* G& N2 n起始 0x202000
% Y2 T! J7 y# A- i+ m偏移0x38340+ K; z& M2 Z6 t& C7 Z
绝对地址 0X23A340
. J+ ~- }7 T( o# l: T/ I
+ Z* S: E( Y% F行起始 0x0093D000: @4 e. K/ {) e
行偏移量 0x11EEC0 0x11F350 0x125610 0x1362C0 0x149180 0x1700F0 0x75E2A01 r" D1 G5 P! H9 H- p+ n+ o8 s3 g
行绝对地址 0xA5BEC0 0xA5C350 0xA62610 0xA732C0 0xA86180 0xAAD0F0 0x109B2A0/ \) p) N) m5 J* z
- B4 r: j$ r4 B- k1 s9 z7 a. {% o0 r% c ]" V1 }
上述行地址有的在网友给出的地址表中,有的不在。
# [& H" ], |) f( w" |# O/ U对上述地址清零后,使用RequestNVItemRead meid 仍然显示本机MEID,证明无效。. R1 \: v# p6 c- M& Z, n
-------------------------------------------------------------------------------------------------------------- `, m: ^4 F! A! L0 k2 ^1 Z
这也是我在本次MEID清零中,百思不得其解的地方。扫描内存,清零全部目标地址后,仍然失败。
2 v: J! y5 x; r1 Z" F我怀疑,在清零的过程中,系统把MEID或者ESN写在另一个或几个新地址上,而这个写操作是登入QXDM professional之后执行的。, U7 C3 A. P- ~/ e% c
在导出内存的时候,新地址上的值还不是ESN或者MEID。按此考虑,操作如下
6 @& w: o) D4 ]& I(1)连接QXDM professional,meid_cd 设置为1,对所有第一遍内存扫出的MEID和ESN目标清零,然后MEID_cd设置为0.& G% _, B+ |! d* f9 e7 u @
这时候 RequestNVItemRead meid 仍然是本机值,ESN已经为0.
( f: N, P1 o; c" M9 x' X$ D& d(2)退出QXDM professional,关闭屏幕右下角蓝色地球的图标,释放com口。手机不要重启,不要动。
, {' C7 x2 u( H3 a* A, J(3)用UNIcdma重新导出两个关键地址段内容文本,用ultraedit再次扫描MEID 和ESN。
$ o6 e# o. t/ C4 F结果为:第一遍扫描中的MEID和ESN的地址均为0了,但MEID出现在了第一遍扫描结果以外的地址上,如下
( D4 T2 b" h6 S JMEID
7 Z& Y8 t4 P, t/ K* a i, a起始 0x0093D000
, j, D: {8 a, ]1 d, Y( |行偏移 0x8e2620
# g& t9 K' N! y: y' R+ O) U$ G行绝对地址 0x121F620
6 j: C% E4 S, E. i( h$ _5 L$ k(4)关闭UNIcdma, 重新登入QXDM professional,修改meid_cd=1, 清零行0x121F620上的MEID,修改meid_cd=0.
6 @/ d1 H( s Y- ~执行RequestNVItemRead meid 确认meid已经清0.3 n) {& | E, y
0 b* M* X \3 O/ X; i3 @& c7 {$ I剩下工作就是写入ESN等数据,在此不再重复。
% X( H; U5 {5 M说明:(1)我给出的偏移地址和绝对地址是行地址,MEID就在这行上,但未必是本行第一个字节开始。
2 }1 w i2 B! l, k: D(2)整个操作过程中,手机始终与PC保持mpt diag连接。不要重启。* F) q9 D/ \/ [7 a- J' j0 I
希望本文对大家有所帮助。3 L) x) v4 @' \) w+ [; K. f
0 K8 d+ M- X1 r- ]% E) f
[ Edited by oni on 2010-6-1 11:19 ] |