|
最新版本见这里 http://www.treo8.com/bbs/thread-161408-1-1.html
: g p4 y# A0 v
& w0 L! y0 }3 t5 d0 A9 b8 [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无法清零问题。# @7 q1 G4 \0 k3 {! J6 [( M
* E2 b' @6 D' g
一、功能描述 G6 R) O* u" X: O6 B, A
可以Daemon模式安装,并以你设定的时间间隔自动检测ESN是否恢复为原值,如是则作修改,否则不做操作;也可以手动模式安装,在ESN变回原值时手工去修改。( y1 G- H! e" s/ B. E8 D
/ G, z( I g5 ?9 C/ P7 F3 ~& c
二、适用范围3 X7 u, @0 ]" h/ {
本程序在cdma palm pre上,rom版本为1.35--1.4.1.1测试通过,相信在pre plus、pixi、pixi pre上也可行,但必须先确认内存地址;本程序跟gsm机型无关。
. G q V1 i) L. u" a/ h/ i. A- Y U
三、安装步骤,
7 c' @$ W8 a v) Y下载附件em0.1.rar并解压,pre进入U盘模式,把安装目录em0.1放在U盘的任意目录上,进入Linux命令行(putty、telnet、ssh、terminal等都行),转到安装目录下,如:cd /media/internal/.../em0.1 u. G9 M8 ^. ?% G5 h
, f. g* c$ P5 e: k& c7 t安装:
$ L% [) ~2 U( b. T8 X( f1 {1、Daemon模式; W# Z, N8 r& K% Z. ^! u
执行:sh em-inst d
# e) E2 B' @ h3 _ L2 e
: M y3 [4 A% U8 i8 D( U3 z2、手动模式; K& H: F1 w) p+ p
执行:sh em-inst J9 R4 X. k- H. X: }: v9 H
4 G3 A( a/ K7 G2 @: P; G D. a卸载:3 A& b3 [# Q: j$ y
执行:sh em-uninst
. k9 f# G1 n g2 {* X/ e5 a7 L6 h% X
说明:安装后请先编辑配置文件/media/internal/esn.cfg,再重新启动;以一种模式安装后想改成另一种模式,可直接安装,无需先卸载;无论用那种模式安装,都使用相同的卸载程序;卸载时不删除/media/internal/下的esn.cfg文件,重新安装也不会将其覆盖,如果你想彻底清除,请手工删除。+ \" k; `& J$ Z) D
' c6 I) P7 t1 Y8 t四、程序文件说明
# o0 \; b" ^) W& n- P/ r1、esnmodifier:主程序,安装在/usr/bin/下
3 z9 M5 k$ T& k% a: Y, ?2、esn.cfg:配置文件,安装在/media/internal/下,文件格式如下:- [START]
4 y' h9 t) U ?3 q7 N - [ESN]=0x801A2B3C //Your original ESN
& Y/ O4 \, M" i% D" F - [NewESN]=0x1234ABCD //The ESN you want to write in NV ram! A1 B$ J2 D) ?, `; [5 ~% v' l
- [Interval]=15 //The interval for checking ESN in daemon mode(5--120 seconds)
2 O1 w; D; ]$ r% d - //Less than 10 addresses in per radio version
" @+ F. a8 m# z& x2 F: s0 E - [418] //CC1.3(418): Rom 1.3.5--1.3.5.13 P' q& g3 m! R2 G5 K* {- l1 x3 ]
- 0x00A63EE81 w) m1 k; ]3 M" y. g0 X8 W
- 0x010B4160
. e7 T E+ t$ |. z K9 N9 D8 @ - [510] //CC1.4(510): Rom 1.42 \/ U2 {- ?. H; \
- 0x00A63EE8
, ]/ E1 n: [( u- @ - 0x010B4140" `- O7 [" [& k
- [514] //CC1.5(514): Rom 1.4.1.1
4 I- J \7 ~6 F2 N" v7 v+ T - 0x00A63EE8
* t0 z0 B( k; k: z. q! V( b - 0x010B6A040 f* U. f1 c8 Z) X- v' y$ F) M
- [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编辑。: n9 Z1 |1 K+ P. @4 y
3 h2 _& U4 S2 i! u, k H3、esnmodifier脚本:启动脚本,安装在/etc/event.d/下,Daemon模式内容是这样的:- start on stopped finish
! o, [0 Y: o# K# R4 ~ - respawn
& K7 f- d3 B: `) Q" n) | - exec /usr/bin/esnmodifier -D" y% V' Z- Z! a$ L* q5 m: E# ]1 G
- pre-start script
6 j! `' S& W9 n - /usr/bin/PmModemInfo# {( J4 l6 v. i
- end script
复制代码 而手动模式下内容是:- start on stopped finish
' o5 n. @: H* v ]% ?, i - script W8 u0 K! d% s
- sleep 50
5 g* M; ~9 v$ _- c3 c. E - /usr/bin/PmModemInfo T$ z9 V; E0 Q. O5 s+ m
- /usr/bin/esnmodifier5 {/ z- c4 |/ C- X! C) ]5 n6 X
- 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中。当然,这些你也可以不做,按默认的来就行。
# F& t3 D3 k n5 m1 P; t0 I+ T7 I+ `; d3 N# O$ ]
4、com.tree.esnmodifier目录:安装在/media/cryptofs/apps/usr/palm/applications/下,这并非webos程序,而只是在pre上生成一个叫ESN Modifier的图标,连接Linux程序,用于在手动模式时点击进行手工写号,点击后图标会变亮,之后没其他信息,而Linux程序会在后台被执行,你可用##3282#查ESN来验证;这对Daemon模式来说其实不太必要,你可保留,也可用橙色键+点击把它删除。/ a) ^9 Q) ?; k* \
% t f/ B. L2 d- X" i! w: o
五、使用体会
: r" \) {% i* H2 n! E4 i6 [% o先列举一下几种在pre上会导致ESN恢复的操作: ^6 M$ J! C9 ~+ I3 J
1、重启
4 [ c ]! c3 Z1 c' x3 f2、打开飞行模式后再关闭飞行模式
/ F# D( d. w( a3、进入U盘模式后退出7 E" G% X U( V3 B9 d( w8 L
4、在拨号面板中键入##SPC#(SPC一般为“000000”)
9 h# L, q9 B9 k% {5、Restart Java,preware中安装某些软件可能会提示,Luna Manager中也有该选项
! ^) _( }. k8 c$ a1 m6、其他的如Device Info中的Erase操作和##786#中的Reset就更不用说了,Reset这个不要随到便操作了
3 Y- h) I& u9 k' U# z1 T7 W# o! d% U8 ]
此外,在电脑上QPST、QXDM、或CDMA Workshop上的一些操作也会导致ESN恢复,在此不作详述。
& B) O9 O2 S P. E/ A/ w: b
6 G( D% E! w$ b0 @
# X' P( R" U/ |2 J用手动模式测试2-5操作时,打出均没问题,而接入时,偶尔会出现号码已写入后,提示电话关机或无法接通,具体原因不明,解决的办法就是随便拨一下号来“激活”一下,如拨10000,也可打开1x数据连接。如果你不放心,最好在写号后先拨一下号,当然,如果你的1x一直开着,那没问题。而在Daemon模式下,时间间隔设为15秒,测试2-5操作,只要等15秒后(有时不用),再过多几秒,都能正常接入。应当注意的是,在手工写号时,要等到信号恢复后才可写入,否则可能写不成功,可反复重写。此外,你也可在Linux命令行下执行esnmodifier写ESN,程序会给出一些反馈信息,以帮助你了解写ESN的过程。$ g( ~* Z) s5 i; j7 z9 T) C) F7 M
' d1 }# k" M; U) @ t
结论:强烈建议使用Daemon模式,把Interval设为15秒
7 _1 q( K. M( t& q( e; j+ h7 l$ A( j/ f; q" C
六、下一版本设想4 y7 y* d% y5 s6 ^$ E" H
这两天突然想到,配置文件可以不包含radio版本号和ESN地址,因为有效ESN地址的范围不大,ESN可在一定范围内由程序自行搜索,这样以后每次升级rom后就无需再编辑配置文件了,当然,还需测试看程序运行时间是否可接受再作决定。
5 w8 m9 ~6 o5 R; W* K
2 v6 N! ]& W( y七、FAQ
/ O5 d$ `6 @4 b4 z" `9 ~& [+ X0 J1 mQ:我的rom版本是1.3.5以下的,是否可使用ESN Modifier?- v) Y; N5 e- `) P
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。8 F! z! c( q) R' G. k
0 |1 W2 ?- [$ x. E# o
Q: 我是改本机的,要怎样使用ESN Modifier?" \# m8 X/ x1 y1 q; E* `
A:必须先将MEID恢复为出厂的初始值。
N" @( L4 v4 \ \
; T1 z1 ]" S- }/ O3 |3 MQ:安装ESN Modifier后,还需要打MEID补丁吗?
. l( h6 g, `/ v, d6 B. wA:不需要,因为你的MEID依然保持原值不变。激活、Update、App Catalog等操作都没问题。; ^& K, l8 Z( L7 S+ N, {0 p
1 k7 h8 k! q% p+ _0 e* `Q:使用ESN Modifier会导致变砖吗?
8 }. o; x0 S! u" x- r0 EA:按默认esn.cfg文件设置,只修改2个ESN地址的话,可以说变砖的概率几乎为零,而实际上即使所有ESN地址全改,在正常操作的情况下变砖的可能性也不大。你可以随便升级或降级rom,甚至是执行传说中可怕的##786#的Reset(当然还是不建议,会把你所有数据全部清除),也不会导致变砖。9 V7 @4 e! B9 j. I; O' K
9 ~0 T0 Q" i4 P3 T5 u6 Z$ K; L) y
Q:什么是Daemon?+ l8 T- f* V, B, g- ]5 J6 r
A:守护程序,简单得说就是常驻在内存中,无需你干预就能自动执行任务的服务程序。
" f' Q; J: h! H9 A; M' O4 ]
. G% K+ T6 t; \. {6 i$ ZQ:ESN Modifier在Daemon模式下影响运行速度吗,会耗电吗?7 Y& N V. _) d0 j
A:ESN Modifier占用系统资源极小,不影响运行速度,耗电更是感觉不出,我把Interval设为15秒,充满电后,前7,8个小时待机都能保持在100%,跟安装前根本没有区别。5 ?1 u+ r7 }4 s. Z
, I" d; S. u6 T2 A0 k4 c3 EQ: 安装为手动模式时,手机启动后要先手工写号吗?* n6 K; f1 F' @4 U
A:不需要,2-5操作才需要手工写号。
# r5 ^# O+ q Q0 O( x& B7 b4 K( k) Y6 M" W! L; P3 G2 N
Q:USB Passthrough要设为Diag还是None呢?7 f! m+ h" n3 @
A:都可以,怎么设置都不会影响。" u0 S, e5 p3 q' U
. s; l" k: z' T2 KQ:ESN Modifier运行在Daemon模式下,还能使用QXDM、CDMA Workshop等工具吗?
$ Z! I( w+ f4 v% O& }A:可以,但在时间间隔完成时,会有延迟现象。特别是在操作QPST或CDMA Workshop时,会因为与Daemon的冲突而造成读写失败,需反复操作,建议在操作这两个软件使,将[Interval]的值设得大一些,比如120秒,然后在Linux命令行pkill esnmodifier后再操作,等完成后再重新设置[Interval]的值。3 K8 f" O5 ^, R5 a
( h: j) B: [ K5 J; ^( t
Q:在编辑esn.cfg文件时,如果填错ESN地址,会导致误写NV数据吗?
, U, p' U9 \8 H& d' u) aA:不会,因为程序采取了安全机制来避免这种情况的发生,在写入之前会先检查该地址的值是否为原始ESN,是才做写入操作。' T7 k) ^! S+ S
8 F' z. `; V6 ?# {7 e
Q:我在Daemon下修改esn.cfg怎样才能生效?- @* P) s3 c: |& g i; ~% P2 C
A:重新启动或是在Linux命令行键入pkill esnmodifier,再打开关闭一次飞行模式。6 O$ k( U0 u% Q1 q' D: b# c6 [; q
8 X( R5 w6 X( v) H/ `
Q:ESN Modifier和其他程序有冲突吗?/ }! U( z4 u! j
A: 目前尚未发现。* A0 V3 e$ {$ P0 O0 B
1 T+ z, t; n) q3 F
" R# x& B, {" ^% B5 b各位同学,请将使用测试结果在本帖回复,有pre plus或pixi的同学,请帮忙确认ESN地址是否一样,以供其他人参考。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
×
评分
-
查看全部评分
|