BLOG zzy.my

合抱之木, 生于毫末; 九层之台, 起于累土; 千里之行, 始于足下。

iOS 7 修改短信数据库(越狱)

 

通过 iFile 修改短信内容

使用iFile打开sms.db,使用 "SQLite3 编辑器"

 

在数据表中点击表 message,默认升序排列,即新短信在最下面

找到需要修改的内容,记下相应 guid

 

返回数据表,点击右上的 "SQL"

 

在SQL语法中输入

update message set text = '修改的内容' where guid = 'F7638962-72D4-015C-1905-3110D4A72C26'

即可更新短信内容.

最后还需用iFile检查一下文件权限.

 

重启手机可查看。

 

 

通过 iFile 修改短信发件人号码

修改 chat 和 handle 两张表

如修改 95588 为 10010

打开 chat 查看,记下 SMS;-;95588

 

 

然后到SQL语法中输入

update chat set guid = 'SMS;-;10010', chat_identifier = '10010' where guid = 'SMS;-;95588'

执行后在输入

update handle set id = '10010', uncanonicalized_id = '10010' where id = '95588'

(如果修改的是 iMessage 不需要改 uncanonicalized_id)

 

执行后所有 95588 号码被改为 10010

重启手机可查看。

 

-----------

修改发件时间,参考网络资料 http://bbs.feng.com/read-htm-tid-7617722.html

1.发件时间,就是message表中,date这个字段。请注意,这个是整型数据,不是日期型数据。假如一条短信的收件时间是2014/02/02 18:35,那么date的值,就是2001/01/01 08:00 距离 2014/02/02 18:35的秒数。例如你想把收件日期提前一天,那么就把date减去24*60*60吧。。。

 

2.在电脑中修改,需要先用iFile打开sms.db,执行PRAGMA wal_checkpoint这句sql语句(至于为什么需要执行这句sql语句,有兴趣的可以问问度娘“sqlite3 wal模式”)。然后在电脑中用SQLite Expert Professional打开sms.db,检查一下sms.db数据库里面的文件,和手机收件箱里的短信是否一致。如果一致,可以删除sms.db-shm,sms.db-wal这两个文件,把sms.db拖到电脑上,修改之后替换掉原来的sms.db,重启手机即可。

 

-----------

其它相关,iPhone短信回收站,转载于http://www.cnbeta.com/articles/203042.htm

1. 通过OpenSSH登录到iPhone.

2. cd /var/mobile/Library/SMS 命令定位到目录

3. sqlite3 sms.db  - 运行SQLite命令.

4. 执行以下SQLs,然后退出并重启。

 

CREATE TABLE message_backup (ROWID INTEGER, address TEXT, date INTEGER, text TEXT, flags INTEGER, replace INTEGER, svc_center TEXT, group_id INTEGER, association_id INTEGER, height INTEGER, UIFlags INTEGER, version INTEGER, subject TEXT, country TEXT, headers BLOB, recipients BLOB, read INTEGER, dateupdated DATETIME NOT NULL  DEFAULT CURRENT_TIMESTAMP);

 

CREATE TRIGGER delete_message_but_backup AFTER DELETE ON message BEGIN INSERT INTO message_backup(ROWID, address, date, text, flags, replace, svc_center, group_id, association_id, height, UIFlags, version, subject, country, headers, recipients, read) VALUES(old.ROWID, old.address, old.date, old.text, old.flags, old.replace, old.svc_center, old.group_id, old.association_id, old.height, old.UIFlags, old.version, old.subject, old.country, old.headers, old.recipients, old.read); END;

.quit

reboot

误删短信后可以通过“SELECT * FROM message_backup”找回,还可以用 '.mode'和'.output'命令生成本文导出。

(Copyright 2012 Will Shen)

 

Loading