CN105468472B - 基于iOS操作***的数据备份、恢复方法及装置 - Google Patents

基于iOS操作***的数据备份、恢复方法及装置 Download PDF

Info

Publication number
CN105468472B
CN105468472B CN201410333889.5A CN201410333889A CN105468472B CN 105468472 B CN105468472 B CN 105468472B CN 201410333889 A CN201410333889 A CN 201410333889A CN 105468472 B CN105468472 B CN 105468472B
Authority
CN
China
Prior art keywords
data
database
short message
reading
backup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410333889.5A
Other languages
English (en)
Other versions
CN105468472A (zh
Inventor
陈灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410333889.5A priority Critical patent/CN105468472B/zh
Publication of CN105468472A publication Critical patent/CN105468472A/zh
Application granted granted Critical
Publication of CN105468472B publication Critical patent/CN105468472B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于iOS操作***的数据备份、恢复方法及装置。该方法包括:通过应用程序调用iOS操作***提供的设置有数据库读取权限SQLite的C语言接口,读取数据库中待备份数据,将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备。应用本发明,可以提升用户访问安全性。可以降低数据备份和恢复的传输数据量,满足用户对数据备份和恢复的多样化需求。

Description

基于iOS操作***的数据备份、恢复方法及装置
技术领域
本发明涉及信息备份技术,具体涉及一种基于苹果移动(iOS,iPhone OS)操作***的数据备份、恢复方法及装置。
背景技术
苹果移动(iOS,iPhone OS)操作***作为苹果公司为iPhone、iPad、iPod等iOS设备开发的移动操作***,由于可以兼容大量的应用软件,满足了不同用户的个性化需求,应用的用户越来越多。同时,随着信息科学技术的不断发展,用户在iOS设备上安装的应用软件也越来越多,使得iOS设备上的数据量迅猛增长。但由于iOS操作***是一个封闭的操作***,因此,应用开发者只能使用苹果公司对外公开提供的开发接口进行应用软件的开发,从而使得开发出的针对iOS操作***的应用软件所能够实现的功能受制于提供的开发接口。例如,iOS操作***中的短信程序在收发短信后,由于目前苹果公司并没有针对短信的导入和导出提供相关的接口,因此,iOS设备中收发的短信只能存储在iOS设备中,使得在需要对短信等数据进行备份以提高数据安全性的场景下,存储在iOS设备中的数据的安全性较低;同时,外部设备数据也无法导入到iOS设备进行备份,影响了用户业务的体验。
目前,对于非iOS设备,例如,固定终端设备,开发有一些软件,例如,短信助手,用于实现对非iOS设备中短信的备份和恢复。具体来说,利用windows操作***或OS X操作***中的短信助手,采用私有通用串行总线(USB,Universal Serial Bus)协议拷贝操作***中用于存储短信的短信数据库,并将拷贝的短信数据库,通过USB接口输出至预先设置的非iOS操作***服务器,从而实现短信的备份,而短信的恢复流程为短信备份流程的逆流程。其中,OS X操作***是苹果公司为Mac系列产品开发的专属操作***,基于UNIX***。由于接口的不同,因而,非iOS操作***中的数据备份不能应用于iOS操作***。因而,现有技术中还没有能够从iOS操作***中备份数据、以及,将外部数据恢复到iOS操作***中的技术方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于iOS操作***的数据备份、恢复方法及装置。
依据本发明的一个方面,提供了一种基于iOS操作***的数据备份方法,该方法包括:
通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备。
优选地,所述读取数据库中待备份数据包括:
设置iOS操作***采用增量数据库对上一次数据备份后新生成的数据进行存储;
读取数据库中增量数据库中的数据。
优选地,所述方法进一步包括:
iOS操作***在确定数据备份完成后,将增量数据库中数据写入到历史数据库中,并清空所述增量数据库。
优选地,在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法进一步包括:
获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库的更新日期信息相匹配,执行所述读取增量数据库的流程。
优选地,所述增量数据库为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储数据后,将第一个存储新生成的数据的增量数据库中数据写入到所述iOS操作***中用于存储数据的数据库中,清空所述第一个存储新生成的数据的增量数据库,在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法进一步包括:
获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;
获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;
如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
优选地,在将读取的所述待备份数据转换为机器语言数据后,所述方法进一步包括:
对所述计算机数据按照预先设置的加密算法进行加密处理。
优选地,所述加密算法包括:增强的数据保密协议、数据加密算法、数据加密标准以及三层数据加密标准。
优选地,所述方法进一步包括:
确定待备份数据备份完毕,删除所述数据库中的待备份数据。
优选地,所述数据库为短信数据库,所述短信数据库包括:短信表项、会话表项、句柄表项、会话-短信表项以及会话-句柄表项,其中,
短信表项,用于存放短信标识;
会话表项,用于存放短信会话标识;
句柄表项,用于存放句柄标识;
会话-句柄表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息是短信对应的短信联系人信息;
会话-短信表项,用于存放每一短信会话标识对应的短信。
优选地,所述将读取的所述待备份数据转换为机器语言数据包括:
获取待备份数据对应的数据文件;
调用HttpPostedFile类的InputStream属性,访问所述数据文件;
调用Stream类的read方法,将访问的所述数据文件以二进制形式的数据写入Byte类型的数组中。
优选地,所述将转换的机器语言数据备份到预先设置的备份设备包括:
获取所述备份设备中数据库结构信息,将转换的机器语言数据转换为符合获取的数据库结构的数据,并写入所述备份设备中数据库。
优选地,所述机器语言数据包括:二进制数据、八进制数据以及十六进制数据。
优选地,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
根据本发明的另一个方面提供了一种基于iOS操作***的数据恢复方法,该方法包括:
通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
优选地,所述方法进一步包括:
对接收的机器语言数据进行解密。
优选地,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
优选地,所述数据恢复请求中携带待恢复数据的时间段信息,所述读取备份数据库中的数据包括:
解析数据恢复请求,获取时间段信息;
读取备份数据库中包含在所述时间段信息内的数据。
优选地,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
根据本发明的再一个方面提供了一种基于iOS操作***的数据备份装置,该装置包括:数据读取模块以及数据转换模块,其中,
数据读取模块,用于通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
数据转换模块,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
优选地,所述数据库为短信数据库,所述待备份数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
优选地,所述数据读取模块包括:增量数据库存储单元以及读取单元,其中,
增量数据库存储单元,用于存储iOS操作***在上一次数据备份后新生成的数据;
读取单元,用于读取增量数据库存储单元存储的数据。
优选地,所述数据读取模块进一步包括:
历史数据库存储单元,用于在iOS操作***确定数据备份完成后,将增量数据库中数据写入并存储,并清空所述增量数据库存储单元。
优选地,所述数据读取模块进一步包括:
第一匹配单元,用于获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库存储单元的更新日期信息相匹配,通知读取单元。
优选地,所述增量数据库存储单元设置为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储单元存储数据后,将第一个存储新生成的数据的增量数据库存储单元中数据写入到所述历史数据库存储单元中,清空所述第一个存储新生成的数据的增量数据库存储单元;所述数据读取模块进一步包括:
第二匹配单元,用于获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
优选地,所述数据转换模块包括:转换单元以及输出单元,其中,
转换单元,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据;
输出单元,用于通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
优选地,所述数据转换模块进一步包括:
加密单元,用于对所述机器语言数据按照预先设置的加密算法进行加密处理。
优选地,所述装置进一步包括:
数据删除模块,用于在确定待备份数据备份完毕后,删除所述数据库中的待备份数据。
根据本发明的再一个方面提供了一种基于iOS操作***的数据恢复装置,该装置包括:数据接收模块以及数据写入模块,其中,
数据接收模块,用于通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
数据写入模块,用于将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
优选地,所述装置进一步包括:
解密模块,用于对接收的机器语言数据进行解密,并将解密的机器语言数据输出至数据写入模块。
优选地,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
优选地,所述装置进一步包括:
数据请求模块,用于在发送数据恢复请求时,携带待恢复数据的时间段信息,以使备份设备解析数据恢复请求,获取时间段信息,读取备份数据库中包含在所述时间段信息内的数据。
根据本发明的基于iOS操作***的数据备份、恢复方法及装置,可以通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据,将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备。由此解决了能够从iOS操作***中备份数据、以及,将外部数据恢复到iOS操作***的技术问题,取得了有效降低数据备份和恢复的传输数据量,数据备份和恢复方法适应性广,满足用户对数据备份和恢复的多样化需求的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例基于iOS操作***的数据备份方法流程;
图2示出了本发明实施例基于iOS操作***的数据恢复方法流程;
图3示出了本发明实施例基于iOS操作***的数据备份装置结构;以及,
图4示出了本发明实施例基于iOS操作***的数据恢复装置结构。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有技术中,由于目前苹果公司并没有针对iOS操作***提供数据备份和恢复相关的接口,因此,iOS设备中的数据不能实现与外部设备的交互,使得数据的安全性较低,影响了用户业务的体验。
进一步地,现有非iOS操作***(设备)采用私有通用串行总线协议拷贝操作***中短信数据库进行备份和恢复的方法,由于采用私有USB协议,而且传输介质为USB接口,使得该方法在iOS操作***升级后,如果短信数据库结构发生变化,例如,存储的短信格式或类型发生变化,在备份的短信数据库结构未发生同样变化的情况下,不能实现将备份的短信数据库中短信恢复到发生结构变化的短信数据库,也不能实现将发生结构变化的短信数据库中短信备份到未发生结构变化的短信数据库;而且,对于跨操作***的短信备份和恢复,由于操作***之间的不兼容,通过直接拷贝短信数据库的方法,不能实现短信备份和恢复。例如,基于windows操作***备份的短信,不能恢复到基于安卓操作***或塞班操作***的短信数据库。使得现有非iOS操作***通过利用私有USB协议,直接拷贝操作***中的短信数据库的短信备份和恢复方法,在短信数据库结构发生变化,或者,对于跨操作***的短信备份和恢复,不能实现短信备份和恢复。
在iOS操作***架构中,包括:Core OS层、Core Services层、Media层以及CocoaTouch层,其中,
核心(Core)OS层是开源、符合POSIX标准的一个Unix核心,用于提供iOS操作***的基础功能,其中,基础功能可以通过C语言的API来提供,包括:硬件驱动、内存管理、程序管理、线程管理(POSIX)、文件***以及标准输入输出等。其中,核心OS层的硬件驱动功能用于提供硬件和***框架之间的接口。由于基于安全的考虑,在iOS操作***中,只有有限的***框架类能访问硬件驱动。
Core Services层在Core OS层上,基于Core OS层基础,提供了更为丰富的功能,即为所有的应用程序提供基础***服务,是基础***服务构建的基础,包含:Foundation.Framework功能以及Core Foundation.Framework功能,其中,框架(Foundation)是属于Objective-C的API,Core Fundation是属于C语言的API,用于提供处理字串、排列、组合、日历、时间等基本功能。
Media层用于提供图片、音乐、影片等多媒体功能。
Cocoa Touch层位于最上层,是Objective-C的API,其中最核心的部分是UIKit.Framework。作为功能之一,Cocoa Touch层可以提供应用程序界面上的各种组件呈现。
其中,Core OS层以及Core Services层的C语言的API利用C/C++常规接口函数实现,控制SQLite数据库连接对象和预置对象,C/C++常规接口函数包括:sqlite3_open()、sqlite3_prepare()、sqlite3_step()、sqlite3_column()、sqlite3_finalize()、sqlite3_close()。其中,SQLite数据库是一款轻型的关联式数据库,能够支持Windows/Linux/Unix等主流操作***,该***利用客户端/服务器端(C/S,Client/Server)两层架构来实现用户与数据库的关联,客户端调用统一的C语言的API函数(C/C++常规接口函数),通过因特网与远程服务器建立连接,服务器底层与SQLITE数据库关联,客户端提出数据访问的方法,首先由服务器接管,并由服务器将访问方法逐个提交给SQLITE数据库处理,然后将处理的结果由服务器发送给客户端,因为服务器是多用户接口都可以访问的,又支持网络连接,所以通过服务器来接管所有的客户连接与访问,这样就实现了SQLITE数据库具有多用户的网络访问功能。
本发明实施例中,考虑利用iOS操作***提供的SQLite的C语言接口,读取数据,使之可基于SQLite的C语言接口进行数据备份,从而提出基于iOS操作***的数据备份和恢复的具体实施方案,使得iOS操作***中的数据能够与外部设备共享,提升录音数据存储的安全性。
进一步地,二进制数据广泛应用在计算机通信领域中,由于各操作***都能支持二进制数据并能进行二进制数据转换。这样,本发明实施例中,通过将文件转换为二进制数据,使之以二进制数据的方式保存到数据库中,从而可以在各通信主体之间,基于任何操作***,例如,在短信数据库结构发生变化,或者,对于跨操作***,都能实现数据的有效备份。这样,在操作***中存储的数据量较大时,占用操作***过多的文件***空间,并影响到操作***性能,但用户期望保留该操作***中的数据量,可以使用本发明实施例的备份功能,以在后续需要查看数据时,可以随时从备份的服务器中恢复数据。
图1示出了本发明实施例基于iOS操作***的数据备份方法流程。参见图1,该流程包括:
步骤101,通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
本步骤中,不同的iOS操作***具有不同的数据库结构,不同的数据库结构中,数据存储格式可以不同。
作为可选实施例,数据库可以为短信数据库。其中,短信数据库在iOS操作***(设备)中的存储路径为:/var/mobile/Library/SMS/sms.db。不同短信数据库结构的短信,短信格式可以不同。当然,实际应用中,数据库可以为通信录数据库,通信录数据库的存储路径为:var/mobile/library/AddressBook。作为可选实施例,通讯录数据以AddressBook.sqlitedb的格式保存在该通信录数据库中。
较佳地,数据库采用SQLite数据库格式,其中,符合SQLite数据库格式的数据库的后缀可以是db,也可以是sqlitedb。
本发明实施例中,短信数据库包括:短信(message)表项、会话(chat)表项、句柄(handle)表项、(会话-短信)chat_message_join表项以及(会话-句柄)chat_handle_join表项,其中,
message表项,用于存放短信标识;作为可选实施例,短信标识值可以通过结合联系人信息以及发送时间信息计算MD5值获得。例如,当该移动终端的操作***为android操作***时,有一条在2012年12月28日11点07分发给10086的短信,由于android***的时间采用的是相对于1970年1月1日开始的毫秒数计时,因而,发送时间信息date=1356675643123,联系人信息Address=10086,短信标识值通过计算字符串135667564312310086的MD5值获得。
chat表项,用于存放短信会话标识;
handle表项,用于存放句柄标识;
chat_handle_join表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息可以是短信对应的收件人信息,即短信联系人信息,每一短信会话对应的句柄信息以句柄标识信息进行表示。
本发明实施例中,chat_handle_join表项包括:短信会话标识(chat_id)字段和句柄标识(handle_id)字段。其中,chat_id字段与handle_id字段形成映射关系,一个chat_id字段可以映射多个handle_id字段,也可以是多个chat_id字段映射一个handle_id字段。当一个chat_id字段映射多个handle_id时,表明该chat_id对应的短信会话为群发会话,即一个群发会话对应多个短信联系人信息。在iOS操作***中,群发会话对应的多个短信联系人信息对应一个短信会话。通过该chat_handle_join表项,可以确定短信是单发短信还是群发短信。
chat_message_join表项,用于存放每一短信会话标识对应的短信。其中,每一短信会话对应一短信。
作为可选实施例,iOS操作***中存储的数据可以全部保存在数据库中。这样,可以将iOS操作***中用于存储数据的数据库备份到任意备份设备中。
作为另一可选实施例,在备份设备已对该iOS操作***中的数据库进行过备份,且iOS操作***中的数据只在该备份设备进行备份的情况下,由于已备份的服务器中可能存储有与该iOS操作***相同的数据,如果直接将用于存储数据的数据库进行备份,将导致相同数据在iOS设备与备份设备之间重复传输,使得数据备份和恢复的传输数据量大,数据备份和恢复所需时间较长,效率较低。因而,为了有效降低数据的传输量,读取数据库中待备份数据可以包括:
A11,设置iOS操作***采用增量数据库对上一次数据备份后新生成的数据进行存储;
本步骤中,对于短信,新生成的数据包括上一次数据备份后,新接收的短信(短信内容以及发送短信的联系人信息)以及新发送的短信。其中,对于群发短信,包括短信内容以及群发对应的联系人信息。对于非短信等的数据,新生成的数据包括新数据以及对原有数据的编辑信息。其中,数据的编辑包括:修改、删除、替换等。这样,在后续数据备份中,可以根据对数据的操作执行相应处理策略,例如,如果增量数据库中的数据为新数据,则在后续备份中,可以直接将该新数据写入备份数据库中,如果增量数据库中的数据为对原有数据的删除信息,则在后续备份中,从备份数据库中,删除该删除信息对应的数据。
A12,读取数据库中增量数据库中的数据。
本发明实施例中,可以定时对增量数据库中数据进行处理。因而,该方法可以进一步包括:
iOS操作***在确定数据备份完成后,将增量数据库中数据写入到所述历史数据库中,并清空所述增量数据库。
本步骤中,在将增量数据库中数据备份到备份数据库中后,清空所述增量数据库中数据,以存储新的增量数据。
作为可选实施例,在对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,该方法进一步包括:
获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库的更新日期信息相匹配,执行所述读取增量数据库的流程。
本步骤中,备份设备存储的所述iOS操作***中数据的更新日期信息为iOS操作***确定数据备份完成的日期信息。在将增量数据库中数据写入到历史数据库中后,历史数据库的更新日期信息为增量数据库中最后一条数据写入到历史数据库的日期信息。如果iOS操作***中数据的更新日期信息与所述历史数据库的更新日期信息相同,或者,两者的时间差小于预先设置的时间差阈值,则表明两者相匹配。
当然,实际应用中,也可以设置多个增量数据库,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储数据后,将第一个存储新生成的数据的增量数据库中数据写入到所述iOS操作***中用于存储数据的数据库中,清空所述第一个存储新生成的数据的增量数据库。这样,作为另一可选实施例,在对上一次数据备份后新生成的数据进行存储之后,读取增量数据库作为所述待备份数据库之前,该方法进一步包括:
B11,获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;
B12,获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;
B13,如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
本步骤中,根据备份设备存储的该iOS操作***中数据的第一更新日期信息,确定需要备份的数据:如果第一更新日期信息与第三更新日期信息相匹配,表明该备份设备备份有该iOS操作***中上一次备份的数据;如果第一更新日期信息与第二更新日期信息中的任一更新日期信息相匹配,表明该备份设备备份有该iOS操作***中上几次备份的数据,但不是每次都对iOS操作***中的数据进行备份;如果第一更新日期信息在第三更新日期信息之前,表明该备份设备没有对该iOS操作***中的数据进行过备份。
本发明实施例中,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
步骤102,将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备。
本步骤中,根据iOS操作***中不同的数据库结构,将不同数据库结构中的数据进行转换的协议也不同。这样,经过相应的协议转换,可以将不同数据库结构中的数据以数据流的方式转换为对应的二进制数据,即不断对备份数据进行转换,同时对转换的备份数据进行传输。
作为可选实施例,对于短信数据库,将短信数据库中存储的短信(包含群发短信),即chat_message_join表项,按照预先设置的数据流转换协议,转换为一串二进制数据(Binary Data Stream),并将转换得到的二进制数据通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据存储(备份)到短信服务器。其中,二进制数据的编码方式包括:二进码(BCD,Binary-Coded Decimal)、扩展BCD码、美国信息互换标准代码(ASCII,American Standard Code for Information Interchange)以及统一码(Unicode)。
进一步地,针对群发短信,本发明实施例中,除了备份短信内容,即chat_message_join表项外,还将短信会话对应的联系人信息进行备份,即对chat_handle_join表项进行备份。
作为可选实施例,将读取的所述待备份数据,转换为二进制数据包括:
获取待备份数据对应的数据文件;
调用HttpPostedFile类的InputStream属性,访问所述数据文件;
调用Stream类的read方法,将访问的所述数据文件以二进制形式的数据写入Byte类型的数组中。
作为可选实施例,不同备份设备中的备份数据库,具有不同的数据库结构,采用相应的数据格式存储数据。因而,本发明实施例中,通过所述SQLite的C语言接口备份到预先设置的备份设备可以包括:
获取所述备份设备中数据库结构信息,将接收的二进制数据流转换为符合获取的数据库结构的数据,并写入所述备份设备中数据库。
进一步地,为了保障数据在传输过程中的安全性,在将读取的所述待备份数据转换为二进制数据流后,该方法还可以进一步包括:
对所述二进制数据按照预先设置的加密算法进行加密处理。
本步骤中,加密算法包括:增强的数据保密协议(AES,Advanced EncryptionStandard)、数据加密算法(DEA,Data Encryption Algorithm)、数据加密标准(DES,DataEncryption Standard)以及三层数据加密标准(3DES,Triple DES)等。
作为可选实施例,对于操作***中存储的数据量较大,占用操作***过多的文件***空间的情形,该方法还可以进一步包括:
步骤103,确定待备份数据备份完毕,删除所述数据库中的待备份数据。
本步骤中,在将iOS操作***中的数据进行备份后,删除数据库中的数据,以节约操作***的文件***空间。
图2示出了本发明实施例基于iOS操作***的数据恢复方法流程。参见图2,该流程包括:
步骤201,通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
本步骤中,当iOS设备需要进行数据恢复时,向备份设备发送数据恢复请求,备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为二进制数据,传输至iOS设备,iOS设备通过调用iOS操作***提供的SQLite的C语言接口接收备份设备传输的二进制数据。
作为可选实施例,可以采用空投(AirDrop)、短信以及邮件的方式传输二进制数据。
作为可选实施例,该方法进一步包括:
对接收的二进制数据进行解密。
本步骤中,如果对二进制数据进行了加密处理,则对待恢复的二进制数据进行解密,解密算法包括:增强的数据保密协议、数据加密算法、数据加密标准以及三层数据加密标准等。
本发明实施例中,对于短信,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息等。这样,在进行短信恢复时,从短信服务器(备份设备)中读取短信,并将读取的短信按照预先设置的转换协议转换为二进制数据。进一步地,针对群发短信,本发明实施例中,根据短信会话与短信联系人信息、短信会话与短信的关系,即短信会话对应的短信联系人信息以及短信会话对应的短信数据,在后续进行短信恢复时,将群发短信归入到一个短信会话中,从而在用户读取恢复的短信时,可以有效防止将群发短信恢复到多个短信会话中,能得到和恢复前一样的短信数据。
作为可选实施例,用户在发送数据恢复请求时,还可以携带待恢复数据的时间段信息。这样,读取备份数据库中的数据可以包括:
解析数据恢复请求,获取时间段信息;
读取备份数据库中包含在所述时间段信息内的数据。
步骤202,将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
本步骤中,基于iOS操作***,根据需要恢复的数据类型,分别设置相应数据类型对应的数据库恢复路径。其中,恢复路径是指不同类型的数据在iOS设备磁盘中的存储位置,该存储位置下保存该类型数据的数据库文件。例如,可以设置短信类型的数据的恢复路径为:var/mobile/library/SMS,并将短信类型的数据以sms.db数据库文件的形式保存在该恢复路径下。再例如,设置通讯录类型的数据的恢复路径为:var/mobile/library/AddressBook。
所应说明的是,在本实施例中,虽然只介绍了短信类型和通讯录类型的数据,但本实施例的方法同样适用于通话记录类型、备忘录类型或者网络浏览的文字等文字类型的数据。
由上述可见,本发明实施例的基于iOS操作***的数据备份方法、恢复方法,在更换智能移动终端设备后,例如,将智能移动终端设备从iPhone4换成iPhone5s,或将iOS操作***的智能移动终端设备换成安卓操作***的智能移动终端设备,当需要将原智能移动终端设备中的短信数据(包含群发短信数据)迁移到新智能移动终端设备时,可以使用本发明实施例的备份和恢复功能。以及,在升级iOS操作***版本后,例如,从iOS5操作***升级到iOS6操作***,可以使用本发明实施例的备份功能,以将更新操作***前的短信数据(包含群发短信数据)迁移到更新操作***后的智能移动终端设备中。另外,在智能移动终端设备丢失后,买了新智能移动终端设备,也可以使用本发明实施例的恢复功能,恢复短信数据(包含群发短信数据)。这样,通过调用iOS操作***提供的SQLite的C语言接口读取数据,并将读取的数据转换为二进制数据流,从而提出了能够从iOS操作***中备份数据、以及,将外部数据恢复到iOS操作***中的具体技术方案。同时,在iOS操作***升级后,如果短信数据库结构发生变化,例如,存储的短信格式或类型发生变化,在备份的短信数据库结构未发生同样变化的情况下,既能够实现将备份的短信数据库中短信恢复到发生结构变化的短信数据库,也能够实现将发生结构变化的短信数据库中短信备份到未发生结构变化的短信数据库;进一步地,对于跨操作***的短信备份和恢复,由于将短信数据转换为二进制数据流,从而实现短信备份和恢复。例如,可以将基于iOS操作***的短信,备份或恢复到基于安卓操作***、塞班操作***的短信数据库,从而可以有效防止数据丢失,提升数据的安全性。而且,采用短信的增量备份和恢复,使得短信备份和恢复的传输数据量小,短信备份和恢复所需时间少、效率高;此外,本发明实施例的数据备份和恢复的方法,可以应用于不同版本的操作***,适应性广,可以满足用户对短信(数据)备份和恢复的多样化需求,提升了用户的业务体验。
图3示出了本发明实施例基于iOS操作***的数据备份装置结构。参见图3,该装置为iOS设备,包括:数据读取模块以及数据转换模块,其中,
数据读取模块,用于通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
本发明实施例中,数据库可以为短信数据库。其中,短信数据库在iOS设备中的存储路径为:/var/mobile/Library/SMS/sms.db。相对应地,待备份数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
作为可选实施例,数据读取模块包括:增量数据库存储单元以及读取单元(图中未示出),其中,
增量数据库存储单元,用于存储iOS操作***在上一次数据备份后新生成的数据;
读取单元,用于读取增量数据库存储单元存储的数据。
较佳地,数据读取模块还可以进一步包括:
历史数据库存储单元,用于在iOS操作***确定数据备份完成后,将增量数据库中数据写入并存储,并清空所述增量数据库存储单元。
作为另一可选实施例,数据读取模块还可以进一步包括:
第一匹配单元,用于获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库存储单元的更新日期信息相匹配,通知读取单元。
实际应用中,增量数据库存储单元可以设置为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储单元存储数据后,将第一个存储新生成的数据的增量数据库存储单元中数据写入到所述历史数据库存储单元中,清空所述第一个存储新生成的数据的增量数据库存储单元;所述数据读取模块还可以进一步包括:
第二匹配单元,用于获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
数据转换模块,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
本发明实施例中,数据转换模块包括:转换单元以及输出单元(图中未示出),其中,
转换单元,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据;
输出单元,用于通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
为了保障数据在传输过程中的安全性,作为可选实施例,数据转换模块还可以进一步包括:
加密单元,用于对所述二进制数据流按照预先设置的加密算法进行加密处理。
本发明实施例中,加密算法包括:增强的数据保密协议、数据加密算法、数据加密标准以及三层数据加密标准(3DES,Triple DES)等。
作为可选实施例,该装置还可以进一步包括:
数据删除模块,用于在确定待备份数据备份完毕后,删除所述数据库中的待备份数据。
图4示出了本发明实施例基于iOS操作***的数据恢复装置结构。参见图4,该装置为iOS设备,包括:数据接收模块以及数据写入模块,其中,
数据接收模块,用于通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
数据写入模块,用于将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
本发明实施例中,该装置可以进一步包括:
解密模块,用于对接收的机器语言数据进行解密,并将解密的机器语言数据输出至数据写入模块。
本发明实施例中,对于短信,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息等。
作为可选实施例,该装置可以进一步包括:
数据请求模块,用于在发送数据恢复请求时,携带待恢复数据的时间段信息,以使备份设备解析数据恢复请求,获取时间段信息,读取备份数据库中包含在所述时间段信息内的数据。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于iOS操作***的数据备份装置以及基于iOS操作***的数据恢复装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站服务器上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1.一种基于iOS操作***的数据备份方法,包括:
通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备。
A2.根据A1所述的方法,所述读取数据库中待备份数据包括:
设置iOS操作***采用增量数据库对上一次数据备份后新生成的数据进行存储;
读取数据库中增量数据库中的数据。
A3.根据A2所述的方法,所述方法进一步包括:
iOS操作***在确定数据备份完成后,将增量数据库中数据写入到历史数据库中,并清空所述增量数据库。
A4.根据A2所述的方法,在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法进一步包括:
获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库的更新日期信息相匹配,执行所述读取增量数据库的流程。
A5.根据A2所述的方法,所述增量数据库为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储数据后,将第一个存储新生成的数据的增量数据库中数据写入到所述iOS操作***中用于存储数据的数据库中,清空所述第一个存储新生成的数据的增量数据库,在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法进一步包括:
获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;
获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;
如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
A6.根据A1所述的方法,在将读取的所述待备份数据转换为机器语言数据后,所述方法进一步包括:
对所述计算机数据按照预先设置的加密算法进行加密处理。
A7.根据A6所述的方法,所述加密算法包括:增强的数据保密协议、数据加密算法、数据加密标准以及三层数据加密标准。
A8.根据A1所述的方法,所述方法进一步包括:
确定待备份数据备份完毕,删除所述数据库中的待备份数据。
A9.根据A1所述的方法,所述数据库为短信数据库,所述短信数据库包括:短信表项、会话表项、句柄表项、会话-短信表项以及会话-句柄表项,其中,
短信表项,用于存放短信标识;
会话表项,用于存放短信会话标识;
句柄表项,用于存放句柄标识;
会话-句柄表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息是短信对应的短信联系人信息;
会话-短信表项,用于存放每一短信会话标识对应的短信。
A10.根据A1所述的方法,所述将读取的所述待备份数据转换为机器语言数据包括:
获取待备份数据对应的数据文件;
调用HttpPostedFile类的InputStream属性,访问所述数据文件;
调用Stream类的read方法,将访问的所述数据文件以二进制形式的数据写入Byte类型的数组中。
A11.根据A1所述的方法,所述将转换的机器语言数据备份到预先设置的备份设备包括:
获取所述备份设备中数据库结构信息,将转换的机器语言数据转换为符合获取的数据库结构的数据,并写入所述备份设备中数据库。
A12.根据A1所述的方法,所述机器语言数据包括:二进制数据、八进制数据以及十六进制数据。
A13.根据A1所述的方法,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
A14.一种基于iOS操作***的数据恢复方法,该方法包括:
通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
A15.根据A14所述的方法,所述方法进一步包括:
对接收的机器语言数据进行解密。
A16.根据A14所述的方法,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
A17.根据A14所述的方法,所述数据恢复请求中携带待恢复数据的时间段信息,所述读取备份数据库中的数据包括:
解析数据恢复请求,获取时间段信息;
读取备份数据库中包含在所述时间段信息内的数据。
A18.根据A14所述的方法,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
A19.一种基于iOS操作***的数据备份装置,该装置包括:数据读取模块以及数据转换模块,其中,
数据读取模块,用于通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
数据转换模块,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
A20.根据A19所述的装置,所述数据库为短信数据库,所述待备份数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
A21.根据A19所述的装置,所述数据读取模块包括:增量数据库存储单元以及读取单元,其中,
增量数据库存储单元,用于存储iOS操作***在上一次数据备份后新生成的数据;
读取单元,用于读取增量数据库存储单元存储的数据。
A22.根据A21所述的装置,所述数据读取模块进一步包括:
历史数据库存储单元,用于在iOS操作***确定数据备份完成后,将增量数据库中数据写入并存储,并清空所述增量数据库存储单元。
A23.根据A21所述的装置,所述数据读取模块进一步包括:
第一匹配单元,用于获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库存储单元的更新日期信息相匹配,通知读取单元。
A24.根据A22所述的装置,所述增量数据库存储单元设置为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储单元存储数据后,将第一个存储新生成的数据的增量数据库存储单元中数据写入到所述历史数据库存储单元中,清空所述第一个存储新生成的数据的增量数据库存储单元;所述数据读取模块进一步包括:
第二匹配单元,用于获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取所述多个增量数据库以及所述历史数据库。
A25.根据A19所述的装置,所述数据转换模块包括:转换单元以及输出单元,其中,
转换单元,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据;
输出单元,用于通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
A26.根据A25所述的装置,所述数据转换模块进一步包括:
加密单元,用于对所述机器语言数据按照预先设置的加密算法进行加密处理。
A27.根据A19所述的装置,所述装置进一步包括:
数据删除模块,用于在确定待备份数据备份完毕后,删除所述数据库中的待备份数据。
A28.一种基于iOS操作***的数据恢复装置,该装置包括:数据接收模块以及数据写入模块,其中,
数据接收模块,用于通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
数据写入模块,用于将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库。
A29.根据A28所述的装置,所述装置进一步包括:
解密模块,用于对接收的机器语言数据进行解密,并将解密的机器语言数据输出至数据写入模块。
A30.根据A28所述的装置,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
A31.根据A28所述的装置,所述装置进一步包括:
数据请求模块,用于在发送数据恢复请求时,携带待恢复数据的时间段信息,以使备份设备解析数据恢复请求,获取时间段信息,读取备份数据库中包含在所述时间段信息内的数据。

Claims (23)

1.一种基于iOS操作***的数据备份方法,包括:
通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;所述读取数据库中待备份数据包括:设置iOS操作***采用增量数据库对上一次数据备份后新生成的数据进行存储;读取数据库中增量数据库中的数据;
将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将依序转换得到的机器语言数据备份到预先设置的备份设备;
所述将转换的机器语言数据备份到预先设置的备份设备包括:
获取所述备份设备中数据库结构信息,将转换的机器语言数据转换为符合获取的数据库结构的数据,并写入所述备份设备中数据库;
iOS操作***在确定数据备份完成后,将增量数据库中数据写入到历史数据库中,并清空所述增量数据库;
在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法还包括:获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库的更新日期信息相匹配,执行所述读取增量数据库的流程。
2.如权利要求1所述的方法,所述增量数据库为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储数据后,将第一个存储新生成的数据的增量数据库中数据写入到所述iOS操作***中用于存储数据的数据库中,清空所述第一个存储新生成的数据的增量数据库,在所述对上一次数据备份后新生成的数据进行存储之后,读取增量数据库中数据之前,所述方法进一步包括:
获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;
获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;
如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取多个增量数据库以及所述历史数据库。
3.如权利要求1所述的方法,在将读取的所述待备份数据转换为机器语言数据后,所述方法进一步包括:
对所述机器语言数据按照预先设置的加密算法进行加密处理。
4.如权利要求3所述的方法,所述加密算法包括:增强的数据保密协议、数据加密算法、数据加密标准以及三层数据加密标准。
5.如权利要求1所述的方法,所述方法进一步包括:
确定待备份数据备份完毕,删除所述数据库中的待备份数据。
6.如权利要求1所述的方法,所述数据库为短信数据库,所述短信数据库包括:短信表项、会话表项、句柄表项、会话-短信表项以及会话-句柄表项,其中,
短信表项,用于存放短信标识;
会话表项,用于存放短信会话标识;
句柄表项,用于存放句柄标识;
会话-句柄表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息是短信对应的短信联系人信息;
会话-短信表项,用于存放每一短信会话标识对应的短信。
7.如权利要求1所述的方法,所述将读取的所述待备份数据转换为机器语言数据包括:
获取待备份数据对应的数据文件;
调用HttpPostedFile类的InputStream属性,访问所述数据文件;
调用Stream类的read方法,将访问的所述数据文件以二进制形式的数据写入Byte类型的数组中。
8.如权利要求1所述的方法,所述机器语言数据包括:二进制数据、八进制数据以及十六进制数据。
9.如权利要求1所述的方法,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
10.一种基于iOS操作***的数据恢复方法,该方法包括:
通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库;
所述数据库为短信数据库,所述短信数据库包括:短信表项、会话表项、句柄表项、会话-短信表项以及会话-句柄表项,其中,
短信表项,用于存放短信标识;
会话表项,用于存放短信会话标识;
句柄表项,用于存放句柄标识;
会话-句柄表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息是短信对应的短信联系人信息;
会话-短信表项,用于存放每一短信会话标识对应的短信。
11.如权利要求10所述的方法,所述方法进一步包括:
对接收的机器语言数据进行解密。
12.如权利要求10所述的方法,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
13.如权利要求10所述的方法,所述数据恢复请求中携带待恢复数据的时间段信息,所述读取备份数据库中的数据包括:
解析数据恢复请求,获取时间段信息;
读取备份数据库中包含在所述时间段信息内的数据。
14.如权利要求10所述的方法,设置数据库读取权限的SQLite的C语言接口包括:
获取iOS操作***的根权限;
查找SQLite的C语言接口进程中数据库读取权限的内存变量;
在所述数据库读取权限的内存变量中,增加数据数据库读取权限的内存变量。
15.一种基于iOS操作***的数据备份装置,该装置包括:数据读取模块以及数据转换模块,其中,
数据读取模块,用于通过应用程序调用iOS操作***提供的设置有数据库读取权限的SQLite的C语言接口,读取数据库中待备份数据;
所述数据读取模块包括:增量数据库存储单元、历史数据库存储单元、第一匹配单元以及读取单元,其中,增量数据库存储单元,用于存储iOS操作***在上一次数据备份后新生成的数据;读取单元,用于读取增量数据库存储单元存储的数据;历史数据库存储单元,用于在iOS操作***确定数据备份完成后,将增量数据库中数据写入并存储,并清空所述增量数据库存储单元;第一匹配单元,用于获取预先设置的备份设备存储的所述iOS操作***中数据的更新日期信息,如果所述更新日期信息与所述历史数据库存储单元的更新日期信息相匹配,通知读取单元;
数据转换模块,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据,并通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备;
所述数据转换模块包括:转换单元以及输出单元,其中,
转换单元,用于将读取的所述待备份数据以数据流的方式转换为机器语言数据;
输出单元,用于通过与所述SQLite的C语言接口相连的无线通信接口,将转换的机器语言数据备份到预先设置的备份设备。
16.如权利要求15所述的装置,所述数据库为短信数据库,所述待备份数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
17.如权利要求15所述的装置,所述增量数据库存储单元设置为多个,用于依序对iOS操作***上一次数据备份后新生成的数据进行存储,并在最后一个增量数据库存储单元存储数据后,将第一个存储新生成的数据的增量数据库存储单元中数据写入到所述历史数据库存储单元中,清空所述第一个存储新生成的数据的增量数据库存储单元;所述数据读取模块进一步包括:
第二匹配单元,用于获取备份设备存储的所述iOS操作***中数据的第一更新日期信息;获取所述多个增量数据库的第二更新日期信息以及所述历史数据库的第三更新日期信息;如果所述第一更新日期信息与所述第三更新日期信息相匹配,读取所有的增量数据库;如果所述第一更新日期信息与所述第二更新日期信息中的任一更新日期信息相匹配,读取匹配的更新日期信息对应的增量数据库后的所有增量数据库;如果所述第一更新日期信息在所述第三更新日期信息之前,读取多个增量数据库以及所述历史数据库。
18.如权利要求15所述的装置,所述数据转换模块进一步包括:
加密单元,用于对所述机器语言数据按照预先设置的加密算法进行加密处理。
19.如权利要求15所述的装置,所述装置进一步包括:
数据删除模块,用于在确定待备份数据备份完毕后,删除所述数据库中的待备份数据。
20.一种基于iOS操作***的数据恢复装置,该装置包括:数据接收模块以及数据写入模块,其中,
数据接收模块,用于通过应用程序调用无线通信接口接收机器语言数据,所述机器语言数据为备份设备在接收到数据恢复请求后,读取备份数据库中的数据,并将读取的数据以数据流的方式转换为机器语言数据;
数据写入模块,用于将接收的所述机器语言数据通过与所述无线通信接口相连的设置有数据库读取权限的SQLite的C语言接口写入到所述iOS操作***中的数据库;
所述数据库为短信数据库,所述短信数据库包括:短信表项、会话表项、句柄表项、会话-短信表项以及会话-句柄表项,其中,
短信表项,用于存放短信标识;
会话表项,用于存放短信会话标识;
句柄表项,用于存放句柄标识;
会话-句柄表项,用于存放每一短信会话标识对应的句柄标识信息,其中,句柄信息是短信对应的短信联系人信息;
会话-短信表项,用于存放每一短信会话标识对应的短信。
21.如权利要求20所述的装置,所述装置进一步包括:
解密模块,用于对接收的机器语言数据进行解密,并将解密的机器语言数据输出至数据写入模块。
22.如权利要求20所述的装置,所述机器语言数据为二进制数据,所述二进制数据包括:短信内容数据、短信内容数据对应的短信会话信息、短信会话信息对应的一个或多个短信联系人信息。
23.如权利要求20所述的装置,所述装置进一步包括:
数据请求模块,用于在发送数据恢复请求时,携带待恢复数据的时间段信息,以使备份设备解析数据恢复请求,获取时间段信息,读取备份数据库中包含在所述时间段信息内的数据。
CN201410333889.5A 2014-07-14 2014-07-14 基于iOS操作***的数据备份、恢复方法及装置 Expired - Fee Related CN105468472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410333889.5A CN105468472B (zh) 2014-07-14 2014-07-14 基于iOS操作***的数据备份、恢复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410333889.5A CN105468472B (zh) 2014-07-14 2014-07-14 基于iOS操作***的数据备份、恢复方法及装置

Publications (2)

Publication Number Publication Date
CN105468472A CN105468472A (zh) 2016-04-06
CN105468472B true CN105468472B (zh) 2020-01-17

Family

ID=55606206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410333889.5A Expired - Fee Related CN105468472B (zh) 2014-07-14 2014-07-14 基于iOS操作***的数据备份、恢复方法及装置

Country Status (1)

Country Link
CN (1) CN105468472B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975606A (zh) * 2016-05-13 2016-09-28 上海互盾信息科技有限公司 一种ios设备联系人误删恢复方法
CN106021021A (zh) * 2016-05-13 2016-10-12 上海互盾信息科技有限公司 一种iphone短信误删恢复方法
CN106407826A (zh) * 2016-11-07 2017-02-15 珠海市魅族科技有限公司 数据保全方法及装置
CN106649176A (zh) * 2016-12-19 2017-05-10 深圳泰克威云储科技股份有限公司 一种智能储存装置的信号传输方法
CN107172165B (zh) * 2017-05-25 2020-09-11 万兴科技股份有限公司 一种数据同步方法及装置
CN110399416B (zh) * 2019-07-24 2023-08-22 成都甄识科技有限公司 一种分布式数据库操作优化访问处理方法及***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404792A (zh) * 2008-10-24 2009-04-08 北京亿企通信息技术有限公司 一种手机备份短信的方法和***
CN103200233A (zh) * 2013-03-05 2013-07-10 广东欧珀移动通信有限公司 基于增量的短信备份方法及其***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140075583A1 (en) * 2012-09-10 2014-03-13 Apple Inc. Management of media items

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404792A (zh) * 2008-10-24 2009-04-08 北京亿企通信息技术有限公司 一种手机备份短信的方法和***
CN103200233A (zh) * 2013-03-05 2013-07-10 广东欧珀移动通信有限公司 基于增量的短信备份方法及其***

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
HttpPostedFile 二进制文件上传;cherish;《URL:http://blog.163.com/wyp_xh2009/blog/static/19950810720136101285532/》;20130710;全文 *
iPhone怎么备份电话本和短信;苹果园;《URL:http://m.pc841.com/shouji/iPhone/9450.html》;20121124;全文 *
SQLite学习手册(内存数据库);Stephen_Liu;《URL:https://www.cnblogs.com/stephen-liu74/archive/2012/02/29/2328348.html》;20120229;全文 *
使用iTunes WIFI备份功能;APP111小编;《URL:http://www.app111.com/doc/100026302_1.html》;20130905;全文 *

Also Published As

Publication number Publication date
CN105468472A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN105468472B (zh) 基于iOS操作***的数据备份、恢复方法及装置
CN107577420B (zh) 文件处理方法和装置、服务器
AU2012347883B2 (en) System and method for restoring application data
US9483357B2 (en) Selective restore from incremental block level backup
WO2019201039A1 (zh) 一种更新应用程序的方法、***及应用服务器
US9244960B2 (en) Metadata-driven version management service in pervasive environment
CN106843978B (zh) 一种sdk接入方法及***
US11308223B2 (en) Blockchain-based file handling
US11477179B2 (en) Searching content associated with multiple applications
CN109729121B (zh) 一种云存储***及用于云存储***中实现自定义数据处理的方法
US9716666B2 (en) Process cage providing attraction to distributed storage
CN112036125A (zh) 一种文档管理方法、装置及计算机设备
US20120158657A1 (en) Role-specific access control to sections of artifact content within a configuration management (cm) system
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
EP4348933A1 (en) Managing keys across a series of nodes, based on snapshots of logged client key modifications
US20220138220A1 (en) Dedicated replication channels for replicating records between regions
US9485308B2 (en) Zero copy volume reconstruction
EP2686791B1 (en) Variants of files in a file system
CN110046510B (zh) 跨云的数据迁移方法、装置和***
CN116628773A (zh) 数据处理方法、装置、电子设备及存储介质
CN104281503A (zh) 一种数据备份方法以及相关***
WO2018028321A1 (zh) 一种虚拟外置存储设备的管理方法、装置及终端
US8990265B1 (en) Context-aware durability of file variants
CN111310175A (zh) 基于插件化的iOS应用安全监测与防护方法及装置
WO2015139202A1 (zh) 一种处理数据的方法、装置和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200117