找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 8010|回复: 59

[写号相关] CDMA TREO 800W 中文短信初步探索以及请求K版支招

[复制链接]
发表于 2009-5-31 11:23 | 显示全部楼层 |阅读模式
呵呵,大家好,我是PALM新手,但是对于WINDOWS MOBILE系统来讲,不算新手了。最近突然对800W有兴趣,入手一台,感谢斑竹的写号教程,已经可以正常接听 拨打电话以及上网了。; c( h/ a3 A# a; d% }( r
这两天浏览了一下坛子里相关的帖子,也对800W的中文短信问题做了初步探索,过程简列如下:- A+ x; Z9 C. U1 V: J
800w的短信服务程序没有使用默认的WM内置的tmail.exe,而是使用了自己的messagingapp.exe。所以一开始怀疑这个应用将中文短信过滤掉了。所以我从SMS_PROVIDERS这一层,嵌入了调试代码,发现SMS_PROVIDERS接收到的信息,含有中文的都为空。也就是说,RILMESSAGE结构体中的 rbMsg 字段是空的,全是0x0。另外,识别出的编码是 8BITASCII,按理说应该是UCS之类。看来问题不出在这一层。- u( [3 R) e5 s
于是,我写了一个RIL钩子程序,监视了一下RIL的MSG_IS637INDELIVERY消息,发现RIL返回系统的消息中。比如接收“你好”两个字,dwCoding 值为0x2,长度为0x2,内容为全0,也就是说 RIL驱动层已经丢失了中文短信。对于800w来讲,系统认为这是一条空短信,只显示一个 please call 138xxxxxxxxx' f1 A- I; z! j" Q
TREO800W跟700W一样,RIL驱动程序是 TelephonyInterfacelayer.dll,这个DLL是厂商根据基带芯片种类和自身设备特点开发的CE系统跟基带MODEM通讯的桥梁。在不同机型上是不一样的,比如GSM机型多数是rilgsm.dll,HTC的机型有用rilphone.dll的,也有用rilcdma.dll之类。/ ]4 f2 x/ A" w8 J: B" J' i
针对这一点,特此请教K版以及各位,对于700W的WM5中文短信,以及700W 的WM6初步完成版,你们的Telephonyinterfacelayer.dll 驱动是从何得来的,是通过原版本逆向工程修改关键字节还是其他渠道。相同方法是否可以作为800W中文短信的参考。个人感觉,只要从这一层解决了中文短信问题,剩下的都应该不难。以上为个人拙见,有不对的地方,敬请指正。敬请K版以及各位前辈多多指教。
& I& H! T! R* ]% c1 Q! g
( f) R/ [) d( {2 v! D8 ^% k[ 本帖最后由 surf98 于 2009-5-31 11:26 编辑 ]

评分

参与人数 4威望 +50 收起 理由
CyberVsQ + 20 谢谢分享
qwedsa + 5 精品文章,加油!
厚朴 + 5 谢谢!
卒子 + 20 加油!

查看全部评分

回复

使用道具 举报

发表于 2009-5-31 11:40 | 显示全部楼层
支持楼主,你的确不是新手。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:02 | 显示全部楼层
  你分析得没错,问题的根源就在这个TelephonyInterfacelayer.dll。你可以看一下700w的WM5、WM6的短信补丁,也正是对这个文件做了修改。但是800w和700w的Radio芯片不同,这个文件的程序结构也有很大不同,所以这个文件不是通用的,而且修改方法也有所不同。另外,最关键的问题是,在800w正式版上,这个补丁方法完全不起作用,要不早就有进展了,所以还在想其他的办法。具体的情况你可以试试看。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:03 | 显示全部楼层
如果你熟悉ARM汇编、反汇编知识和ROM基础,应该可以更进一步。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 12:14 | 显示全部楼层
呵呵!!现在就是一直卡在这里。。。。
5 O: S2 l8 g1 {% u$ S" V4 O" [而且。。关键是提取了的ROM没用办法刷回去。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 13:16 | 显示全部楼层

楼主的能上网是指WIFI还是1X或DO

楼主的能上网是指WIFI还是1X或DO,能提供方法不
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:38 | 显示全部楼层
回K版,ARM汇编我只是略懂,谈不上精通。IDA PRO对TELEPHONYINTERFACELAYER.DLL做了反汇编,东西太多了,无从下手。所以再请教一下,700w当时从汇编级解决此问题的思路或方法,可否告知,以做参考。另外,PLATFORM BUILDER里面可以看到RILGSM的全部实现例子,我粗略翻看了一下,已经基本确定了2个函数可能存在问题。但从IDA的反汇编结果来看,TREO800W应该是在MS提供DEMO基础上做了较大改动。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:42 | 显示全部楼层
原帖由 lfc0859 于 2009-5-31 13:16 发表
' P+ B  v+ g) b; p( A' {楼主的能上网是指WIFI还是1X或DO,能提供方法不
% x" T$ K5 P: {* w7 K# `& u

, @7 w* w  f  W# s, L8 }: K我1X和EVDO都可以上。EVDO我只有每月5小时的尝鲜,所以很少用。方法本版好像有专贴,请搜索一下看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-31 13:43 | 显示全部楼层

回复 地下室5# ooo000 的帖子

如果其他方面处理好了,itsutils的pdocwrite可否凑效?
回复 支持 反对

使用道具 举报

发表于 2009-5-31 20:41 | 显示全部楼层

回复 9楼 surf98 的帖子

不可以。。。至少目前没发现方法。。。
: j. v2 l( `0 E1 W9 F# l: z4 U% T: R$ D" ]! {0 e
所以。。首要的任务是解决补丁做好以后应用到rom中去的问题。。, W6 V# \3 m, }
; V. S" ~1 f$ y6 ^$ @) u2 [/ @4 S
另外。。既然会写hook。。那就直接hook那个til吧。。。因为hook反而是目前最有可能的办法。。反汇编的希望不大。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:03 | 显示全部楼层
我有正式版的rom 。。
$ e* S5 B( q5 w7 [, e' {. `楼主需要的话。。我可以给你。。
6 d, x. t! ]) h. N+ H: X1.03版本的。。
0 s( \! Y; z8 J3 f猴版提取出来的。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:03 | 显示全部楼层
另外。。楼主似乎对wm的rom也很懂。。那可以研究一下把til复制回ram后开不了电话模块的问题。。若该问题能解决。。则800w的短信问题也就可以解决了。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:05 | 显示全部楼层
原帖由 ooo000 于 2009-5-31 21:03 发表 $ N, [  E5 M8 a2 L' j5 B) e  |
我有正式版的rom 。。
/ s# m) E& U" w" p  L) Y5 I9 g楼主需要的话。。我可以给你。。" L* g: w2 t0 m; K
1.03版本的。。4 V/ U2 u# p* v2 v7 M
猴版提取出来的。。

! `7 d5 T5 @8 a. N% M, A2 C4 e$ g6 y( I) s) q' u
楼主既然提到了pdocwrite。。也一定会用pdocread提出rom的。。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:07 | 显示全部楼层
原帖由 snowmonkey 于 2009-5-31 21:05 发表 2 r  ~2 [! G6 Z+ z6 {. x+ ^7 I! ?0 x7 g* l

2 Y& I5 O! ?/ o/ e' N
& i/ p' t$ i0 E# n+ d1 Q4 [楼主既然提到了pdocwrite。。也一定会用pdocread提出rom的。。。

1 |' u$ R  t. _5 C) f0 R不知道楼主的机子是什么版本的。。。
  z7 M/ p5 ]/ r$ d% b- K: J呵呵。。。
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:12 | 显示全部楼层
技术帖,支持!
回复 支持 反对

使用道具 举报

发表于 2009-5-31 21:59 | 显示全部楼层
高手云集哦!支持!!
回复 支持 反对

使用道具 举报

发表于 2009-6-1 02:16 | 显示全部楼层
该贴技术氛围浓厚啊~~
- l. i7 m0 I& @/ D, u2 V' o7 }% s0 b; y$ v( f
唉,palm的怎么就这么难搞,看看HTC的,同样是WM系统,ROM是一个接一个,改卡的也已经铺天盖地,而且当初好像也没在中文短信的问题遇到什么难关,好像改改注册表就行了……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-1 10:47 | 显示全部楼层
谢谢猴版以及圈圈兄的回复。1 v0 u% R% ?( Y/ |. `
我现在用的就是SPRINT 1.03版,ROM已经提取出来,模块也都DUMP了。TIL看来是以模块形式,而不是DLL形式加载的,所以出现打不开无线的情况。  r7 A+ B1 a4 t9 Z) F, F' q, v5 Q
HOOK消息的方法恐怕不能解决问题了,因为跳到TIL层,其工作模式已经跟RIL层的消息回调机制不同了。5 A( g' B1 g) E8 h. N. h3 D
我现在正试图HOOK TIL的RIL_IOControl API,这方面没大做过,只能慢慢啃。目前归纳出的是,RIL.DLL通过RIL PROXY界面,向TIL发了一个IOCTL_RIL_READMSG的消息,TIL返回一个RILMESSAGE结构体,我希望能HOOK这个API,然后用自己的返回结果代替原TIL的返回,不知道是否异想天开。
% P; r$ m5 v7 `5 r+ D9 h4 J; t2 }另,我跟猴版意见一致,反汇编的方式恐怕难以走通。9 A; [" D5 N1 }4 n
欢迎大家继续讨论,提供思路。$ c5 s0 _9 w& J. g0 A" P
原帖由 snowmonkey 于 2009-5-31 20:41 发表
2 v9 G. R+ f$ K) ~' y7 ?& l+ a不可以。。。至少目前没发现方法。。。2 `5 ]; v1 z% j( ^4 Z$ C8 w
7 \! t$ f2 r5 }) J& X2 g' g6 M
所以。。首要的任务是解决补丁做好以后应用到rom中去的问题。。
3 ~3 w2 l, r* Y2 L& h% `8 f$ S. C+ \0 h& c
另外。。既然会写hook。。那就直接hook那个til吧。。。因为hook反而是目前最有可能的办法。。反汇编的希 ...
回复 支持 反对

使用道具 举报

发表于 2009-6-1 11:30 | 显示全部楼层
不是很懂这些技术" S# F7 g4 L$ y' s! \( {9 x
但支持你,也感谢你和猴哥的辛苦!
回复 支持 反对

使用道具 举报

发表于 2009-6-1 16:35 | 显示全部楼层
楼上的几位都相当专业
回复 支持 反对

使用道具 举报

发表于 2009-6-1 18:53 | 显示全部楼层

版主提供一下QCN备份呀

照着搜索到的方法,不只我不能上网,还有N多TERO友也上不了网哟
回复 支持 反对

使用道具 举报

发表于 2009-6-1 22:09 | 显示全部楼层
原帖由 surf98 于 2009-6-1 10:47 发表 3 J4 B2 t# N+ y( f: q& ^* j
谢谢猴版以及圈圈兄的回复。( N, C9 C' U" \3 k3 m1 s
我现在用的就是SPRINT 1.03版,ROM已经提取出来,模块也都DUMP了。TIL看来是以模块形式,而不是DLL形式加载的,所以出现打不开无线的情况。
; ^3 @& s! ^1 m" oHOOK消息的方法恐怕不能解决问题了,因为跳 ...

+ F. E& w# g" P- c1 I5 F/ q2 z- B$ a7 d- n. L% D7 E9 D0 D& N
TIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-2 00:33 | 显示全部楼层
太专业了,不懂,你们继续
5 d8 _: V( ]. a/ C7 F* h. p: E* ?我顶
回复 支持 反对

使用道具 举报

发表于 2009-6-2 02:06 | 显示全部楼层
半夜起来顶一下
回复 支持 反对

使用道具 举报

发表于 2009-6-2 02:36 | 显示全部楼层
楼上的几位,如果需要机器测试中文短信的的话,我可以免费提供几台机器提供测试,刷坏不需要你们承担责任,我的联系QQ:463166527) u1 P, ^. ^6 J  s; d4 q2 B
电话15920098495
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-2 22:15 | 显示全部楼层
猴版有没有工程机的ROM DUMP,发一份给我。 surf98@sina.com/ {5 H/ V# v; |  B, g
原帖由 snowmonkey 于 2009-6-1 22:09 发表
2 ]) w8 N! a& z* m7 I
; [5 F# q9 ]2 S% s
* M4 [2 g1 N' O, E) c: NTIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 13:43 | 显示全部楼层
我有的,等有时间我上传一个。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-3 21:26 | 显示全部楼层
我用QPST的SERVICE PROGRAMMING功能将原内置的SPRINT PROVISION帐号禁用了,不能上网看是不是没有进行这个操作。
5 A8 n9 \8 m7 z# Z! Z  Q8 [2 c1 H& J( T+ u6 r4 f
原帖由 lfc0859 于 2009-6-1 18:53 发表
6 v  B7 ~4 i* L# n, I# ^% r照着搜索到的方法,不只我不能上网,还有N多TERO友也上不了网哟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-3 21:27 | 显示全部楼层
OK,感谢K版。等待中。。。这两天有个比较紧的项目,天天跑项目,所以进展不大。只能周末努力了。
, W* P! q$ D) U+ x3 [8 n1 s) l. `; E
原帖由 KING 于 2009-6-3 13:43 发表 ' u$ D& Q4 S0 g0 u9 D
我有的,等有时间我上传一个。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 21:35 | 显示全部楼层
原帖由 surf98 于 2009-6-3 21:27 发表
% \, d8 N# k/ l" ]4 t4 YOK,感谢K版。等待中。。。这两天有个比较紧的项目,天天跑项目,所以进展不大。只能周末努力了。
+ ~* O) j8 p" u# ?8 F, \% r

6 t2 F7 w: r6 e/ K+ W盼星星盼月亮早日破解啊。。
回复 支持 反对

使用道具 举报

发表于 2009-6-3 21:41 | 显示全部楼层
原帖由 surf98 于 2009-6-3 21:26 发表 $ S/ P( H' O+ G+ u% A
我用QPST的SERVICE PROGRAMMING功能将原内置的SPRINT PROVISION帐号禁用了,不能上网看是不是没有进行这个操作。# ]. h) f0 a1 m$ t; |5 v

$ ]0 A# }* {* F; C6 p

7 ?8 s' K" Q4 N8 X8 W  ?0 ~- P. o" ~* z& A8 H
上图说明一下?
回复 支持 反对

使用道具 举报

发表于 2009-6-4 10:19 | 显示全部楼层
LZ你的手机能不能用GPS啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-4 18:41 | 显示全部楼层
我换了N种格式,都提示无效图片格式,晕。只好压缩。

My Pictures.rar

34.48 KB, 下载次数: 556

回复 支持 反对

使用道具 举报

发表于 2009-6-4 20:22 | 显示全部楼层
原帖由 surf98 于 2009-6-4 18:41 发表 / W' F6 M# z& P5 K
我换了N种格式,都提示无效图片格式,晕。只好压缩。
$ J) |" V6 W. |+ R$ E# j* G

; C; r9 {5 A. u, g4 E我帮你发一下图。无法发图应该是浏览器设置的问题,你看站务区有个帖子可以参考。
1.gif
2.gif
回复 支持 反对

使用道具 举报

发表于 2009-6-4 23:30 | 显示全部楼层
高手云集啊,中文短信要是能解决,我就下手了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 05:38 | 显示全部楼层
刚刚试了一下,从原机DUMP出来的Telephonyinterfacelayer.dll ,经过特权签名后,做成CAB,将CAB也做特权签名,安装覆盖原文件,无线可以启动。功能都正常,只是感觉启动好像慢了点,不知是否心理作用。
3 n& ^' ^9 V8 N" Q
原帖由 snowmonkey 于 2009-6-1 22:09 发表
; t: ?% V$ N; o! y( P" h6 `3 T9 P4 T: L. [
3 `6 a. a1 T. a' Y6 f0 ?) m3 A" k- e
TIL是模块形式。。或许是打不开无线的情况。。。不过有个情况楼主可以分析一下。。在工程版的rom上。。TIL拷回去是可以用的。。。这个TIL也是模块形式。。
回复 支持 反对

使用道具 举报

发表于 2009-6-5 08:41 | 显示全部楼层

回复 36楼 surf98 的帖子


* T8 v& p& n5 p牛人!' s! I# F2 H+ k% S! I
等待你们的好结果
回复 支持 反对

使用道具 举报

发表于 2009-6-5 10:21 | 显示全部楼层
原帖由 surf98 于 2009-6-5 05:38 发表 $ X% v; H( H! I  o, q4 A+ S( Z9 P
刚刚试了一下,从原机DUMP出来的Telephonyinterfacelayer.dll ,经过特权签名后,做成CAB,将CAB也做特权签名,安装覆盖原文件,无线可以启动。功能都正常,只是感觉启动好像慢了点,不知是否心理作用。/ A/ T$ n6 j" W

7 }4 ^0 w9 z/ Z  A% n7 i  \, q& c
. i" B/ v) A( r" y700w的补丁就是这样做的。测试过,在800w工程机上也可以这么做,但正式版不行。你的是什么版本?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 11:36 | 显示全部楼层
SW:TREO800W-1.03-SPNT" s! d" ]1 A7 G) h/ T) r3 E
OS: Windows Mobile 6.1 Professional CEOS 5.2.19216
/ W1 s# h) l* m) a% X1 c: ZRadio:1160 a1 `$ t0 m: c  g; {
HW: Zeppelin-A" U  ]0 a7 c* }* i. y
应该是正式版吧。
5 L& S) Z9 a% ~# T我是使用从800w DUMP出的原TIL签名再覆盖进去,正常工作。K版是不是用修改了的TIL覆盖进去,不工作呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-5 11:40 | 显示全部楼层
另外,我FAKE了TIL,将API调用记录入日志。发现一个奇怪的问题,使用原系统的文件,IOCTL_READMSG 和 IOCTL_SENDMSG并不走TIL,难道800W的短信没有经过TIL?% r8 r( f. c- w  m: L
我使用了其他机型的messaging.exe替换掉了800W默认的,发现发送短信的时候,IOCTL_SENDMSG经过了TIL,但接收还是不经过。
& p' o7 K* }, I0 k# S$ B  `" H4 T& R不知道恢复800W的默认SMS服务程序为tmail.exe,这两个消息是否走TIL。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-4 03:29 , Processed in 0.380154 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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