本人09年购买PALM PRE 改本机 成功清零,教程见本网站,不再重复。
$ @ W" N: x8 ?4 @! U2010年公司手机换卡,imsi,esn等全变了,需要重新写ESN,清MEID。% c; e- E3 V+ y' U$ _) `- @1 ~
这次清零耗时3个月,反复尝试各种版本ROM(1.0.3 一致到1.4),用网友提供的地址清零MEID和ESN,均不成功。3 i3 `# R6 E( ~1 m) g# g* h: p
主要表现为. R8 _& \* S/ w% Q6 T
(1)有的ROM ,MEID即使全部提供地址均清0,但RequestNVItemRead meid 仍为原值。
( Q1 C+ I3 }+ \4 C3 N: l- }$ ](2)有的ROM,MEID个别地址始终无法清零。一旦执行RequestNVItemRead meid,即恢复原值。( r6 ?, G; s9 I0 e
(3)提供的MEID地址中,有些存放的不是本机的MEID,有的是全0.
7 _5 ^% L9 B" B4 f2 o3 }# Y(4)ESN能够成功清0.
0 R) R& |7 s& v) q6 ~8 b因此
: C- v# O$ w* l- K$ W3 y L8 b+ U/ o 在1.0.3版本下,采用UNICDMA3.1.4 进行全地址扫描,步长1024。结果地址段如下。
y# R1 J9 h6 \. G3 f; f0 ]0 I5 b23:04:24 : READABLE area at 0x000000009 X7 S4 V9 {& F* ?5 s7 o
23:04:27 : Unreadable area at 0x00001000
M/ z+ p8 Y; r& ]/ A1 ~3 o9 M0:49:56 : READABLE area at 0x001FB400
) j3 h- |* Y7 D% t' @; T0:49:59 : Unreadable area at 0x001FE000 + i6 d3 J9 `; G0 E& t
0:50:21 : READABLE area at 0x00200000
$ f# S& B9 h% e1 ~8 W. \/ z0:50:24 : Unreadable area at 0x00201000! J& J8 y- d# v! W) N; P. S
0:50:33 : READABLE area at 0x00202000
( y. r: o' ^: E: _0:50:59 : Unreadable area at 0x0093C000 0 C) Y( p d: F M! m
0:51:08 : READABLE area at 0x0093D000 % M% x) A1 l( @" T* @5 b9 H/ m* o/ W" G
0:51:42 : Unreadable area at 0x012DE000 9 l7 k5 e e% I2 P7 J
6:26:11 : User break at address 0x01923400
; ?) G8 T: Q3 U. Y4 z4 f2 N- q7 J' n9 r. R% k0 Y: v1 @5 g$ r+ p3 @( A
3 D" g3 z5 f* s Q0 K其中两个关键地址段中存放了有效的ESN和MEID信息,分别是
& u: Q$ q( w! K' \. {& }9 N) v 0x00202000 开始 结束0x93Bff0 长度0x739FF02 B: m# @5 u5 q1 l; o6 G
0x0093D000 开始 结束0x012DDff0 长度9A0FF02 _: B/ S5 ?, X/ `( U- L, A: ~
+ x5 J; n W: r: o2 d! v( v* K% B将两段内存导出用ULTRA EDIT 查询 MEID 和ESN 获得所在行首的地址如下
5 W% M6 A6 I( J% i( F% A Y+ @, H
+ a& [, w8 ?$ L* W K ~+ c: ?iMEID
" ]! a2 c5 h9 k' J起始 0x202000- J! H3 g9 d* k# h1 G% p0 k
行偏移量 0x37f30 0x37fe0 2 0x38010 0x38020 0x383f0 0x38400
- r* E& R6 ]+ B" p+ Y# c" k行绝对地址 0x239F30 0x239FE0 0x23A010 0x23A020 0x23A3F0 0x23A400, m- l: k$ y: [! ^
7 g& t' z6 S7 p1 F起始 0x0093D0007 ^, r- o9 `" ]& u- u# H
行偏移量 0x11f340 0x1687b0 0x5ebb20 0x5f0890 0x6f0c30 L q- U. c# ^) q! m9 P
行绝对地址 0xA5C340 0xAA57B0 0xF28B20 0xF2D890 0x102DC30# I7 A/ P% i) h
esn) A+ t8 @! s, ~, k: }2 B
起始 0x202000 I% e1 O8 m) `6 B
偏移0x38340+ e& c) P: f8 B$ X$ }
绝对地址 0X23A340
l; _6 h% {3 n! \( R7 N% S, n3 {, @+ f1 ^/ G
行起始 0x0093D000/ n2 h: ]. m; L; i
行偏移量 0x11EEC0 0x11F350 0x125610 0x1362C0 0x149180 0x1700F0 0x75E2A0
- R# E9 F# s; s. j6 f+ ?行绝对地址 0xA5BEC0 0xA5C350 0xA62610 0xA732C0 0xA86180 0xAAD0F0 0x109B2A0
* a7 P: M9 O0 H' N/ A
4 d ~& ?3 d$ Q
- h+ L8 q* C* a4 J( c/ f+ `% }上述行地址有的在网友给出的地址表中,有的不在。
/ x6 _% V4 i3 ^; h6 X对上述地址清零后,使用RequestNVItemRead meid 仍然显示本机MEID,证明无效。
- q2 U! X% I, q; `$ R: d) i9 T7 l-------------------------------------------------------------------------------------------------------------2 v2 M0 p# f2 Z
这也是我在本次MEID清零中,百思不得其解的地方。扫描内存,清零全部目标地址后,仍然失败。/ k7 m x6 \( i" Z: k7 q$ ^8 m( e3 h- k
我怀疑,在清零的过程中,系统把MEID或者ESN写在另一个或几个新地址上,而这个写操作是登入QXDM professional之后执行的。/ }/ n7 ]4 l0 F1 D/ G1 h* Y
在导出内存的时候,新地址上的值还不是ESN或者MEID。按此考虑,操作如下, H* p* g0 }4 F/ h
(1)连接QXDM professional,meid_cd 设置为1,对所有第一遍内存扫出的MEID和ESN目标清零,然后MEID_cd设置为0.
: X# D9 m( ^- i8 w$ V% z, t这时候 RequestNVItemRead meid 仍然是本机值,ESN已经为0.1 g) ~1 w6 b) L% P: v1 j
(2)退出QXDM professional,关闭屏幕右下角蓝色地球的图标,释放com口。手机不要重启,不要动。
- X) \4 z7 D9 Z# Y; `(3)用UNIcdma重新导出两个关键地址段内容文本,用ultraedit再次扫描MEID 和ESN。1 ?! O+ X- `3 D( E; Q
结果为:第一遍扫描中的MEID和ESN的地址均为0了,但MEID出现在了第一遍扫描结果以外的地址上,如下
2 u# `# z$ z; z7 }: ZMEID 0 i: J, D8 ~9 ]& e
起始 0x0093D000
9 F) u4 O" B. A: t- p) n% ~ r行偏移 0x8e2620( W3 x* a0 z* P2 k. g, H
行绝对地址 0x121F620
- q L, Q& ?+ U5 r' B6 q' K) `+ ~) @(4)关闭UNIcdma, 重新登入QXDM professional,修改meid_cd=1, 清零行0x121F620上的MEID,修改meid_cd=0.+ g9 p* U( N* x7 S/ N, u; Z" O
执行RequestNVItemRead meid 确认meid已经清0./ |8 J$ Y) w+ e; M1 o ~5 j
; h' F9 P: F3 x/ q' _
剩下工作就是写入ESN等数据,在此不再重复。
0 }/ l. {# c, l说明:(1)我给出的偏移地址和绝对地址是行地址,MEID就在这行上,但未必是本行第一个字节开始。- D( |& ^! M' P2 W1 O* J
(2)整个操作过程中,手机始终与PC保持mpt diag连接。不要重启。1 J# U' |) A% @7 ]4 f' b
希望本文对大家有所帮助。' [0 N1 ~( ~" K! A- `+ |) a
- @+ o2 l+ l, y0 w6 G* M Z
[ Edited by oni on 2010-6-1 11:19 ] |