本人09年购买PALM PRE 改本机 成功清零,教程见本网站,不再重复。
; f& E j" f6 v) l2 N2010年公司手机换卡,imsi,esn等全变了,需要重新写ESN,清MEID。. w: w v+ r$ Y' {% G, \
这次清零耗时3个月,反复尝试各种版本ROM(1.0.3 一致到1.4),用网友提供的地址清零MEID和ESN,均不成功。8 p- j5 k& H4 D) ~
主要表现为( R0 K! D G9 U3 E" ]
(1)有的ROM ,MEID即使全部提供地址均清0,但RequestNVItemRead meid 仍为原值。
, q6 C( k# T- i+ X+ X0 I(2)有的ROM,MEID个别地址始终无法清零。一旦执行RequestNVItemRead meid,即恢复原值。
/ n5 o# ?- ^' o(3)提供的MEID地址中,有些存放的不是本机的MEID,有的是全0.
: G9 |. _( O/ C+ v9 t* r2 W(4)ESN能够成功清0.' o6 X. N% D! j9 I0 V
因此
) |' b/ _3 c# U 在1.0.3版本下,采用UNICDMA3.1.4 进行全地址扫描,步长1024。结果地址段如下。) y# c/ D, k9 w7 x( I: s
23:04:24 : READABLE area at 0x00000000
% I% ~& _% ?0 ?9 z) p23:04:27 : Unreadable area at 0x000010004 e- ]; D, [) T& Y. d5 x& G- b$ ?
0:49:56 : READABLE area at 0x001FB400 0 Z2 k% z3 w7 t7 P* K' i7 p& s
0:49:59 : Unreadable area at 0x001FE000 * d2 q8 s6 h P6 W7 Z: q
0:50:21 : READABLE area at 0x00200000 * p+ U4 W$ U5 m' k
0:50:24 : Unreadable area at 0x00201000
}- e! T5 d/ ^9 T- ?0:50:33 : READABLE area at 0x00202000 ( t& h3 o/ Z. m8 ~( G9 ^
0:50:59 : Unreadable area at 0x0093C000 ~9 h, w: V8 q2 T. |% A1 N
0:51:08 : READABLE area at 0x0093D000 : H# G8 @( i7 Z# L' O2 F
0:51:42 : Unreadable area at 0x012DE000 0 O1 ?: b6 C+ V! w6 o( G& Z
6:26:11 : User break at address 0x01923400% u* K: ^( d: W, h- e* Z2 P' G2 ~2 d
3 ^( W' U- ]# A& C
) `' P& S( }. k其中两个关键地址段中存放了有效的ESN和MEID信息,分别是
" p" Y/ X) ]5 w2 U& O( N 0x00202000 开始 结束0x93Bff0 长度0x739FF07 _4 E% m: k6 E/ E% U
0x0093D000 开始 结束0x012DDff0 长度9A0FF0
4 T1 }4 b" V9 G+ R+ Q# a8 W3 t9 N k3 f% @
将两段内存导出用ULTRA EDIT 查询 MEID 和ESN 获得所在行首的地址如下
6 G* n2 L* K6 N
1 C- L8 y7 l+ M; L6 e( c6 n0 @iMEID : k- v( U( ` N7 v$ m! J
起始 0x202000# y, e/ A! t' l6 ^
行偏移量 0x37f30 0x37fe0 2 0x38010 0x38020 0x383f0 0x38400 & p" s& x: ]5 h
行绝对地址 0x239F30 0x239FE0 0x23A010 0x23A020 0x23A3F0 0x23A400
" Y$ G' p& ]2 u* E! ^+ n
. F" |, x5 A) |* u1 I( `3 y起始 0x0093D000; J3 K: p8 Q/ A1 `7 w
行偏移量 0x11f340 0x1687b0 0x5ebb20 0x5f0890 0x6f0c30
, I0 e& S5 v; x! ?( y行绝对地址 0xA5C340 0xAA57B0 0xF28B20 0xF2D890 0x102DC30
( c$ _5 X3 t* {" A: [0 d7 [/ ]esn/ x7 E. R3 T' b! d, U
起始 0x202000
9 P0 D. m* n# p& ?偏移0x383408 Q9 R P7 S+ D z
绝对地址 0X23A3401 p& `- f' c0 o H
H G' z' n" B" o
行起始 0x0093D000
- F1 Q6 q0 M9 w; l' W) M行偏移量 0x11EEC0 0x11F350 0x125610 0x1362C0 0x149180 0x1700F0 0x75E2A0! o' z7 E( d. |6 c' `! e
行绝对地址 0xA5BEC0 0xA5C350 0xA62610 0xA732C0 0xA86180 0xAAD0F0 0x109B2A0' i9 D1 S, G+ e6 Y' x( G
: q6 c0 O/ j6 }/ `: ~: g
7 r9 M+ B) x5 x- z9 k8 H上述行地址有的在网友给出的地址表中,有的不在。: a" Z- n$ |( o7 C$ v0 N
对上述地址清零后,使用RequestNVItemRead meid 仍然显示本机MEID,证明无效。, \9 ?" g7 d e! y% ? G& |/ ?
-------------------------------------------------------------------------------------------------------------; w$ t* U5 L4 T
这也是我在本次MEID清零中,百思不得其解的地方。扫描内存,清零全部目标地址后,仍然失败。
3 Z: T; C" P! C u9 i2 ?我怀疑,在清零的过程中,系统把MEID或者ESN写在另一个或几个新地址上,而这个写操作是登入QXDM professional之后执行的。8 W6 e" ]! F; E/ \. u' A+ v
在导出内存的时候,新地址上的值还不是ESN或者MEID。按此考虑,操作如下
- M! C+ b, J1 n' x5 a% m4 h(1)连接QXDM professional,meid_cd 设置为1,对所有第一遍内存扫出的MEID和ESN目标清零,然后MEID_cd设置为0.& Z3 X6 i+ |$ B: I% D. ^' _
这时候 RequestNVItemRead meid 仍然是本机值,ESN已经为0.
7 w$ j" ]. J! `$ `(2)退出QXDM professional,关闭屏幕右下角蓝色地球的图标,释放com口。手机不要重启,不要动。
; f9 j f X# J; k7 |. |7 S(3)用UNIcdma重新导出两个关键地址段内容文本,用ultraedit再次扫描MEID 和ESN。
9 w! P- J1 P8 K# X, x0 C5 A; ?; Q5 d结果为:第一遍扫描中的MEID和ESN的地址均为0了,但MEID出现在了第一遍扫描结果以外的地址上,如下
% g0 w! J& t6 n; s& s! CMEID / F) ^3 V* P& ~6 W
起始 0x0093D000
1 b4 r# O, {0 p- c行偏移 0x8e26204 i/ v; V# P0 u$ h, ^1 K
行绝对地址 0x121F620% B4 ]1 Z: b7 R. H- O
(4)关闭UNIcdma, 重新登入QXDM professional,修改meid_cd=1, 清零行0x121F620上的MEID,修改meid_cd=0.$ o1 `9 H1 a$ Z0 q& j5 w8 {
执行RequestNVItemRead meid 确认meid已经清0.
9 k3 Y/ Q) f( c3 E' V' }; b9 d) _5 h/ V
剩下工作就是写入ESN等数据,在此不再重复。
; D0 H% _* ?# v# o0 p0 |说明:(1)我给出的偏移地址和绝对地址是行地址,MEID就在这行上,但未必是本行第一个字节开始。) x% t, s. i8 T# y4 v8 X" H
(2)整个操作过程中,手机始终与PC保持mpt diag连接。不要重启。6 G0 P" g( p3 a) T; l
希望本文对大家有所帮助。
: W/ R& a, H. N1 ]/ U
( \* K9 c! s% W[ Edited by oni on 2010-6-1 11:19 ] |