找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4345|回复: 11

[教程] 繁琐解决短信无法进入或者空白的问题

[复制链接]
发表于 2010-9-4 15:23 | 显示全部楼层 |阅读模式
最近碰到了传说中的收到某些特定短信之后,内容显示空白,之后就无法在launcher上启动短信了。
9 ?$ o' ^/ |5 e8 l  @: r根据网上和众多帖子的反馈,大部分情况是收到由nokia发出的带有换行的短信造成javascript解析失败(所以重启也是没有效果的),官方貌似没有解决这个bug。! G" ~& ^  u, ~( T6 g8 H( e# n
在清风大大的帖子10#,可以通过清除短信数据恢复短信的功能。
( X$ x2 \' G: V' Ohttp://www.treo8.com/bbs/viewthr ... hlight=%B6%CC%D0%C52 R0 g- n. G. `7 r0 t7 K
大致就是操作sqlite数据删除.db3数据库中的com_palm_messaging_data_ChatThread数据表。
& R3 N) z* ?# A3 r! R( M( }- j既然是操作数据库,那么就可以通过一些方法删除数据表中引起问题的几条数据,这样就正常了。因此这里的方法虽然繁琐,但是不用全部清除短信,性价比还是可以的。
9 H& g4 o) {& {8 ^5 K: e/ @0 ~下午在机子上实验了一下,群众纷纷表示有效果(没有删除联系人)' b4 G3 z9 X# m2 P2 ?2 y
可以在手机上直接用安装的terminal操作,但是手机屏幕木有电脑大,建议用电脑上的ssh工具(putty等)连接到手机上操作:( l0 N+ g7 l% ~" }/ I3 Z
1. 备份原数据库,这样即使操作错误之后也有挽救的余地。. j' C6 p  A  E( n1 A( V0 W
    建议直接使用
& d, n  ]8 b* U9 n: M2 m    cp   /var/luna/data/dbdata/*   /media/internal/8 o7 n, U7 n1 k5 S* v! j# J
    这样会把dbdata文件夹下的所有用户相关的数据库文件都复制到/media/internal 即u盘目录下。* s9 S! T9 \. q7 k3 v& t* j. S+ Z  a
2. 开始操作数据库,和用户机器所有数据信息有关的数据库是PalmDatabase.db3。
5 s3 Y$ L* B4 \- `, @    sqlite3 /var/luna/data/dbdata/PalmDatabase.db3
6 b3 @3 v  q# h, c! ?' u    这时候进入sqlite界面,与短信内容相关的数据表是com_palm_messaging_data_ChatThread,主要就是对这个表操作。
3 W; h6 ~/ G5 F' ]& B% J* H! o    大概要清楚引起问题的短信的一些信息,比如号码是什么,或者其他一些信息。9 w6 V- Q# j8 Y
    可以使用:" `  X1 y3 X: `8 G/ B: }
    select  *  from  com_palm_messaging_data_ChatThread; (注意有分号的,在sqlite中查询语句以分号结束)
6 q2 ?0 h2 r; f  Q$ Y% Q    来查看所有记录信息,我们甚至可以发现以前删除的信息也依然还在数据库里面。. u5 ]$ _$ f5 D( w3 \
    查找引起问题的短信信息,基本上能够知道号码就可以了。如果已经知道号码就可以跳过上面这些。
7 q- O6 G" ]. l  X$ R6 W    利用已经知道的信息查看问题短信:
+ Y7 D4 \% a4 L    select  * from  com_palm_messaging_data_ChatThread where chatAddress="+86137!@#@$#@$#";  (引号里填入电话号码,同样注意结尾有分号)
* ^) k* E0 L+ X$ f5 \    在这个数据库中,chatAddress字段表示电话号码,以下是所有字段,如果看不到字段,在命令里输入.headers on5 U+ ~! r; Z( A4 {, i3 L
summary|flags|priority|firstName|lastName|name|trailingDigits|chatTimeStamp|pictureLocation|chatAddress|imAvatarLocation|draftText|availability|customMessage|serviceName|type|statusAddress|totalCount|unreadCount|id|_class_id|_mod_num|_flags3 \+ }% F/ a1 F' ]
    这时候就会列出相应的几条短信了。' y3 ^+ I" S- N2 o: ]) A
    仔细查看是否是相关人的短信,如果不是继续限定一些字段去找,否则容易误删除。
8 A8 |2 Q* N3 ?/ {3 y3. 如果确认找到相关的短信,那么使用命令删除:
) N$ N. ~* f% m     delete from  com_palm_messaging_data_ChatThread where chatAddress="+86137!@#@$#@$#";
6 U( O: Q; E0 [& @     其实就是把前面select语句中的select替换成delete就可以。1 S& m9 H* Q4 M+ E6 W
我实验的时候不用重启就能正常进入短信了。
3 @9 u; T" H' y0 c3 v7 d$ F很繁琐,sqlite官方也没有好用的图形界面可以移植,有时间弄弄图形化的操作。: y, U  K, w; ^# B

. Q  I, q; K$ o( F9 j  E[ Edited by Stingrey on 2010-9-4 21:03 ]
回复

使用道具 举报

发表于 2010-9-4 16:23 | 显示全部楼层
支持楼主测试
6 t! C; {5 J/ a1 r7 }" l% l# `4 [0 \2 r
如果有人可以搞成一个图形化的界面指定删除某个号码相关的最后一条信息就好了
回复 支持 反对

使用道具 举报

发表于 2010-9-4 16:53 | 显示全部楼层
Mark一把
回复 支持 反对

使用道具 举报

发表于 2010-9-4 20:51 | 显示全部楼层
有用!!
回复 支持 反对

使用道具 举报

发表于 2010-9-4 20:52 | 显示全部楼层
mark先~* q5 m, p% f  C- `0 `; \
谢谢
回复 支持 反对

使用道具 举报

发表于 2010-10-9 01:51 | 显示全部楼层

" _* b1 f' X" W& E; ^; j7 c% A执行删除命令的时候出现这样的提示

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-25 14:23 | 显示全部楼层
原帖由 zhouxi6868 于 2010-10-9 01:51 发表 6 j/ Y% ]3 [+ `
172061! z4 c4 e4 d0 S  R6 I3 U4 N
执行删除命令的时候出现这样的提示
' U2 O& u" v) j- W2 I
求前面命令操作的截图看一下
回复 支持 反对

使用道具 举报

发表于 2011-2-3 13:16 | 显示全部楼层
太有用了! 留用~
回复 支持 反对

使用道具 举报

发表于 2011-9-17 11:30 | 显示全部楼层
本帖最后由 过河滴小马 于 2011-9-17 11:34 编辑 ; `8 s+ P7 O/ i/ |% b$ K6 h
9 z9 ?9 y+ z5 q
LZ啊 如果这个没有本身系统里没有这个人的短信 要怎么办呢
. ?" ]4 i  ~5 J* _* @' h按你的操作步骤 到最后一步 显示error no such collation sequence
回复 支持 反对

使用道具 举报

发表于 2011-9-17 11:36 | 显示全部楼层
zhouxi6868 发表于 2010-10-9 01:51 7 O/ J6 N3 u. q) \- ?! m# f$ W& y* ^
执行删除命令的时候出现这样的提示
6 m' s& @, [7 i. P  {* A
是的是的 然后就开始4 Y& |4 O8 K; E0 H
Broadcast message from root(Sat Sep 17)
) Y- x6 Y# b. ?3 c" a- h9 vPowerd:  System going to sleep now6 b8 s7 _3 O1 [: [$ n/ r" g

8 H! a/ X# W6 U0 s6 J3 pBroadcast message from root(Sat Sep 17)
7 F( k" _, B! n; N+ L# ^Powerd:  System woke up8 ^: g0 G0 s+ d% D
8 P3 I/ ?" z$ Y9 ~, x$ g0 i

+ C6 e# J; A# v/ [  b$ i一直重复~~~
! m0 T0 v: k* L# v" d, P* [4 {* D/ e4 x9 \' y
回复 支持 反对

使用道具 举报

发表于 2011-10-24 01:06 | 显示全部楼层
我的情况,运行* A$ k9 c$ m6 K: M
delete from  com_palm_messaging_data_ChatThread where chatAddress="+86137!@#@$#@$#";( g8 o3 ~% R" s5 O. s5 \' t
时出现Error: no such collation sequence: LOCALIZED_SECONDARY
2 Z  u% ?. n2 _% c: i+ ^! q4 P" @) [+ _3 B$ F. j7 k7 s6 N7 v
解决办法,在sqlite>下加载,语句如下
6 h+ P* f9 V0 D/ l0 S" z8 O.load /usr/lib/sqlite3_palm_extension.so
) i, M* B  B1 F6 }之后再次运行 delete,没有错误提示了。9 J; i8 q9 }7 Z

0 Z  o& L3 @8 C! n. C. a  Wdelete之后,还是无法调用message,删除com_palm_pim_FolderEntry表下的相关短信,这个表是总表,保存着所有短信,com_palm_messaging_data_ChatThread只是保存短信对话的最后一条,语句如下. j3 [7 |, V, w- n- h# X6 @9 i
delete from  com_palm_pim_FolderEntry where fromAddress="+86137!@#@$#@$#";
. z+ m9 d+ `5 ^, k& `- K0 o
0 P( A4 |6 O3 S; |: T. r& p! O注意是fromAddress,不再是之前的chatAddress了+ E' R) R8 e: d4 B6 b, d/ g

( T! l( i! y! \+ i删完之后,久违的短信窗口打开了。- {- E" I- [3 d7 b
7 \/ S: H4 i% x7 Q0 C- u2 o4 L, Y
工具 SQLite Expert# U. Q7 U/ l& R
       python2.7' w; \: U+ S6 s' x1 _. w7 T' I
       novaproxy.py* v3 k; g0 \5 K9 S, J8 U; M/ V
       putty
2 Y- }6 t" @' i       # v( d6 h3 r8 `6 o
6 [* G! S- y3 U$ _. V! b6 Y
, r$ T) u" y4 `' u2 V  Y4 e
回复 支持 反对

使用道具 举报

发表于 2011-10-25 16:12 | 显示全部楼层
收藏了,估计以后肯定用得上
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 09:24 , Processed in 0.325197 second(s), 17 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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