一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、系统、设备及介质与流程

2022-04-25 01:13:47 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种数据传输方法、系统、设备及介质。


背景技术:

2.line app是韩国旗下的line株式会社2011年开发推出免费即时通讯软件,在中国台湾、日本、泰国用户群体很大。
3.由于在ios系统和android系统中line聊天记录的备份数据存储方式存在不同,导致ios用户和android用户的line备份数据无法直接迁移。而line并没有提供ios和android之间的跨端传输的工具,目前line的用户的聊天备份数据都是保存在第三方googledrive或者苹果icloud云存储服务上面。
4.在line的官网帮助中,有明确介绍其无法在不同操作系统的设备间(android到iphone、iphone到android)复原聊天记录。可实现的备份以及复原聊天记录的方法,只针对使用ios的用户使用icloud备份还原,以及android用户使用google云端硬盘备份聊天记录。这样导致ios用户和android用户之间的line备份数据无法直接迁移。若line用户更换新设备,且新设备与老设备的操作系统不同时,无法迁移数据,旧设备上的聊天记录不能同步到新设备,用户体验度低差。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本发明提供一种数据传输方法、系统、设备及介质,以解决line聊天记录不能在不同操作系统设备之间传输迁移,用户体验度低的技术问题。
6.本发明提供的一种数据传输方法,所述方法包括:
7.获取第一终端中目标应用的目标数据,所述目标数据包括联系人信息、群组信息和聊天数据库;
8.将所述联系人信息、群组信息写入所述聊天数据库;
9.获取第二终端中目标应用的数据库规则,并根据所述数据库规则和写入有所述联系人信息和群组信息的聊天数据库生成新增数据库;
10.创建所述第二终端的备份包,将所述新增数据库添加到所述备份包,所述备份包用于对所述第二终端进行备份还原,以实现将所述目标数据从所述第一终端传输到所述第二终端,其中,所述第一终端和第二终端的操作系统不同。
11.可选的,所述目标数据还包括附件,对所述第二终端基于所述备份包进行备份还原之前,所述方法还包括:
12.从写入有所述联系人信息和群组信息的所述聊天数据库中获取聊天记录,并确定所述附件在所述聊天记录中的附件位置路径;
13.获取所述第二终端中目标应用的附件存放路径;
14.根据所述附件存放路径和附件位置路径将所述附件存储入所述第二终端。
15.可选的,获取第一终端中目标应用的联系人信息的方式包括:
16.构建授权请求二维码,所述授权请求二维码用于被所述第一终端中目标应用扫描并进行数据获取授权;
17.若授权成功,获取所述第一终端中目标应用的联系人标识;
18.根据所述联系人标识获取各联系人的联系人信息,所述联系人信息包括联系人移动互联网设备、名称、创建时间、头像数据等中至少之一。
19.可选的,所述二维码的构建方式包括:
20.向目标应用的服务器发送会话创建请求消息,并获取会话创建响应消息,所述会话创建响应消息包括申请认证二维码数据;
21.向目标应用的服务器发送二维码创建请求消息,并获取二维码创建响应消息,所述二维码创建响应消息包括所述申请认证二维码数据和超文本传输协议的统一资源定位符;
22.获取配对密钥,所述配对密钥包括公钥和私钥,将所述公钥进行编码,得到敏感数据参数;
23.根据预设版本号、所述敏感数据参数、所述申请认证二维码数据和超文本传输协议的统一资源定位符生成二维码的统一资源定位符;
24.根据二维码的统一资源定位符生成所述二维码。
25.可选的,若授权成功,获取所述第一终端中目标应用的联系人标识之前,所述方法还包括:
26.向目标应用的服务器发送二维码认证确认请求消息,并获取二维码认证确认响应消息,所述二维码认证确认响应消息包括认证成功或认证失败;
27.若所述二维码认证确认响应消息包括认证成功,向目标应用的服务器发送个人识别码创建请求消息,并获取个人识别码创建请求响应消息,所述个人识别码创建请求响应消息包括个人识别码;
28.将所述个人识别码发送至所述第一终端中目标应用,若所述第一终端中目标应用对所述个人识别码验证成功,向所述第一终端中目标应用发送个人识别码认证校验消息,所述个人识别码认证校验消息用于校验所述第一终端是否授权成功。
29.可选的,获取第一终端中目标应用的聊天数据库包括:
30.将第一终端中目标应用的聊天数据库备份到目标存储空间;
31.获取所述目标数据的目标账户识别信息,并根据所述目标账户识别信息从所述目标存储空间中获取所述聊天数据库。
32.本发明还提供了一种数据传输系统,所述系统包括:
33.数据获取模块,用于获取第一终端中目标应用的目标数据,所述目标数据包括联系人信息、群组信息和聊天数据库;
34.写入模块,用于将所述联系人信息、群组信息写入所述聊天数据库;
35.生成模块,用于获取第二终端中目标应用的数据库规则,并根据所述数据库规则和写入有所述联系人信息和群组信息的聊天数据库生成新增数据库;
36.创建模块,用于创建所述第二终端的备份包,将所述新增数据库添加到所述备份包,所述备份包用于对所述第二终端进行备份还原,以实现将所述目标数据从所述第一终
端传输到所述第二终端,其中,所述第一终端和第二终端的操作系统不同。
37.可选的,所述系统还包括以下至少之一:
38.驱动检测模块,用于在数据获取模块获取第一终端中目标应用的目标数据之前,检测所述数据传输系统中目标操作系统的驱动,若所述驱动缺失或版本低于最新版本,为所述数据传输系统安装所述目标操作系统最新版本的驱动,所述目标操作系统包括第一终端操作系统和第二终端操作系统;
39.解锁信任检测模块,用于在数据获取模块获取第一终端中目标应用的目标数据之前,检测所述第一终端和第二终端是否均完成了解锁和信任,若未完成解锁和/或信任,提示进行解锁和/或信任授权;
40.数据备份模块,用于将第一终端中目标应用的聊天数据库备份到目标存储空间。
41.本发明还提供了一种电子设备,包括处理器、存储器和通信总线;
42.所述通信总线用于将所述处理器和存储器连接;
43.所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述中任一项实施例所述的方法。
44.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,
45.所述计算机程序用于使所述计算机执行如上述任一项实施例所述的方法。
46.本发明的有益效果:本发明提出的一种数据传输方法、系统、设备及介质,该方法通过获取第一终端中目标应用的包括有聊天数据库、联系人信息和群组信息的目标数据,将群组信息和联系人信息写入聊天数据库中,获取第二终端中目标应用的数据库规则,根据数据库规则和写入有联系人信息和群组信息的聊天数据库生成新增数据库,创建第二终端的备份包,并将该新增数据库添加到备份包中,通过备份包对第二终端进行备份还原,以实现将目标数据从第一终端传输到第二终端,基于该方法可以实现line聊天记录在不同操作系统设备之间迁移,且流程简单、兼容性强,不受版本更新影响,数据移植更安全、稳定、快速。
附图说明
47.图1是本发明一实施例提供的数据传输方法的一种流程示意图;
48.图2是本发明一实施例提供的数据传输方法的一种具体的流程示意图;
49.图3是本发明一实施例提供的数据传输系统的一种结构示意图;
50.图4是本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
51.本发明提供一种数据传输方法和相关设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
52.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元
件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
53.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
54.需要注意的是,下述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
55.发明人经过研究发现,line app不支持不同操作系统设备之间进行聊天记录迁移,用户体验度低。对于不同操作系统聊天记录的传输迁移可以通过对line app进行降低备份还原的方式实现,具体通过先降级app版本,调用android adb备份功能,将line的用户数据备份出来,解析备份中的数据库和附件,然后转换后成符合ios版本的数据库,构造出ios备份还原到ios设备。也可以通过修改反编译line的app,得到smali代码,再通过添加自定义的代码,通过自定义代码聊天记录数据库拷贝到adb可以访问的sd卡目录,再将数据库和附件拷贝到pc,进行数据库转换,以及构造ios备份还原到ios设备。
56.上述通过安装低版本app通过降级备份、还原方式的方案,具体流程如下,首先判断是否已经安装line,如果有安装需要卸载已有line,并安装自己带的低版本line,这就导致了如果直接卸载line,可能会自动删除用户已有数据,另外安装的低版本app,因为版本太低,本身是无法打开使用的。还有需要调用adb命令才能安装应用。目前由于android应用市场杂乱,存在一些流氓应用,手机厂商加强了对外部应用安装的限制,有些机型会限制安装第三方应用,导致安装失败率增加。且即便安装成功后还需要调用adb备份命令,备份android数据。目前这种备份方法,因为安全性原因,部分机型像华为设备要求进行加密备份,备份后,还需要进行解密的流程,流程变得更复杂,同时adb备份被android淘汰,主流的最新的app都不支持进adb版本,所以只有早期低版本的app支持,如果后续用户需要继续在android使用line app,还需要用户自己再升级到最新版本的line登录使用,操作不便,整个流程长、复杂、成功率不高。
57.上述通过反编译修改原始的line软件加入数据拷贝代码的方案,具体流程如下,首先判断是否已经安装line,如果用户有安装line app,则必须需要强制卸载已有line app,并安装自定义修改的line版本。这也会导致了如果直接卸载line,可能会删除已有数据的风险。同时因为是反编译了line的app,修改了代码,破坏了已有的签名,为了通过android的安装检查,加入了自定义的签名,所以会导致用户使用的是盗版的应用,存在法律风险,以及后续盗版app无法升级到最新line的问题。同时其需要调用adb安装命令安装不受信任的第三方应用,成功率也会降低。此外,因为line版本会定期发版本,一定时间后旧版本就无法登录,所以需要定期维护,在最新版本基础上做自定义修改。兼容性差。
58.可见,上述两种解决方案均存在全性低、流程长、风险高、兼容性差的缺陷。
59.为了解决上述问题,下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
60.如图1所示,本实施例提供了一种数据传输方法,该方法包括:
61.步骤s101:获取第一终端中目标应用的目标数据。
62.其中,目标数据包括联系人信息、群组信息和聊天数据库。
63.第一终端与下述的第二终端中的目标应用为同一款应用,如line等即时通讯应用。
64.第一终端中目标应用可以包括一个或多个账号。换句话说,第一终端的用户可以基于第一终端的目标应用使用一个或多个账号进行登录使用。此时,各账号的数据可以按照本领域技术人员所知晓的方式存储,在后续进行目标数据获取时,可以基于账号的账户识别信息(如id、uid、账户名称等)获取与所需账户对应的数据作为目标数据。
65.可选的,目标数据可以是一个账户的数据也可以是多个账户的数据。
66.聊天数据库包括目标应用在第一终端中所存储的数据。该聊天数据库包括有目标应用的聊天记录等。
67.在一个实施例中,获取第一终端中目标应用的联系人信息的方式包括:
68.构建授权请求二维码,授权请求二维码用于被第一终端中目标应用扫描并进行数据获取授权;
69.若授权成功,获取第一终端中目标应用的联系人标识;
70.根据联系人标识获取各联系人的联系人信息,联系人信息包括联系人移动互联网设备、名称、创建时间、头像数据等中至少之一。
71.可选的,二维码的构建方式包括:
72.向目标应用的服务器发送会话创建请求消息,并获取会话创建响应消息,会话创建响应消息包括申请认证二维码数据;
73.向目标应用的服务器发送二维码创建请求消息,并获取二维码创建响应消息,二维码创建响应消息包括申请认证二维码数据和超文本传输协议的统一资源定位符;
74.获取配对密钥,配对密钥包括公钥和私钥,将公钥进行编码,得到敏感数据参数;
75.根据预设版本号、敏感数据参数、申请认证二维码数据和超文本传输协议的统一资源定位符生成二维码的统一资源定位符;
76.根据二维码的统一资源定位符生成二维码。
77.向目标应用的服务器发送会话创建请求消息之前,该方法还包括:
78.构造第一请求头,可选的,该第一请求头至少包括请求名称、模拟客户端类型、版本号、请求方式、联系类型、协议类型、地区、接收类型中至少之一,例如,请求名称为x-line-application,模拟客户端类型为chromeos,版本号为2.4.1,设定请求方式x-lhm为post,联系类型content-type类型为application/x-thrift,协议类型protocol=tbinary,地区x-lal设置为地区缩写zh.,接收类型accept类型设定为application/x-thrift;
79.生成密钥,可选的,该密钥可以通过随机数产生若干节字节数据等方式生成,该密钥用于后续对数据的加密和解密,例如,通过随机数产生16字节的数据作为key数据(密钥),该key数据用于后续参与发送加密数据和解密接收的数据;
80.构造通信数据,可选的,该通信数据包括标签字符和加密数据中至少之一,可选的,该通信数据x-cls为与line服务器通信发送的加密后的密钥,标签数据为0005,加密数
据为base64格式的加密数据;
81.将通信数据发送给line服务器,以告知line服务器后续使用密钥进行加解密通讯。
82.可选的,请求数据为加密数据。加密数据可以使用line的公钥证书对之前随机产生的16字节key数据(密钥),做rsa非对称加密,获取加密的数据做base64编码。
83.在一个实施例中,会话创建请求消息的生成方式包括:
84.构造会话创建发送数据并指定请求路径,该会话创建发送数据包括标签头和命令,可选的,标签头为x-lpqs,其值为/acct/lgn/sq/v1,命令为createsession,请求路径可以是x-lpqs字符串和对应值的/acct/lgn/sq/v1createsession字符串,以及createsession字符串拼接起来,即x-lpqs /acct/lgn/sq/v1createsession createsession;
85.构造会话创建加密数据包,并计算会话创建加密数据包大小值,可选的,会话创建加密数据包的构造方式可以是通过aes cbc模式(也可以是其他模式,在此以该模式为例)的对称加密算法,加密该字符串(上述请求路径),并使用pkcs7算法(也可以是其他本领域技术人员所知晓的算法)补充填充数据。参与加密key为之前随机生成16字节key数据(密钥),加密后,再通过xxhash32对aes加密后数据做xxhash算法(也可以采用本领域技术人员所知晓的其他算法实现),得到后的数据作为会话创建请求消息命令的会话创建加密数据包,并记录到加密数据后尾部。可以将该会话创建加密数据包大小值设置为x-cl,作为会话创建加密数据包大小值;
86.根据上述第一请求头、通信数据、会话创建加密数据包大小值和会话创建加密数据包生成会话创建请求消息,可选的,将第一请求头(x-line-application、accept、content-type、x-lhm、x-lal)、通信数据x-lcs、会话创建加密数据包大小值x-cl作为会话创建请求消息的第一请求头,发送post请求,其中,post数据为会话创建加密数据包。
87.可选的,当目标应用为line时,目标应用的服务器的url如下:
88.https://gf.line.naver.jp/enc。
89.可选的,向目标应用的服务器发送会话创建请求消息,若该会话创建请求消息发送成功,则得到会话创建响应消息,该会话创建响应消息包括响应头数据和响应数据包,可以预设一个成功的预设响应码(如200等),解析响应头数据,该响应头数据包括x-cl,判断x-cl是否等于预设响应码(如200等),若等于则命令发送成功,否则,命令发送失败。当命令发送成功则解密响应数据包,以响应数据包为二进制加密数据为例,可以使用pkcs7等方式将加密数据按照16的倍数进行补齐,补齐后,使用aes cbc模式的算法解密数据。解密后,使用pkcs7 unpadding等方式去掉解密后的补齐数据,最终得到包含了sq开头的字符串的66个字节,其中sq字符之后的64个字节数据为数字字符串。该数字字符串代表将要申请认证二维码数据。以上数据解密和数据补齐的方式本领域技术人员也可以采用其他所知晓的方式实现。
90.在一个实施例中,获取到申请认证二维码数据,也即会话申请成功,待会话申请成功后,向目标应用的服务器发送二维码创建请求消息。
91.可选的,二维码创建请求消息的生成方式包括:
92.构造二维码创建发送数据,其中,二维码创建发送数据包括标签头、命令和数据,
可选的,标签头可以是包含x-lpqs以及/acct/lgn/sq/v1的数据,命令为createqrcode字符串,数据为之前得到的sq开头的数字字符串(申请认证二维码数据),一种二维码创建发送数据为x-lpqs /acct/lgn/sq/v1 createqrcode sq数据(申请认证二维码数据);
93.构造二维码创建加密数据包,并计算二维码创建加密数据包大小值,可选的,二维码创建加密数据包的构造方式可以是通过aes cbc模式的算法加密该字符串(二维码创建发送数据),并使用pkcs7算法补充填充数据,参与加密key为之前随机生成16字节key数据(密钥),加密后的数据依然通过xxhash32对aes加密后数据做hash校验算法,得到后的数据作为二维码创建加密数据包并记录到加密数据后尾部。同样的重新计算整个数据的大小,将其设置给x-cl(以二维码创建加密数据包大小值更新x-cl),作为二维码创建加密数据包大小值;
94.根据上述第一请求头、通信数据、二维码创建加密数据包大小值和二维码创建加密数据包生成二维码创建请求消息,可选的,将第一请求头(x-line-application、accept、content-type、x-lhm、x-lal)、通信数据x-lcs、二维码创建加密数据包大小值x-cl作为二维码创建请求消息的第一请求头,发送post请求,其中,post数据为包括createqrcode命令的二维码创建加密数据包。
95.可选的,向目标应用的服务器发送二维码创建请求消息,若该二维码创建请求消息发送成功,则得到二维码创建响应消息,该二维码创建响应消息包括响应头数据和响应数据包,可以预设一个成功的预设响应码(如200等),解析响应头数据,该响应头数据包括x-cl,判断x-cl是否等于预设响应码(如200等),若等于则命令发送成功,否则,命令发送失败。当命令发送成功则解密响应数据包,以响应数据包为二进制加密数据为例,可以使用pkcs7等方式将加密数据按照16的倍数进行补齐,补齐后,使用aes cbc模式的算法解密数据。解密后,使用pkcs7 unpadding等方式去掉解密后的补齐数据,最终得到包含了一个https的url,该数据以https://line.me/r/au/q/开头的数据 之前我们获取得到的sq开头的字符串(也即申请认证二维码数据和超文本传输协议的统一资源定位符)。以上数据解密和数据补齐的方式本领域技术人员也可以采用其他所知晓的方式实现。
96.可选的,配对密钥的生成方式可以是基于预设算法配对密钥,得到公钥和私钥,如curve x25519算法配对key(keypair),得到公钥key和私钥key。
97.可选的,将公钥进行编码,得到敏感数据参数的确定方式可以是将公钥做64编码和urlencode编码,编码后得到的值赋值给secret。
98.可选的,预设版本号可以设置为1等其他本领域技术人员所预先设定的值。
99.根据预设版本号、敏感数据参数、申请认证二维码数据和超文本传输协议的统一资源定位符生成二维码的统一资源定位符的一种示例为:
100.以上述二维码创建响应消息中的超文本传输协议的统一资源定位符(https://line.me/r/au/q/)、上述会话创建响应消息中的申请认证二维码数据(sq 64个字节数据)、敏感数据参数secret(公钥做64编码和urlencode编码后得到的值)和预设版本号e2eeversion组成二维码url,一种二维码url的示例如下:
101.https://line.me/r/au/q/sq465a54517068417962305a7731797330774c5a37594a3559626e585542375831?secret=pc6uuah%2b7dm%2b5mxizxk3eidf2bxitpitlucoprsmnbe%3d&e2eeversion=1。
102.根据二维码的统一资源定位符生成二维码,也即根据url生成二维码图片。具体的二维码图片的生成方式可以基于本领域技术人员所知晓的方式实现,在此不做限定。
103.可选的,可以通过第一终端中目标应用对该二维码进行扫描,以实现对第一终端中目标应用的应用数据进行获取进行授权。仍以line为例,用户在line app中扫描该二维码以授权第三方获取其相应的数据。
104.在一个实施例中,若授权成功,获取第一终端中目标应用的联系人标识之前,方法还包括检查二维码是否被认证,具体的,该方法还包括:
105.向目标应用的服务器发送二维码认证确认请求消息,并获取二维码认证确认响应消息,二维码认证确认响应消息包括认证成功或认证失败;
106.若二维码认证确认响应消息包括认证成功,向目标应用的服务器发送个人识别码创建请求消息,并获取个人识别码创建请求响应消息,个人识别码创建请求响应消息包括个人识别码;
107.将个人识别码发送至第一终端中目标应用,若第一终端中目标应用对个人识别码验证成功,向第一终端中目标应用发送个人识别码认证校验消息,个人识别码认证校验消息用于校验第一终端是否授权成功。
108.可选的,二维码认证确认请求消息的生成方式包括:
109.构造二维码认证发送数据,该二维码认证发送数据包括标签头、命令和数据,此时标签头为两个,以目标应用为line为例,其中一个为x-line-access以及对应的之前的66字节的sq字符串(申请认证二维码数据),另一个为x-lpqs和/acct/lgn/sq/v1的字符串数据,命令为verifycertificate,数据为sq字符串(申请认证二维码数据),也即二维码认证发送数据为x-line-access sq x-lpqs /acct/lgn/sq/v1 verifycertificate sq,此处的sq为申请认证二维码数据(sq字符串);
110.构造二维码认证加密数据包,并计算二维码认证加密数据包大小值。可选的,二维码认证加密数据包的构造方式可以是通过aes cbc模式(也可以是其他模式,在此以该模式为例)的算法加密该字符串(二维码认证发送数据),并使用pkcs7算法(也可以是其他本领域技术人员所知晓的算法)补充填充数据,参与加密key为之前随机生成16字节key数据(密钥),加密后的数据依然通过xxhash32对aes加密后数据做hash校验算法(也可以采用本领域技术人员所知晓的其他算法实现),得到后的数据作为二维码认证加密数据包并记录到加密数据后尾部。同样的重新计算整个二维码认证加密数据包的大小,将其二维码认证加密数据包大小值设置给x-cl(以二维码认证加密数据包大小值更新x-cl),作为二维码认证加密数据包的大小值。
111.根据上述第一请求头、通信数据、二维码认证加密数据包大小值和二维码认证加密数据包生成二维码认证请求消息,可选的,将第一请求头(x-line-application、accept、content-type、x-lhm、x-lal)、通信数据x-lcs、二维码认证加密数据包大小值x-cl作为二维码认证请求消息的第一请求头,发送post请求,其中,post数据为包含verifycertificate命令二维码认证加密数据包。
112.可选的,向目标应用的服务器发送二维码认证确认请求消息之后,一直等待,直到第一终端中目标应用扫码成功后,post会返回结果(二维码认证确认响应消息),返回成功后,依次发送个人识别码创建请求消息createpincode命令,接收返回个人识别码创建请求
响应消息,该个人识别码创建请求响应消息包括个人识别码(pin码),用户给第一终端中目标应用如line app传入5位(也可以是预设位数如6、7等)pin验证码,pin码验证成功后,再执行个人识别码认证校验消息checkpincodeverified命令,校验设备是否正常授权,授权成功后。
113.在一个实施例中,若授权成功,获取第一终端中目标应用的联系人标识包括:
114.发送联系人标识获取消息,获取第一终端反馈的联系人标识;
115.发送联系人信息获取消息,该联系人信息获取消息包括联系人标识,获取第一终端反馈的联系人信息,该联系人信息为加密状态,对上述加密的联系人信息进行解密,得到联系人移动互联网设备、名称、创建时间、头像数据等中至少之一。
116.例如,发送获取getallcontactids命令(联系人标识获取消息)获取所有联系人的id(联系人标识),再通过id,发送getcontacts(联系人信息获取消息)获取单个联系人全部信息的命令,解密得到对应联系人mid(联系人移动互联网设备),名称,创建时间,头像数据等信息。
117.可选的,获取群组信息的方式可以是类似调用getgroups方法实现,也可以是由本领域技术人员所知晓的其他方式实现。
118.在一个实施例中,获取第一终端中目标应用的聊天数据库包括:
119.将第一终端中目标应用的聊天数据库备份到目标存储空间;
120.获取目标数据的目标账户识别信息,并根据目标账户识别信息从目标存储空间中获取聊天数据库。
121.可选的,以第一终端搭载android系统为例,目标存储空间可以是googledrive(谷歌云端硬盘)登录授权访问line空间为例,将第一终端中目标应用的聊天数据库备份到目标存储空间包括:
122.获取谷歌服务登录令牌,根据谷歌服务登录令牌获取谷歌云端硬盘line空间访问权限,进而请求获取谷歌云端硬盘line空间中预先备份的line的聊天数据库。
123.由于谷歌云端硬盘line空间可能存储有多个line账号的聊天数据库,可以通过获取所需要的账户的账户识别信息(id),根据该账户识别信息从谷歌云端硬盘line空间中获取聊天数据库。
124.可选的,该谷歌服务登录令牌的获取方式可以通过构造载荷数据(payload的数据),向谷歌服务器发送令牌获取请求消息,获取反馈的令牌获取反馈消息,该令牌获取反馈消息包括谷歌服务登录令牌。例如,设置第一payload使用ssl协议,但加密算法可以使用默认算法,也可以使用本领域技术人员所配置的配置算法。构造第一payload的数据,发送post请求,向https://android.clients.google.com/auth获取token数据(谷歌服务登录令牌),其中,构造payload的数据的一种方式如下:
125.accounttype设置为hosted_or_google",email设置用户gmail邮箱,device_country设置us,operatorcountry设置us,lang语音设置为en,source设置为android,androidid为16字节随机数,sdk版本为17。encryptedpasswd为经过base64编码的加密数据,该加密数据由google公钥对google账号和密码进行rsa加密算法生成的;
126.将第一payload数据发送至谷歌服务器发送令牌认证请求消息进行认证,若认证成功,则可以接收到令牌认证反馈消息,该令牌认证反馈消息包括token数据(谷歌服务登
录令牌)。
127.可选的,获取谷歌云端硬盘line空间访问权限的方式包括:
128.设置第二payload使用ssl协议,但加密算法可以是默认算法,也可以是由本领域技术人员所配置的配置算法。构造第二payload的数据,发送post请求,向https://android.clients.google.com/auth获取token数据(谷歌服务登录令牌),其中,一种构造第二payload的数据如下:
129.email设置用户gmail邮箱,device_country设置us,operatorcountry设置us,lang语音设置为en,androidid为16位长度的随机数,google_play_services_version为212621022,sdk_version为25,client_sig和callersig 42位长度的随机数,service设置位oauth2:https://www.googleapis.com/auth/drive.appdata,采用oauth2认证。app和callerpkg设置位line的app id,jp.naver.line.android,token设置为前面google登录认证获取的token值(谷歌服务登录令牌)。
130.将第二payload数据发送至谷歌服务器发送用户认证请求消息进行认证,若认证成功,则可以接收到用户认证反馈消息,该用户认证反馈消息包括auth字符数据。
131.可选的,通过auth发送get请求可以获取line存储在googledrive的数据空间。
132.可选的,根据目标账户识别信息从目标存储空间中获取聊天数据库包括:
133.获取目标存储空间中存储的账户关联信息,该账户关联信息包括存储账户识别信息、存储账户名称、存储数据包大小、存储数据创建时间中至少之一;
134.根据目标账户识别信息从目标存储空间中获取聊天数据库。
135.具体的,一种示例性根据目标账户识别信息从目标存储空间中获取聊天数据库包括:
136.构造第三请求头,第三请求头user-agent设置为line google-api-java-client google-http-java-client/1.28.0(gzip),x-goog-api-client设置为java/0.0.0http-google-a/1.26.0linux/3.18.48,authorization设置为bearer 前面获取的auth值;
137.构造好第三请求头数据后,向urlhttps://www.googleapis.com/drive/v3/files?fields=files(id,%20name,%20size,%20createdtime)&orderby=createdtime&spaces=appdatafolder,发送get请求;
138.发送成功后,得到googledrive空间(谷歌云端硬盘line空间)存储中line的账号id(存储账户识别信息),账号名称name(存储账户名称),数据包大小size(存储数据包大小),以及数据包创建时间createtime(存储数据创建时间)。
139.需要说明的是,googledrive空间(谷歌云端硬盘line空间)存储中可能由多个不同line账号。
140.请求下载googledrive中对应line账号的存储空间数据的一种方式为:
141.请求的url为“https://www.googleapis.com/download/drive/v3/files/" 之前获取的line的id(目标账户识别信息) "?alt=media";
142.请求头依然是前面构造的第三请求头,此时第三请求头user-agent、x-goog-api-client、authorization设置为bearer 前面获取的auth值;
143.发送成功后,得到gzip的压缩数据包,通过解压算法解压后得到line的聊天数据库。
144.步骤s102:将联系人信息和群组信息写入聊天数据库。
145.可选的,将联系人信息和群组信息写入聊天数据库包括:
146.在聊天数据库中新增联系人表和群组表,将联系人信息写入联系人表,将群组信息写入群组表。
147.将联系人信息和群组信息写入聊天数据库的实现方式也可以是新建一个数据库,将联系人信息和群组信息以及聊天数据库中的数据全部转移到新的数据库中。
148.将联系人信息和群组信息写入聊天数据库的实现方式还可以是本领域技术人员所能够知晓的其他方式实现。
149.其中,上述所获取到的聊天数据库可以是sqlite数据库,在sqlite数据库中创建contacts表,表结构中包含m_id,name,picture_path,updated_time,created_time等数据,将联系人信息写入sqlite数据库(以目标应用为line为例,将通过第一终端找那个line扫码获取contacts对应信息(联系人信息)写入数据库中)。
150.相似的,在sqlite数据库创建groups表,表结构中包含id,name,picture_status,updated_time,created_time,invitation_enabled,can_add_member_as_friend,can_invite_by_ticket等数据,将群组信息写入数据库中(以目标应用为line为例,将之前line扫码获取groups对应信息写入数据库中)。
151.步骤s103:获取第二终端中目标应用的数据库规则,并根据数据库规则和写入有联系人信息和群组信息的聊天数据库生成新增数据库。
152.可选的,该步骤s103包括:
153.建立符合第二终端中目标应用数据库规则的新增数据库;
154.读取写入有联系人信息和群组信息的聊天数据库中的数据库数据,该数据库数据包括群组信息、联系人信息,以及会话聊天记录和附件的发送内容和时间;
155.将数据库数据写入新增数据库,以生成包括有第一终端目标应用信息且符合第二终端目标应用的数据库规则的新增数据库。
156.步骤s104:创建第二终端的备份包,将新增数据库添加到备份包。
157.其中,备份包用于对第二终端进行备份还原,以实现将目标数据从第一终端传输到第二终端。第一终端和第二终端的操作系统不同。
158.可选的,第一终端的操作系统为android操作系统,第二终端的操作系统为ios操作系统。第一终端与第二终端可以是同一个物理实体,也可以是不同的物理实体。
159.可选的,备份包的创建方式可以是通过获取第二终端的设备型号、设备名、序列号、操作系统版本号等中至少之一创建出第二终端的备份包。将新增数据库添加到备份包的方式可以采用本领域技术人员所知晓的方式实现。
160.采用备份包对第二终端进行备份还原的方式也可以采用本领域技术人员所知晓的方式实现。例如,可以通过调用第二设备自带的备份还原服务接口,将备份包还原到设备中,待还原完成后,此时聊天数据已经写入到第二终端目标应用的存储位置,在第二终端启动目标应用并登陆目标账户识别信息所对应的账户后,数据就会正常加载。
161.在一个实施例中,目标数据还包括附件,对第二终端基于备份包进行备份还原之前,该方法还包括:
162.从写入有联系人信息和群组信息的聊天数据库中获取聊天记录,并确定附件在聊
天记录中的附件位置路径;
163.获取第二终端中目标应用的附件存放路径;
164.根据附件存放路径和附件位置路径将附件存储入第二终端。
165.可选的,对第二终端基于备份包进行备份还原之前,该方法还包括:
166.将附件添加到备份包中。
167.可选的,附件包括图片、视频、语音、文件等中至少之一。
168.可选的,获取附件的方式包括:
169.通过adb命令,获取的附件,例如,可以获取第一设备中目标应用的附件的默认存储路径,基于该默认存储路径通过拷贝的方式获取。以目标应用为line为例,默认存储路径可以是/sdcard/android/data/jp.naver.line.android/files/chats。
170.附件位置路径可以通过聊天记录来确定,具体的确定方式可以采用本领域技术人员所知晓的方式实现。
171.例如,以第二终端的操作系统为ios系统,目标应用为line为例,上述sqlite数据库中包含了完整的对话数据,以及联系人信息和群组信息。该数据库数据未加密,可以直接读取群组、联系人信息,以及会话聊天记录和附件的发送内容和时间。创建新的名为line.sqlite的数据库(新增数据库),建立符合ios line聊天数据库表内容对应的zchat、zgroup、zmessage、zchat等表。并将解析得到的数据库内容,读取出来写入到新数据库(新增数据库)对应表中。通过将聊天记录中的附件路径(附件位置路径),按照ios的line附件相对路径(附件存放路径)library/application support/privatestore/p_账号mid/message attachments存放。
172.又例如,以第二终端的操作系统为ios系统,目标应用为line为例,从ios设备(第二终端)中,获取相关信息包含设备型号、设备名、序列号、ios版本号,创建出对应设备的ios备份包,将新增数据库和附件依次添加到备份包中。在ios设备登录line app,登录成功后,启动ios设备本身自带的备份还原服务,调用还原服务接口,将ios备份包还原到设备,还原完成后,此时聊天数据已经写入到app的存储位置,启动line app后数据会正常加载。
173.在一个实施例中,获取第一终端中目标应用的目标数据之前,该方法还包括:
174.分别安装第一终端操作系统的最新版本驱动程序、第二终端操作系统的最新版本驱动程序;
175.分别获取第一终端的解锁和信任、第二终端的解锁和信任。
176.其中驱动程序用于对第一终端和第二终端进行硬件识别以及通信。解锁和信任用于获取第一终端的读写权限和第二终端开启备份服务。
177.可选的,以第一终端的操作系统为android系统,第二终端的操作系统为ios系统为例,可以预先判断识别当前系统下否有ios、android驱动程序,没有则安装最新版本的驱动程序,用于ios和android硬件识别以及通信做准备;
178.接入第一终端和第二终端后判断设备是否解锁、信任,未解锁信任,先让用户进行解锁锁屏密码,并进行信任授权,用于获取android sd卡设备的读写权限和ios端开启备份服务做准备。
179.在一个实施例中,以第一终端的操作系统为android系统为例,获取第一终端中目标应用的目标数据之前,该方法还包括:
180.引导原android设备(第一终端)将数据(聊天数据库)备份到google drive的line app空间存储(目标存储空间)中。
181.以下以第一终端的操作系统为android系统的android设备,第二终端的操作系统为ios系统的ios设备,目标应用为line app为例,参见图2,图2给出了一种具体的数据传输方法,该具体的方法包括:
182.步骤s10:引导连接识别ios设备和android设备,备份line数据。
183.其中,line数据为android设备中的数据,可以通过引导android设备将聊天数据库备份到google drive的line app空间存储中实现备份。可选的,此处可以通过pc连接识别ios设备和android设备。
184.步骤s20:构造生成line授权二维码,扫码授权获取联系人和群组信息。
185.其中,通过android设备的line app扫描该line授权二维码,以实现数据获取授权,使得能够从android设备中获取联系人信息和群组信息。
186.步骤s30:构造gooledrive请求登录授权访问line空间,下载line数据库。
187.此处line空间即为目标存储空间,也即google drive的line app空间。
188.此处line数据库也即聊天数据库。
189.由于目标存储空间可能存储有多个账号的数据库,此时可以根据账号id以获取对应的聊天数据库。
190.步骤s40:将联系人信息和群组信息写入会话数据库中,将android line的附件拷贝到pc。
191.需要说明的是,会话数据库也即聊天数据库。
192.将android line的附件拷贝到pc也即将android设备中line app的附件拷贝到电脑等存储介质。
193.需要说明的是,pc也可以是利用其它终端或服务器替换。
194.步骤s50:将数据库转换为适合ios版本的数据块文件和附件。
195.此处的数据库也即上述写入有联系人信息和群组信息的聊天数据库。
196.具体的转换方式可以参考上述新增数据库的生成方式,通过转换以得到新增数据库。
197.步骤s60:构造包含line数据的ios备份包,将备份还原到设备。
198.换句话说,构建包括有上述新增数据库和附件的ios备份包,通过调用ios设备自带的备份还原接口,实现android设备中line数据迁移到ios设备中。
199.上述实施例提供了一种数据传输方法,该方法通过获取第一终端中目标应用的包括有聊天数据库、联系人信息和群组信息的目标数据,将群组信息和联系人信息写入聊天数据库中,获取第二终端中目标应用的数据库规则,根据数据库规则和写入有联系人信息和群组信息的聊天数据库生成新增数据库,创建第二终端的备份包,并将该新增数据库添加到备份包中,通过备份包对第二终端进行备份还原,以实现将目标数据从第一终端传输到第二终端,基于该方法可以实现line聊天记录在不同操作系统设备之间迁移,且流程简单、兼容性强,不受版本更新影响,数据移植更安全、稳定、快速。
200.可选的,为了将android设备(第一终端)的line app数据(目标数据)迁移到ios设备(第二终端)。通过构造googledrive请求登录授权访问line空间,获取对应line账号的聊
天数据库,构造生成line授权二维码,通过line app扫码授权获取line的联系人和群组的信息,将联系人和群组信息写入聊天数据库中,将该聊天数据库转换为ios的数据库,构造创建ios备份,将数据还原到ios设备当中。登录账号还原后,数据正常迁移导入。该方案能够快速方便解决line的android设备到ios数据传输的问题。该方案不需要安装app,不需要卸载app,不需要调用备份或加密备份android数据,流程更为简单。兼容性更强,不受版本更新影响,数据移植更安全、稳定、快速。不需要安装第三方app,不需要卸载原始line app,不需要调用adb还原android数据,流程更为简单。兼容性更强,不受line版本更新影响,解决android和ios设备之间line聊天记录相互传输迁移。
201.采用本实施例所提供的方法可以直接通过登录授权访问google drive空间进行读写、通过构造生成line授权二维码获取信息,以及通过将联系人群组和聊天信息合并转换的方式,进行对line聊天记录的迁移,只需要网络访问,不需要root设备,不安装额外app,不需要卸载app、不需要还原android数据,流程更为简单稳定。兼容性更强,不受版本更新影响,支持最新android系统和最新line版本。
202.基于上述数据传输方法,本实施例提供了一种数据传输系统,其中,请参阅图3,该数据传输系统300包括:
203.数据获取模块301,用于获取第一终端中目标应用的目标数据,目标数据包括联系人信息、群组信息和聊天数据库;
204.写入模块302,用于将联系人信息、群组信息写入聊天数据库;
205.生成模块303,用于获取第二终端中目标应用的数据库规则,并根据数据库规则和写入有联系人信息和群组信息的聊天数据库生成新增数据库;
206.创建模块304,用于创建第二终端的备份包,将新增数据库添加到备份包,备份包用于对第二终端进行备份还原,以实现将目标数据从第一终端传输到第二终端,其中,第一终端和第二终端的操作系统不同。
207.可选的,该系统还包括以下至少之一:
208.驱动检测模块,用于在数据获取模块获取第一终端中目标应用的目标数据之前,检测数据传输系统中目标操作系统的驱动,若驱动缺失或版本低于最新版本,为数据传输系统安装目标操作系统最新版本的驱动,目标操作系统包括第一终端操作系统和第二终端操作系统;
209.解锁信任检测模块,用于在数据获取模块获取第一终端中目标应用的目标数据之前,检测第一终端和第二终端是否均完成了解锁和信任,若未完成解锁和/或信任,提示进行解锁和/或信任授权;
210.数据备份模块,用于将第一终端中目标应用的聊天数据库备份到目标存储空间。
211.可选的,目标数据还包括附件,该系统还包括附件迁移模块,用于:
212.对第二终端基于备份包进行备份还原之前,从写入有联系人信息和群组信息的聊天数据库中获取聊天记录,并确定附件在聊天记录中的附件位置路径;
213.获取第二终端中目标应用的附件存放路径;
214.根据附件存放路径和附件位置路径将附件存储入第二终端。
215.可选的,数据获取模块包括联系人信息获取模块,用于:
216.构建授权请求二维码,授权请求二维码用于被第一终端中目标应用扫描并进行数
据获取授权;
217.若授权成功,获取第一终端中目标应用的联系人标识;
218.根据联系人标识获取各联系人的联系人信息,联系人信息包括联系人移动互联网设备、名称、创建时间、头像数据等中至少之一。
219.可选的,二维码的构建方式包括:
220.向目标应用的服务器发送会话创建请求消息,并获取会话创建响应消息,会话创建响应消息包括申请认证二维码数据;
221.向目标应用的服务器发送二维码创建请求消息,并获取二维码创建响应消息,二维码创建响应消息包括申请认证二维码数据和超文本传输协议的统一资源定位符;
222.获取配对密钥,配对密钥包括公钥和私钥,将公钥进行编码,得到敏感数据参数;
223.根据预设版本号、敏感数据参数、申请认证二维码数据和超文本传输协议的统一资源定位符生成二维码的统一资源定位符;
224.根据二维码的统一资源定位符生成二维码。
225.可选的,若授权成功,获取第一终端中目标应用的联系人标识之前,方法还包括:
226.向目标应用的服务器发送二维码认证确认请求消息,并获取二维码认证确认响应消息,二维码认证确认响应消息包括认证成功或认证失败;
227.若二维码认证确认响应消息包括认证成功,向目标应用的服务器发送个人识别码创建请求消息,并获取个人识别码创建请求响应消息,个人识别码创建请求响应消息包括个人识别码;
228.将个人识别码发送至第一终端中目标应用,若第一终端中目标应用对个人识别码验证成功,向第一终端中目标应用发送个人识别码认证校验消息,个人识别码认证校验消息用于校验第一终端是否授权成功。
229.可选的,数据获取模块还包括聊天数据库获取模块,用于:
230.将第一终端中目标应用的聊天数据库备份到目标存储空间;
231.获取目标数据的目标账户识别信息,并根据目标账户识别信息从目标存储空间中获取聊天数据库。
232.在本实施例中,该系统实质上是设置了多个模块用以执行上述实施例中的方法,具体功能和技术效果参照上述实施例中的方法即可,此处不再赘述。
233.参见图4,本发明实施例还提供了一种电子设备400,包括处理器401、存储器402和通信总线403;
234.通信总线403用于将处理器401和存储器连接402;
235.处理器401用于执行存储器402中存储的计算机程序,以实现如上述实施例一中的一个或多个所述的方法。
236.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,
237.计算机程序用于使计算机执行如上述实施例一中的任一项所述的方法。
238.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例的实施例一所包含步骤的指令(instructions)。
239.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计
算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
240.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
241.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
242.附图中的流程图和框图,图示了按照本公开各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
243.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献