|
最新版本见这里 http://www.treo8.com/bbs/thread-161408-1-1.html
" [( e0 G/ E" t1 @) W
# F1 l2 G1 P% W6 K6 U. `. |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无法清零问题。" E5 G& Y2 m' ^9 B* w+ }0 I
' K: M. X3 v1 ~9 \6 y0 N
一、功能描述& j2 G1 C3 E" V% ^
可以Daemon模式安装,并以你设定的时间间隔自动检测ESN是否恢复为原值,如是则作修改,否则不做操作;也可以手动模式安装,在ESN变回原值时手工去修改。
2 x9 |+ r1 T, y# H2 c: \+ ?6 c" Q" N% o- O1 H( H* v
二、适用范围
3 h: M* W& E" ^) O本程序在cdma palm pre上,rom版本为1.35--1.4.1.1测试通过,相信在pre plus、pixi、pixi pre上也可行,但必须先确认内存地址;本程序跟gsm机型无关。6 W5 w2 S) l A3 q7 L+ S
9 g% p( ~4 A4 G) Y; u三、安装步骤,/ D! f9 f2 D! [0 k6 o5 A" P
下载附件em0.1.rar并解压,pre进入U盘模式,把安装目录em0.1放在U盘的任意目录上,进入Linux命令行(putty、telnet、ssh、terminal等都行),转到安装目录下,如:cd /media/internal/.../em0.1( p# f: D5 b! ^3 A7 O) ` Z
; q) v3 X" n- b+ E安装:
( Z6 F/ Q6 T7 ]5 f1、Daemon模式
; y3 E2 X; `) A: [执行:sh em-inst d
, ^3 Z& R; P s- g+ a3 f
6 F: Y+ ~: u5 w. u- H. D; c |' A/ j2、手动模式5 }2 N+ s5 j! }! X/ f6 l, G
执行:sh em-inst
3 V! m# m) A! u8 u
2 o$ K0 G0 c5 G卸载:
1 R1 M: F6 b5 g7 D2 R; I& N执行:sh em-uninst
) f' ^8 t4 P: g7 ?0 M' W4 t
% ]0 f" q* u+ G& E说明:安装后请先编辑配置文件/media/internal/esn.cfg,再重新启动;以一种模式安装后想改成另一种模式,可直接安装,无需先卸载;无论用那种模式安装,都使用相同的卸载程序;卸载时不删除/media/internal/下的esn.cfg文件,重新安装也不会将其覆盖,如果你想彻底清除,请手工删除。4 i+ F! a$ {) w; c
2 Z$ P' C1 A- p8 M( o四、程序文件说明
- f# L; }: Z2 V6 g1、esnmodifier:主程序,安装在/usr/bin/下" Z5 q% g, E1 q1 f/ b) u
2、esn.cfg:配置文件,安装在/media/internal/下,文件格式如下:- [START]9 R# J* [7 M, x0 e
- [ESN]=0x801A2B3C //Your original ESN2 V0 T, A9 P$ t, u8 t
- [NewESN]=0x1234ABCD //The ESN you want to write in NV ram
& n! {; R% ?! Z/ w - [Interval]=15 //The interval for checking ESN in daemon mode(5--120 seconds)
i* @% L9 p6 d$ c - //Less than 10 addresses in per radio version
; x/ e9 F0 P* a b - [418] //CC1.3(418): Rom 1.3.5--1.3.5.1' D' ]* r, R" s2 b6 [0 @; Q
- 0x00A63EE8
# N) x' E3 M5 i4 O* a7 {. M - 0x010B4160
1 W3 I& X2 `4 Q1 ~ - [510] //CC1.4(510): Rom 1.4; v6 }. A: n6 n0 @5 n
- 0x00A63EE8
# Y& G4 ~* _% N6 V _ - 0x010B4140
4 Q- y0 ?3 ]9 L7 J# t4 o" H - [514] //CC1.5(514): Rom 1.4.1.1% k! r- H1 x. |/ c
- 0x00A63EE8
, X, p6 m) \6 Q3 j: S/ Y: V - 0x010B6A04* B. i n$ I. 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编辑。 m( u! j3 k$ }9 o
& y/ _9 h K# f% F) T/ c* @! v
3、esnmodifier脚本:启动脚本,安装在/etc/event.d/下,Daemon模式内容是这样的:- start on stopped finish/ E/ s" K) |2 ?! c# Z3 m
- respawn! _+ A2 g3 L2 p+ A
- exec /usr/bin/esnmodifier -D
) J$ r9 q6 H/ ]! G* `2 [: {% o - pre-start script5 t: i; }8 r$ @" b! t
- /usr/bin/PmModemInfo; B9 z) b9 l% v- m4 z+ c3 Y$ B
- end script
复制代码 而手动模式下内容是:- start on stopped finish& z' i8 B$ z$ w; g" g
- script" o5 u; n3 ]+ l7 Y+ w
- sleep 50
$ X$ O) P4 H# _: t! `& F5 ]2 Y5 s - /usr/bin/PmModemInfo
& B' ~! Q* D! O% Y/ u H7 z0 j - /usr/bin/esnmodifier
/ x( p; c$ S9 k% C2 T3 Q/ i - 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中。当然,这些你也可以不做,按默认的来就行。
4 R/ E# T4 |2 j3 ]' |0 \$ Q7 o5 ~
' M& I8 }7 J4 {4、com.tree.esnmodifier目录:安装在/media/cryptofs/apps/usr/palm/applications/下,这并非webos程序,而只是在pre上生成一个叫ESN Modifier的图标,连接Linux程序,用于在手动模式时点击进行手工写号,点击后图标会变亮,之后没其他信息,而Linux程序会在后台被执行,你可用##3282#查ESN来验证;这对Daemon模式来说其实不太必要,你可保留,也可用橙色键+点击把它删除。
- _- A: }! ~2 X, ~4 N1 I6 j# p
+ D/ r- k8 N% ?9 @# r% B& E) L) W五、使用体会0 U" I# J( ]9 z+ m5 t, v. H
先列举一下几种在pre上会导致ESN恢复的操作:- |8 H! p7 V# E4 k
1、重启% e0 N" R" }4 j n6 p
2、打开飞行模式后再关闭飞行模式7 N( Q! u1 A- g+ R; j: m
3、进入U盘模式后退出
# T$ d# v h5 V G: N4、在拨号面板中键入##SPC#(SPC一般为“000000”)2 J3 e6 q3 k. _& E3 O% B4 E
5、Restart Java,preware中安装某些软件可能会提示,Luna Manager中也有该选项
4 p9 \9 k' W4 I6、其他的如Device Info中的Erase操作和##786#中的Reset就更不用说了,Reset这个不要随到便操作了" u3 J7 Y; O. m, W2 M9 j! k* T
* g1 H- _3 X" \5 ]: P
此外,在电脑上QPST、QXDM、或CDMA Workshop上的一些操作也会导致ESN恢复,在此不作详述。
- E% D# z" _7 C' k4 m, E/ h, [3 r; H+ W& K
' d$ W5 U9 Q* K用手动模式测试2-5操作时,打出均没问题,而接入时,偶尔会出现号码已写入后,提示电话关机或无法接通,具体原因不明,解决的办法就是随便拨一下号来“激活”一下,如拨10000,也可打开1x数据连接。如果你不放心,最好在写号后先拨一下号,当然,如果你的1x一直开着,那没问题。而在Daemon模式下,时间间隔设为15秒,测试2-5操作,只要等15秒后(有时不用),再过多几秒,都能正常接入。应当注意的是,在手工写号时,要等到信号恢复后才可写入,否则可能写不成功,可反复重写。此外,你也可在Linux命令行下执行esnmodifier写ESN,程序会给出一些反馈信息,以帮助你了解写ESN的过程。
8 P& e! H4 n, f) @8 {* y
* z, F9 \ b7 j; K2 P8 l7 c* z结论:强烈建议使用Daemon模式,把Interval设为15秒
8 E- k& u2 O' P
2 R% |+ `1 \8 Z六、下一版本设想8 I6 ?& C/ p& O6 I. U9 r0 Z" p
这两天突然想到,配置文件可以不包含radio版本号和ESN地址,因为有效ESN地址的范围不大,ESN可在一定范围内由程序自行搜索,这样以后每次升级rom后就无需再编辑配置文件了,当然,还需测试看程序运行时间是否可接受再作决定。
! v% K( A2 ^0 j2 A; U
0 M4 O! v3 g7 M" Y, d七、FAQ
5 {+ `" U3 Q5 l$ E1 K& Z4 ZQ:我的rom版本是1.3.5以下的,是否可使用ESN Modifier?
4 z$ M0 ~( ?) m' D; U5 z/ yA:可以,但你必须先查出对应版本的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。
0 y( d4 P, p7 F2 W: i% X4 @+ k: n- T& w: p* N0 Y0 k: w
Q: 我是改本机的,要怎样使用ESN Modifier?
4 O2 |) [- D' y1 \, HA:必须先将MEID恢复为出厂的初始值。% n- k1 x. N7 m% z* I9 E) J5 ~
: H4 s ^9 n! z2 @6 L8 BQ:安装ESN Modifier后,还需要打MEID补丁吗?
1 w, W: N) c: b X; ^( W9 u* g% [A:不需要,因为你的MEID依然保持原值不变。激活、Update、App Catalog等操作都没问题。
b% o, {9 m% J3 j/ ]5 l8 y) N9 j M% E, U
Q:使用ESN Modifier会导致变砖吗?
2 u3 N! s5 ~ w# GA:按默认esn.cfg文件设置,只修改2个ESN地址的话,可以说变砖的概率几乎为零,而实际上即使所有ESN地址全改,在正常操作的情况下变砖的可能性也不大。你可以随便升级或降级rom,甚至是执行传说中可怕的##786#的Reset(当然还是不建议,会把你所有数据全部清除),也不会导致变砖。. L% p1 M3 j- }% Z. f F- G
( v# ^+ f! c$ V% W7 C) U3 Y
Q:什么是Daemon?
- j' u4 n4 f& W/ PA:守护程序,简单得说就是常驻在内存中,无需你干预就能自动执行任务的服务程序。+ z2 _6 N, } s. l% B/ F+ U8 ?
: r! P3 ?6 o6 F( ]0 R) P5 ^
Q:ESN Modifier在Daemon模式下影响运行速度吗,会耗电吗?
* j' L) ?/ }( F/ C( x# \A:ESN Modifier占用系统资源极小,不影响运行速度,耗电更是感觉不出,我把Interval设为15秒,充满电后,前7,8个小时待机都能保持在100%,跟安装前根本没有区别。, {4 |1 @, z$ L+ s
2 E( A# K& U5 n- z5 K+ W
Q: 安装为手动模式时,手机启动后要先手工写号吗?
$ @8 Y/ k3 a( o4 aA:不需要,2-5操作才需要手工写号。 ; I+ j; J; P9 I7 U( e
# v8 ~2 W+ w! |5 J5 j/ r' t
Q:USB Passthrough要设为Diag还是None呢?- }" z: e. @& i; i5 u/ s
A:都可以,怎么设置都不会影响。
0 z7 N4 G0 j9 [+ z, W5 p m$ A2 @2 Z [( u
Q:ESN Modifier运行在Daemon模式下,还能使用QXDM、CDMA Workshop等工具吗?
1 ^ I4 B! |9 |" C0 _' KA:可以,但在时间间隔完成时,会有延迟现象。特别是在操作QPST或CDMA Workshop时,会因为与Daemon的冲突而造成读写失败,需反复操作,建议在操作这两个软件使,将[Interval]的值设得大一些,比如120秒,然后在Linux命令行pkill esnmodifier后再操作,等完成后再重新设置[Interval]的值。4 O( P) e6 R# H7 I8 O2 P8 a
% k8 k! @( D, M, o/ Y8 E, i
Q:在编辑esn.cfg文件时,如果填错ESN地址,会导致误写NV数据吗?
# B, R" Q" P2 r [6 DA:不会,因为程序采取了安全机制来避免这种情况的发生,在写入之前会先检查该地址的值是否为原始ESN,是才做写入操作。" a( |6 \# y6 {
7 M& e7 \3 s! Y. I& `* v
Q:我在Daemon下修改esn.cfg怎样才能生效?
& [6 O/ L" C l- Z. N9 FA:重新启动或是在Linux命令行键入pkill esnmodifier,再打开关闭一次飞行模式。
: }0 z5 m% Z8 n8 G1 D! H* f! l
' h% B8 I3 X" f5 G2 vQ:ESN Modifier和其他程序有冲突吗?7 V; k& e* O1 i
A: 目前尚未发现。, c% H1 ^0 Y& D
/ o: B+ L2 t! F; {/ W0 m" }
& Z+ `1 i8 j; a6 z0 Z: W7 H8 o5 e5 ?各位同学,请将使用测试结果在本帖回复,有pre plus或pixi的同学,请帮忙确认ESN地址是否一样,以供其他人参考。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
×
评分
-
查看全部评分
|