|
最新版本见这里 http://www.treo8.com/bbs/thread-161408-1-1.html
6 O* F5 k6 g9 p9 M9 L8 A( ~# P D1 W. U$ _. Q+ b, R, i& J
Palm pre上,MEID无法清零,可通过直接在NV内存中修改ESN来解决,原理在这个帖子http://www.treo8.com/bbs/thread-152038-1-1.html中已作讨论,这里不再赘述。然而,ESN一般要通过QXDM来修改,在没有电脑的情况下就做不了。现在,ESN Modifier v0.1诞生了,此为Linux原生程序,在pre直接安装运行,替代QXDM并实现自动写入,彻底解决MEID无法清零问题。
! }3 i$ G/ W1 \5 n4 h. _, i* O+ I$ b3 j
一、功能描述; _ z' Y9 k2 H$ M- w, @
可以Daemon模式安装,并以你设定的时间间隔自动检测ESN是否恢复为原值,如是则作修改,否则不做操作;也可以手动模式安装,在ESN变回原值时手工去修改。
# p1 i! s( Z1 f& g6 s! S6 B/ N3 ` H; R
二、适用范围
! f$ p( @5 Z6 `# J- A- k( z) Q本程序在cdma palm pre上,rom版本为1.35--1.4.1.1测试通过,相信在pre plus、pixi、pixi pre上也可行,但必须先确认内存地址;本程序跟gsm机型无关。
1 u+ `! F. j: M# c% i! K1 h& X& e+ Y0 _; u' |
三、安装步骤,8 N6 ^- ~. Q& t9 `0 O& q
下载附件em0.1.rar并解压,pre进入U盘模式,把安装目录em0.1放在U盘的任意目录上,进入Linux命令行(putty、telnet、ssh、terminal等都行),转到安装目录下,如:cd /media/internal/.../em0.14 T9 y( V5 L9 W; O
9 L9 g$ ?" A" n安装:
! b8 x3 g. C& a1、Daemon模式
) `3 d1 x+ X/ A& ~4 o$ g2 N1 ^执行:sh em-inst d
: Q$ O4 J( Y1 K0 S$ ]. x. V/ S1 Q) m9 n9 R5 _2 r
2、手动模式
0 @& W! l8 A& f4 C! \4 X执行:sh em-inst
u" P) R1 T/ Y0 `! H
+ f' Y' a/ Q" j& j卸载:
2 @8 D! V9 d( @+ w, R0 U执行:sh em-uninst8 E( ^. K2 x9 @! S! ^! s2 X: A
9 k' ~0 p3 R \1 E# a% f& G说明:安装后请先编辑配置文件/media/internal/esn.cfg,再重新启动;以一种模式安装后想改成另一种模式,可直接安装,无需先卸载;无论用那种模式安装,都使用相同的卸载程序;卸载时不删除/media/internal/下的esn.cfg文件,重新安装也不会将其覆盖,如果你想彻底清除,请手工删除。# v- k+ A4 [3 Q( c
) z% z) G& X1 ^, Y% [; t$ A" m" z3 V四、程序文件说明
# @+ u! l ]! a' x1、esnmodifier:主程序,安装在/usr/bin/下7 ~3 P, v" y. z# ^) l2 U
2、esn.cfg:配置文件,安装在/media/internal/下,文件格式如下:- [START]
, N5 n: _% @' r4 u; X( `$ a - [ESN]=0x801A2B3C //Your original ESN1 u: P. ~4 x/ _- V" x- a! B* Y, x
- [NewESN]=0x1234ABCD //The ESN you want to write in NV ram8 S I7 h7 _# s) K: B4 q' ^+ {2 V
- [Interval]=15 //The interval for checking ESN in daemon mode(5--120 seconds)$ P# w' o% e9 d4 L' H8 `0 Q
- //Less than 10 addresses in per radio version
* X( x% M% ]7 S3 y0 Y) M% q& m3 f - [418] //CC1.3(418): Rom 1.3.5--1.3.5.1
& [, }; P: N/ r5 f' ~' n - 0x00A63EE86 h- F" \9 p) J5 f: n
- 0x010B4160
* D' x) q- y" ^* i L - [510] //CC1.4(510): Rom 1.4; |# L4 e: `% B* `) {
- 0x00A63EE8+ x, S4 j. u8 E, y
- 0x010B4140# ~& ^; _. ^/ s# i& R% z, ]7 x/ E
- [514] //CC1.5(514): Rom 1.4.1.1
3 z1 O6 K0 J! Q t4 F4 j; v - 0x00A63EE8
h/ U. O, x: J& x5 B& k - 0x010B6A045 ]2 d, d; s5 }/ e# T2 l6 @4 Z ~
- [END]
复制代码 [ESN]为你的原始ESN值,请把0x801A2B3C替换为你的原始ESN,之所以设置这个值,目的是为了防止误写地址,程序会先校验地址是否这个值,如果是才修改;[NewESN]就是你要写入的ESN了,请把0x1234ABCD替换为你要写入的ESN;[Interval]为Daemon模式下检查内存地址的时间间隔,单位为秒,取值为5--120(大于120取120,小于5取5),这个参数普通模式无效;而数字标签就是radio的内建版本号了,看注释应该就清楚了吧,程序会自动检测出你当前的radio版本号,去和数字标签匹配,取下面的ESN地址,为什么每个radio只有两个ESN地址呢?没错,只需两个就够了,以1.4.1.1rom为例,radio版本为CC1.5(514),ESN地址有6个:0x00A63EE8,0x00A6A64C,0x00A8E20C,0x00AB52AC,0x010B6A04,0x0123D11D,你当然也可把6个地址都加上去(程序支持10个地址),但没必要,只需以上2个就够了,而且最好也不要6个全写,这样就不易变半砖;可以看出,如果以后升级rom,radio版本变了,你只需自己按这样的格式把radio的内建版本号和相应的ESN地址填上去就可以了,版本号可在pre上的DeviceInfo->More Info的FIRMWARE查到;而[START]之前[END]之后,你想写什么都可以啦。主要,文件格式不要乱改,特别是0x不能省去,而且x一定要小写,文件可在U盘模式下在电脑上用ue等编辑器编辑(由于该文件是在pre上用vi编辑器做的,在电脑上显示后面的注释没有对齐),你也可以在pre上用Internalz来编辑,或在Linux命令行用vi编辑。
V& c$ N: R, C" d5 x! R. s
1 `$ u& I- J w! N3、esnmodifier脚本:启动脚本,安装在/etc/event.d/下,Daemon模式内容是这样的:- start on stopped finish
- ~7 S% R" {. s: l - respawn0 Y" W) [0 v8 Q b& a* }- k5 s* E
- exec /usr/bin/esnmodifier -D( g0 S" u5 V. ^) V
- pre-start script
2 j7 X: u* z4 W. z7 V$ k4 r0 h - /usr/bin/PmModemInfo5 i! v# L% `* w% ^) r, H& o
- end script
复制代码 而手动模式下内容是:- start on stopped finish8 V3 y/ N! a# E, H( I" I
- script
/ v- ?2 a% K- c T6 O - sleep 50
* P; Z7 d0 n# {* D4 d/ f - /usr/bin/PmModemInfo
4 [, H1 Z) O8 @) h- e - /usr/bin/esnmodifier
7 ^# A7 {$ r% D {: ]- R3 |. B - end script
复制代码 Daemon模式和手动模式的区别仅在这个文件了,你可能注意到PmModemInfo了,这个是系统自带的,有什么作用呢?在系统启动后,没运行这个程序的话,无法读取diag端口数据(写没问题),而这个程序在命令行运行时什么都不显示,我不知道它做了什么,只知道它会把diag端口“激活”,而PmModemFactory和运行一次mpt d、mpt x也有相同的效果;手动模式下加了句sleep 50,延迟50秒后再启动程序,因为启动时电话模块也在工作,太快写入ESN会又变回原值,我试过设为30秒不行,40秒才可以,所以设为50秒应该是比较妥当的,而实际上,即使设为50秒,电话可打通后,pre还要过1分多钟才启动完成呢,Luna的启电话动真是太久了,这分多钟会漏接电话而pre上没有记录(应该是所有的pre都有这个问题),所以你可根据实际启动时间把sleep设得更大,以避免漏接电话的现象,而这个也可自己加到Daemon的启动脚本中,放在script中。当然,这些你也可以不做,按默认的来就行。
( v/ T( o ?, q3 o% l, w( v! s: F
$ l* \1 R2 D+ e" l4、com.tree.esnmodifier目录:安装在/media/cryptofs/apps/usr/palm/applications/下,这并非webos程序,而只是在pre上生成一个叫ESN Modifier的图标,连接Linux程序,用于在手动模式时点击进行手工写号,点击后图标会变亮,之后没其他信息,而Linux程序会在后台被执行,你可用##3282#查ESN来验证;这对Daemon模式来说其实不太必要,你可保留,也可用橙色键+点击把它删除。
3 z" Z% i E- h5 S" k# U/ U) ~+ k1 n! f d, \; W8 {' \: X. T( y( U# x
五、使用体会$ h/ ^: f1 v0 q4 x! `
先列举一下几种在pre上会导致ESN恢复的操作:
) ^4 Y+ w: J8 M/ |1、重启# L) V. i7 v q! T' \
2、打开飞行模式后再关闭飞行模式
p9 E1 i5 H7 s- Z3、进入U盘模式后退出# u- M R( g6 ?. R* H6 J) B2 O
4、在拨号面板中键入##SPC#(SPC一般为“000000”); c8 X0 P2 D/ V$ {2 g; u
5、Restart Java,preware中安装某些软件可能会提示,Luna Manager中也有该选项
+ C/ J/ W* r2 w5 m# X/ C# H6、其他的如Device Info中的Erase操作和##786#中的Reset就更不用说了,Reset这个不要随到便操作了
! N9 `$ D$ s' q, y) d; L6 _
2 ~- [3 V9 E% y0 [' h$ W此外,在电脑上QPST、QXDM、或CDMA Workshop上的一些操作也会导致ESN恢复,在此不作详述。
+ N( L0 ~. c/ g$ ?4 t# \
/ C0 ^; B. X5 k! r; D
: {; d2 t- i$ E, _* M% h1 z2 Y用手动模式测试2-5操作时,打出均没问题,而接入时,偶尔会出现号码已写入后,提示电话关机或无法接通,具体原因不明,解决的办法就是随便拨一下号来“激活”一下,如拨10000,也可打开1x数据连接。如果你不放心,最好在写号后先拨一下号,当然,如果你的1x一直开着,那没问题。而在Daemon模式下,时间间隔设为15秒,测试2-5操作,只要等15秒后(有时不用),再过多几秒,都能正常接入。应当注意的是,在手工写号时,要等到信号恢复后才可写入,否则可能写不成功,可反复重写。此外,你也可在Linux命令行下执行esnmodifier写ESN,程序会给出一些反馈信息,以帮助你了解写ESN的过程。; X3 x2 I8 v; a
9 p6 S, y; f( n; l
结论:强烈建议使用Daemon模式,把Interval设为15秒0 i$ S' b3 z: Q
. M% m5 K' Y- e: e) e, v六、下一版本设想
7 N) J6 \6 p+ K& s$ T这两天突然想到,配置文件可以不包含radio版本号和ESN地址,因为有效ESN地址的范围不大,ESN可在一定范围内由程序自行搜索,这样以后每次升级rom后就无需再编辑配置文件了,当然,还需测试看程序运行时间是否可接受再作决定。8 G3 A* I+ ^! U
8 l9 v# R! K% x. W$ m4 W
七、FAQ8 b1 A' U. m4 Z9 e
Q:我的rom版本是1.3.5以下的,是否可使用ESN Modifier?
: W/ `8 \$ a7 D# \2 V2 a( w7 g \A:可以,但你必须先查出对应版本的radio版本号和ESN地址,填入/media/internal/esn.cfg文件中,另外,com.tree.esnmodifier默认是安装在/media/cryptofs/apps/usr/palm/applications/下的,但即使你把它放到/usr/palm/applications/下估计也不起作用,因为应该是1.3.5后才支持把type设为game模式来运行Linux程序的,之前的版本应该不行(没试过),想手工写的话请使用Terminal执行esnmodifier。
4 S2 R) P$ G9 U5 n+ L+ T% E8 F1 u+ x$ _- d! [
Q: 我是改本机的,要怎样使用ESN Modifier?) E3 v8 y# s5 a! G# _8 E, |
A:必须先将MEID恢复为出厂的初始值。1 j* S* X8 U6 ~; _0 Q* X q
1 r% I6 q9 K" }
Q:安装ESN Modifier后,还需要打MEID补丁吗?
% R$ C- ^9 t! }' h/ \A:不需要,因为你的MEID依然保持原值不变。激活、Update、App Catalog等操作都没问题。1 B; X9 R: ]/ M- Z8 P) b
8 P% M: B3 o1 G4 v* l( j
Q:使用ESN Modifier会导致变砖吗?
# `, w7 k8 y% ^" ]! TA:按默认esn.cfg文件设置,只修改2个ESN地址的话,可以说变砖的概率几乎为零,而实际上即使所有ESN地址全改,在正常操作的情况下变砖的可能性也不大。你可以随便升级或降级rom,甚至是执行传说中可怕的##786#的Reset(当然还是不建议,会把你所有数据全部清除),也不会导致变砖。+ r! {6 N: K2 l9 D9 u: X4 H( v
% p7 A; |0 J& h0 z2 G" _
Q:什么是Daemon?
) T" V& a7 t( G6 X p% P. SA:守护程序,简单得说就是常驻在内存中,无需你干预就能自动执行任务的服务程序。
8 E8 j# S- U6 A9 z* i; i
5 s1 Y- F3 x4 h+ o1 w- OQ:ESN Modifier在Daemon模式下影响运行速度吗,会耗电吗?+ w0 @& e+ A, \- U- O3 R
A:ESN Modifier占用系统资源极小,不影响运行速度,耗电更是感觉不出,我把Interval设为15秒,充满电后,前7,8个小时待机都能保持在100%,跟安装前根本没有区别。
4 u0 N% [5 l7 I. l: D, B0 f& B) A3 j" ^. W+ o+ n! ?
Q: 安装为手动模式时,手机启动后要先手工写号吗?
* F5 ]; ~& J+ c+ b' _$ Y6 iA:不需要,2-5操作才需要手工写号。
" X9 z; }6 ?6 v+ e8 B$ n6 B: b: g& J# z6 O, B4 l$ A; ~' N. A9 C
Q:USB Passthrough要设为Diag还是None呢?
6 [1 g) }) d: A, GA:都可以,怎么设置都不会影响。
# s/ H& ?2 P* B3 e4 f- o6 Y5 r0 g4 V2 P! T7 J- J) R1 e+ V
Q:ESN Modifier运行在Daemon模式下,还能使用QXDM、CDMA Workshop等工具吗? x& t8 R+ `5 W3 T( y0 O
A:可以,但在时间间隔完成时,会有延迟现象。特别是在操作QPST或CDMA Workshop时,会因为与Daemon的冲突而造成读写失败,需反复操作,建议在操作这两个软件使,将[Interval]的值设得大一些,比如120秒,然后在Linux命令行pkill esnmodifier后再操作,等完成后再重新设置[Interval]的值。
, x4 m3 e8 P( n. w( K
! H( c3 P2 M$ L2 t0 L7 k/ EQ:在编辑esn.cfg文件时,如果填错ESN地址,会导致误写NV数据吗?, ]! u" O& M. w2 [& |, ?& U
A:不会,因为程序采取了安全机制来避免这种情况的发生,在写入之前会先检查该地址的值是否为原始ESN,是才做写入操作。* X2 }% C/ x2 q F* ~+ T0 s3 [8 b
9 A5 \4 h7 S0 \$ m/ L/ F+ U0 j! B4 x( S
Q:我在Daemon下修改esn.cfg怎样才能生效?, ~! j' T! t/ q: t, r9 Q* W' E! k! I
A:重新启动或是在Linux命令行键入pkill esnmodifier,再打开关闭一次飞行模式。, @; f* G; u: p! k
# }. x- s5 p5 k$ R& @
Q:ESN Modifier和其他程序有冲突吗?5 P! }- {* ^) }) p7 ^1 K, u
A: 目前尚未发现。3 }4 i$ j9 x6 J B2 Y& i
6 g# A: g% d+ E# |) ?9 Y1 v
1 z0 \4 N9 i3 E& o g
各位同学,请将使用测试结果在本帖回复,有pre plus或pixi的同学,请帮忙确认ESN地址是否一样,以供其他人参考。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
×
评分
-
查看全部评分
|