找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 8465|回复: 19

[CDMA] ESN Modifier v0.1 正式发布--Linux原生程序,解决meid无法清零问题

[复制链接]
发表于 2010-5-26 18:22 | 显示全部楼层 |阅读模式
最新版本见这里 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/下,文件格式如下:
  1. [START]
    4 y' h9 t) U  ?3 q7 N
  2. [ESN]=0x801A2B3C                //Your original ESN
    & Y/ O4 \, M" i% D" F
  3. [NewESN]=0x1234ABCD                //The ESN you want to write in NV ram! A1 B$ J2 D) ?, `; [5 ~% v' l
  4. [Interval]=15                        //The interval for checking ESN in daemon mode(5--120 seconds)
    2 O1 w; D; ]$ r% d
  5.                                 //Less than 10 addresses in per radio version
    " @+ F. a8 m# z& x2 F: s0 E
  6. [418]                                //CC1.3(418): Rom 1.3.5--1.3.5.13 P' q& g3 m! R2 G5 K* {- l1 x3 ]
  7. 0x00A63EE81 w) m1 k; ]3 M" y. g0 X8 W
  8. 0x010B4160
    . e7 T  E+ t$ |. z  K9 N9 D8 @
  9. [510]                                //CC1.4(510): Rom 1.42 \/ U2 {- ?. H; \
  10. 0x00A63EE8
    , ]/ E1 n: [( u- @
  11. 0x010B4140" `- O7 [" [& k
  12. [514]                                //CC1.5(514): Rom 1.4.1.1
    4 I- J  \7 ~6 F2 N" v7 v+ T
  13. 0x00A63EE8
    * t0 z0 B( k; k: z. q! V( b
  14. 0x010B6A040 f* U. f1 c8 Z) X- v' y$ F) M
  15. [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模式内容是这样的:
  1. start on stopped finish
    ! o, [0 Y: o# K# R4 ~
  2. respawn
    & K7 f- d3 B: `) Q" n) |
  3. exec /usr/bin/esnmodifier -D" y% V' Z- Z! a$ L* q5 m: E# ]1 G
  4. pre-start script
    6 j! `' S& W9 n
  5. /usr/bin/PmModemInfo# {( J4 l6 v. i
  6. end script
复制代码
而手动模式下内容是:
  1. start on stopped finish
    ' o5 n. @: H* v  ]% ?, i
  2. script  W8 u0 K! d% s
  3. sleep 50
    5 g* M; ~9 v$ _- c3 c. E
  4. /usr/bin/PmModemInfo  T$ z9 V; E0 Q. O5 s+ m
  5. /usr/bin/esnmodifier5 {/ z- c4 |/ C- X! C) ]5 n6 X
  6. 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地址是否一样,以供其他人参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×

评分

参与人数 3威望 +80 收起 理由
寂夜清风 + 20 支持..太棒了
2b6c3d729918489 + 50 谢谢分享
欧阳 + 10 为广大砖友,或可能成为砖友的胖友对你说声 ...

查看全部评分

回复

使用道具 举报

发表于 2010-5-26 18:30 | 显示全部楼层
是不是真的哟,我马上试一下,我的机器就是MEID清零不了。有一个地址老是清零后又恢复
回复 支持 反对

使用道具 举报

发表于 2010-5-26 19:15 | 显示全部楼层
强人,顶起来。我的机器现在半砖。回家后按照的方法修砖后在用这个方法写号试试。哎现在我的机器MEID能清零了。ESN清不了。扫了N遍了也不行,回头用你的方法
回复 支持 反对

使用道具 举报

发表于 2010-5-26 19:30 | 显示全部楼层
高手,感谢你,的确能打电话了。只是不知道是不是我的硬件有问题还是软件打电话的时候没有声音就是插上耳机也没有声音可能是系统的问题吧。我再帮着试验一下我用的是自动的模式
回复 支持 反对

使用道具 举报

发表于 2010-5-26 20:08 | 显示全部楼层
刷新一遍1.4.11测试能打通电话但是接通的时候没有任何的声音也不可以送话不知道是什么原因。开始以为是听筒问题但是挂断的那一下声音又能听到。插上耳机也没有用打10000号是同样的情况。. N" k# k  a; i- _0 q
个人感觉是不是程序有问题。我的机器安装该程序后重启进入能正常的发送和接收短信。但是打电话一直是这个现象接通后没有任何的声音。其次安装后再也不能进入USB大容量模式以及写电话模式。为此我已经重刷了机器好几次。现在只有暂时先不用。希望别的朋友来测试一下(个人感觉希望是程序的问题,要不然我的机器买来就是废品吗?对了忘记讲一下我的机器是关鉴权的。用700WX通话一直很正常); ~! ]7 V+ K3 s

: {8 z! j! R, }( P[ Edited by lizhiheheng on 2010-5-26 21:56 ]
回复 支持 反对

使用道具 举报

发表于 2010-5-26 22:43 | 显示全部楼层
好东西,虽然pre早就出了!
回复 支持 反对

使用道具 举报

发表于 2010-5-27 00:13 | 显示全部楼层
终于出来了,多谢楼主!上App Catalog有希望了。另外不知道这个对Evdo断流是否有帮助?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-27 00:29 | 显示全部楼层
原帖由 weigy 于 2010-5-27 00:13 发表
* y" W8 L) Q0 R3 b终于出来了,多谢楼主!上App Catalog有希望了。另外不知道这个对Evdo断流是否有帮助?

  k  K3 }6 R) Y- y( `
' T# J  A  L7 R( O# D3 M不知道,我没evdo,据51的朋友说,应该有一定的帮助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-27 00:40 | 显示全部楼层

回复 地下室5# lizhiheheng 的帖子

既然能发送接收短信,就说明ESN没问题,你可用##3282#看一下ESN是否变为你写入的值,如果是,就应该没问题,至于不能进入US大模式以及写电话模式,我没碰到过,而且你是关了鉴权的,这个真没测试过,只能希望别的朋友测试一下了,另外,你是用Daemon模式安装的吗,先试一下手动模式看看+ |1 B7 e8 o* @) C# t
6 p( ^6 N2 |- X, W8 N6 }8 {
[ Edited by treewood on 2010-5-27 00:51 ]
回复 支持 反对

使用道具 举报

发表于 2010-5-27 01:53 | 显示全部楼层
感谢楼主,改自身ESN的,虽然用不上,但依然感谢。
回复 支持 反对

使用道具 举报

发表于 2010-5-28 11:56 | 显示全部楼层
楼主这是造福广大菜鸟了。我就是因为不会改而改了局端。
回复 支持 反对

使用道具 举报

发表于 2010-5-31 13:55 | 显示全部楼层
黑莓8830的怎么改呢
回复 支持 反对

使用道具 举报

发表于 2010-5-31 18:05 | 显示全部楼层
强悍。。
! ~  H5 Q3 r9 f1 |! H) H  k3 ^9 {2 p& J7 j4 d
感谢楼主的努力, n  {7 x2 n; S. N

( K- S1 k/ u) k* u; D1 g: U* Z[3G坛,手机登陆吹友吧发帖]
回复 支持 反对

使用道具 举报

发表于 2010-6-3 00:53 | 显示全部楼层
楼主,你这原理是什么?我用的是moto droid 目前也是直接的用QXDM的脚本写esn 内存,不知这程序是否可以移植到android的系统?真可以的话那就大大造福了droid的机友,如果你没有时间,那么方便的话给可否可我源代码,让我自己琢磨一下?非常感谢
: r- v: T: a& J& b$ i! ]
5 P5 Y2 ]; y' K3 D  G" ?[ Edited by wanglnet on 2010-6-3 00:58 ]
回复 支持 反对

使用道具 举报

发表于 2010-6-3 22:03 | 显示全部楼层
很实用的程序,支持一下。
回复 支持 反对

使用道具 举报

发表于 2010-6-5 21:57 | 显示全部楼层
今天把MEID恢复了,装上了楼主这个程序,结果效果非常明显:Evdo果然不断流了,非常稳定。而原来MEID清零时的Evdo就是个半残,几秒中一断,几乎没法用。非常感谢楼主贡献了这么好的程序,不仅大大简化了写号步骤,降低了风险,而且让Pre真正像个3G手机。
* s3 g7 U& X3 |1 j我是在当前的1.4.1.1版本下直接恢复MEID,装上程序后Evdo直接能用,重写IMSI、AKey、PRL后电话恢复正常。
4 v" Y4 Y. _( {/ ^# g) h2 h这个程序另外一个好处就是可以直接注册Profile,上App Catalog了。
回复 支持 反对

使用道具 举报

发表于 2010-6-10 13:50 | 显示全部楼层
我要顶啊     尽快开发出android的吧         拉长脖子等
回复 支持 反对

使用道具 举报

发表于 2010-6-11 12:55 | 显示全部楼层
继续顶         :)1 :)1 :)1 :)1
回复 支持 反对

使用道具 举报

发表于 2010-6-27 14:55 | 显示全部楼层
支持一下..这个工具看起来很诱人的样子啊..
回复 支持 反对

使用道具 举报

发表于 2010-6-28 13:38 | 显示全部楼层
感谢楼主!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2024-12-22 16:32 , Processed in 0.305368 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表