如何将密切好友的聊天记录恢复到⾃⼰的中
本⽂版权归cxun所有,如有转载请注明出处与本⽂链接,谢谢!
原⽂地址:wwwblogs/cxun/p/4544000.html
在⼿机中把与⾃⼰联系好⼏年的好友的聊天记录不⼩⼼删除了,痛苦万分,好在对⽅的⼿机⾥还有⼀份完整的聊天记录,想把对⽅的聊天记录转移到⾃⼰的⼿机中来,以下是具体的补救⽅法。
使⽤软件:SQLite Expert、iTools
适⽤⼿机:iPhone
上海车管所假设A⼿机是误操作删除记录的⼿机,B⼿机是完整数据源⼿机。
1.备份
网关ip地址⾸先,先把B⼿机的数据备份好,建议使⽤(现在已更新到3.0,本⽂截图依然是1.0的),到App中的⽂档⽂件夹Documents,整个复制到本地硬盘保存起来吧。
2.计算MD5值
上海演员朱茵⾸先要弄清楚双⽅ID⽤户名的MD5值,这个很重要,在后⾯操作过程中极易弄混淆。在Documents中,会有若⼲个MD5哈希值为名称的⽂件夹,如果该⼿机只登录过⼀个帐号,就会只有⼀个MD5哈希值的⽂件夹;如果有多个,你不知道哪个才是你常⽤帐号⽂件夹的话,告诉你⼀个办法,哪个⽂件夹占⽤空间⼤,哪个就是你常⽤的。那么,这个⽂件夹名称就是A⼿机ID哈希值,以下简称“A_HASH”。
依次打开其内部⽂件夹,到聊天记录核⼼⽂件:MM.sqlite,很明显,是个sqlite数据库⽂件。
使⽤数据库软件打开,这⾥推荐使⽤,个⼈版是免费的。在左侧树状图中到好友数据表“Friend”,其中,UsrName字段就是每个好友的ID⽤户名,NickName字段就是好友的昵称,可以通过昵称到B⼿机的ID⽤户名,然后使⽤算出它的MD5值,以下简称“B_HASH”。
3.复制聊天记录
⾸先把A⼿机的数据库⽂件复制到本地,即“/Documents/A_HASH/DB/MM.sqlite”,使⽤SQLite Expert打开,在左侧树状图中到想恢复的好友的数据表“Chat_B_HASH”,这⾥有两个情况,分开讨论:
(1)如果是刚刚在A⼿机中误删除的,且没有与B发⽣过后续通信,该表则不存在,点击SQLite Expert的SQL标签页,输⼊SQL语句创建该表:
本田cm300
SQL语句如下(记得改为正确的“B_HASH”):
CREATE TABLE[Chat_B_HASH]
(TableVer INT4,
MesLocalID INTEGER PRIMARY KEY,
MesSvrID INTEGER,
CreateTime INTEGER,
Message TEXT,
Status INTEGER,
ImgStatus INTEGER,
Type INTEGER,
Des INTEGER);
按F5,如果没报错的话,则该数据表创建成功。
(2)如果在A⼿机中误删除之后,与B产⽣了新的通信,则该数据表已存在,且存有删除后的通信数据。由于⼀会要把B⼿机密切好友的所有聊天记录复制到A⼿机中,此时A⼿机与B好友的聊天数据已没有意义,为了避免出现数据重复与其它未知的错误出现,建议将A⼿机中与B好友的数据删除。删除⽅法是在左侧树状图中点击B好友的数据表“Chat_B_HASH”(千万别点错),在SQL标签页中输⼊SQL语句并执⾏:
delete from Chat_B_HASH
同时,还要使⽤iTools在iPhone中删除与B好友聊天记录相关的语⾳、图⽚、视频等⽂件(不放⼼的话可以先把这些数据备份出来),在iTools中到这3个⽂件夹,在⽂件列表中按“CTRL + A”全选,按“Del”删除。
/Documents/A_HASH/Audio/B_HASH
/Documents/A_HASH/Img/B_HASH
/Documents/A_HASH/Video/B_HASH
接下来就是重头戏了,要把B⼿机中与A聊天的记录复制到A的数据库⽂件MM.sqlite中。⾸先到并使⽤SQLite Expert打开第1步中B⼿机的数据库⽂件“\Documents\B_HASH\DB\MM.sqlite”,在左侧树状图中到A的数据表“Chat_A_HASH”,点击,在右侧选择“Data”标签页,点击表中数据任意
记录,按“CTRL + A”全选(数据量很⼤的话需要等⼏秒才有反应),再按“CTRL + C”复制,然后在左侧树状图中选择A⼿机的数据库,到刚才3.(1)步创建或3.(2)步删除数据的数据表“Chat_B_HASH”,在右侧“Data”标签页下的数据记录位置中点击⼀下,按“CTRL + V”粘贴(数据量很⼤的话也要等⼏秒才有反应),完成数据的复制。为了避免将A和B的数据库弄混淆,复制完后最好把B的数据库关闭。
4.修改收信与发信的标志位
由于在B⼿机的中,看到的聊天记录中A是在左边,B是在右边,A的对话框泡泡是⽩⾊,B的是绿⾊,现在数据直接复制到A的数据库⽂件中后,需要将两者的发信收信标志位交换,才能在A的⼿机中正确显⽰,否则的话会看到原本是A说的话,变成B说的话了。
在SQLite Expert中,点击刚才粘贴的数据表“Chat_B_HASH”,点击右侧的“SQL”标签页,依次输⼊并执⾏以下SQL语句:
update Chat_B_HASH set des=2where des==0
update Chat_B_HASH set des=0where des==1
update Chat_B_HASH set des=1where des==2
切记!这3条语句要⼀条接⼀条地执⾏!即:输⼊第1条,按⼀次F5,删掉,再输⼊第2条,再按⼀次F5,再删掉,然后再输⼊第3条,按⼀次F5,完毕!
5.修改视频数据的标志位
这⼀步若不执⾏的话,在最后完成后会造成A⼿机中视频旁边出现感叹号的问题。在SQLite Expert中,点击刚才粘贴的数据表“Chat_B_HASH”,点击右侧的“SQL”标签页,输⼊并执⾏以下SQL语句:
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="4"') where type=43and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="4"') where type=43and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="4"') where type=43and des=1;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="3"','status="4"') where type=43and des=1;
紧凑型
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="0"','status="3"') where type=43and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="1"','status="3"') where type=43and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="2"','status="3"') where type=43and des=0;
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'status="4"','status="3"') where type=43and des=0;
若最后完成后仍发现视频旁边有感叹号出现,请使⽤终极⽅法:拿另⼀台iPhone C,通过WIFI聊天记录迁移的⽅式迁移到C⼿机,再迁移回A⼿机。在迁移过程中会⾃动修复。
另外,如果B⼿机的聊天记录是从Android版本的迁移过来的,需要执⾏以下SQL语句,原因是⽼版的Android将视频格式的标志位存储
为“44”,需要改成“43”:
update Chat_B_HASH set type=43where type=44
update Chat_B_HASH set message=replace(cast(message as varchar(80000)) ,'type="44"','type="43"') where type=43
6.复制数据到A⼿机
进⾏以上数据库修改操作之后,关闭SQLite Expert(否则复制回iPhone会出错),将修改好的MM.sqlite⽂件使⽤iTools导⼊回A⼿机APP的相应⽂件夹,即:“/Documents/A_HASH/DB/MM.sqlite”
然后是将B⼿机中与A聊天的语⾳、图⽚、视频导⼊到A⼿机APP的相应⽂件夹中,假设在第1步中从B⼿机备份出来的Documents⽂件夹存放在D 盘,使⽤iTools将这三个⽂件夹中的所有⽂件拖⼊A⼿机的APP对应的⽂件夹中:
D:\Documents\B_HASH\Audio\A_HASH  --->  iTools:/Documents/A_HASH/Audio/B_HASH  (⽂件后缀是:*.aud 等等)
D:\Documents\B_HASH\Img\A_HASH  --->  iTools:/Documents/A_HASH/Img/B_HASH      (⽂件后缀是:*.pic 与 *.pic_thum 等等)
D:\Documents\B_HASH\Video\A_HASH  ---> iTools:/Documents/A_HASH/Video/B_HASH    (⽂件后缀是:*.mp4 与 *.video_thum 等等)
结语:
花洒品牌排行在本⽂的这些操作中,难点就是将A与B弄混淆,因此,在进⾏此项⼯作以前,对A与B⼿机的备份显得尤为重要,⼀旦弄错,还可以重头再来。