itunes备份文件解析入门
itunes提供给设备备份的功能,不知道怎么备份的话可以戳一下这个看一下:http://jingyan.baidu.com/article/92255446ea8f46851648f4a4.html
首先让我们来认识一下iphone的备份文件。备份完成之后,在资源管理器中输入%appdata%,然后进入\Apple Computer\MobileSync,是不是可以看到一个backup文件夹了?是的,这就是iphone备份文件啦。打开了看一下,里面会有各种文件,见图1

图1
上面这些文件中,由40位字符组成的文件是一些数据库文件,待会儿下面我们要说的短信和联系人数据库就在其中。*.list文件是一些信息文件,打开Info.plist文件来看看其中的一些信息吧,见图2

图2
这是什么信息呢?Product Type表示手机设备,图上所示是iphone3,Product Version表示手机设备里的ios版本号,这些信息的用处在于读取数据库文件时可以针对不同的ios号、itunes号等信息做兼容工作,因为不同的ios版本,联系人、短信等数据库也会有相应的变化。
Status.plist文件里面包含了一些诸如备份时间、是否为全量备份等信息的备份状态,见图3信息

图3
接下来让我们进入本文第二部分,如何实现从备份数据库文件中读取短信和联系人信息。就在\Apple Computer\MobileSync中有两个文件要告诉大家,一个是“31bb7ba8914766d4ba40d6dfb6113c8b614be442”,另一个是“3d0d7e5fb2ce288813306e4d4636395e047a3d28”,他们分别是iphone、ipad等苹果设备的备份数据库文件,要打开它们可以借助一款第三方软件——SQLiteSpy,可以下载下来看看itunes到底帮亲备份了哪些东西。苹果对设备数据备份采用的是开源数据库产品——sqlite,要对这些数据库文件进行解析可以借助sqlite3的封装类,开源地址:http://sqlitewrapper.kompex-online.com/doxygen/dir_c1d6be483d10aafba59e40addb339565.html。利用这个开源库可以对里面的数据进行读取。分为几个步骤:1.初始化数据库,用开源sqlite3封装库里的类SQLiteDatabase的构造函数即可,Kompex::SQLiteDatabase* pDatabase = new Kompex::SQLiteDatabase(WideToUTF8(strDBFilePath);, SQLITE_OPEN_READONLY, 0);2.利用刚刚获得的数据库指针构造一个sqlite语句指针以操作该数据库,用类SQLiteStatement的构造函数即可,std::auto_ptr<Kompex::SQLiteStatement> pStmt( new Kompex::SQLiteStatement(pDatabase) );。到了这一步你已经有了操作数据库的指针,接下来你要做的是构造一个短信的数据结构,然后通过语句指针读取每一条短信放进一个容器里面。至于得到的pStmt怎么用我就不公布代码了,自己可以写写,顺便练练手,在KompexSQLiteStatement.h中大概会有诸如这么一些接口是要用到的:
inline void Sql(const std::string &sql) {Prepare(sql.c_str());}
std::string GetColumnString(int column) const;
int64 GetColumnInt64(int column) const;
void FreeQuery();
配合接口注释,只要略懂数据库方面的知识用起来应该不难。
itunes备份文件解析入门的更多相关文章
- 用java实现一个简易编译器1-词法解析入门
本文对应代码下载地址为: http://download.csdn.net/detail/tyler_download/9435103 视频地址: http://v.youku.com/v_show/ ...
- SpringBoot快速入门(解析+入门案例源码实现)
这里写目录标题 SpringBoot入门 一.SpringBoot 概念 二.JavaConfig 入门 1. JavaConfig 概念 2. 项目准备 三.常用注解 四.SpringBoot 入门 ...
- javaweb入门20160305---xml的解析入门
一个XML文件除了我们人去读写以外,我们希望可以通过程序去读写,利用程序去增删改查XML的过程就是XML编程 CRUD:Create.Read.Update.Delete XML的两种解析方式 d ...
- xml解析方式之JAXP解析入门
XML解析 1 引入 xml文件除了给开发者看,更多的情况使用[程序读取xml文件]的内容.这叫做xml解析 2 XML解析方式(原理不同) DOM解析 SAX解析 3 XML解析工具 DOM解析原理 ...
- dump解析入门-用VS解析dump文件进行排障
突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文 ...
- 用python做网页抓取与解析入门笔记[zz]
(from http://chentingpc.me/article/?id=961) 事情的起因是,我做survey的时候搜到了这两本书:Computational Social Network A ...
- PHP模板解析入门
学习:李炎恢PHP视频第二季 模板引擎的特点: 1.鼓励分离:让更个系统的可读性和维护性得到提高. 2.促进分工:使得程序员和美工去专心处理自己的设计. 3.比PHP更容易解析:编译文件和缓存文件加载 ...
- spring架构解析--入门一
Spring 框架中的核心组件只有三个:Core.Context 和 Beans.它们构建起了整个 Spring 的骨骼架构.简单理解: spring core是工具,context是环境,而bean ...
- Linksys WRT120N路由器备份文件解析
Perusing the release notes for the latest Linksys WRT120N firmware, one of the more interesting comm ...
随机推荐
- input file 模拟预览图片。
首先申明,接下来内容只是单纯的预览图片,最多选择九张,并没有和后台交互,交互的话需要自己另外写js. 本来想写一个调用摄像头的demo,意外的发现input file 在手机端打开的话,ios可以调用 ...
- GPUImage 滤镜头文件
#import "GLProgram.h" // Base classes #import "GPUImageOpenGLESContext.h" #impor ...
- C图书借还示例
以后要搞C了先自己练习一下,系统本身没有太大的实际用途,只是用来磨练编程规范,不足之处还望大家多多指正 .互相交流共同进步. 为了方便只使用了一个 book.c 文件,在vc6 下编译通过,其他编译器 ...
- mvc4 membership, [Win32Exception (0x80004005): The system cannot find the file specified]
public class UsersContext : DbContext { public UsersContext() : base("conn1") //change the ...
- Aircrack-ng官方文档翻译[中英对照]---Airmon-ng
Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wire ...
- bzoj 1200: [HNOI2005]木梳 DP
1200: [HNOI2005]木梳 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 266 Solved: 125[Submit][Status] ...
- IAR ARM、IAR STM8、IAR MSP430共用一个IDE
转自IAR ARM.IAR STM8.IAR MSP430共用一个IDE 试了安装好多个不同版本不同编译器的IAR,终于明白不同编译器的IAR共用IDE的条件,把几个不同编译器的IAR安装在一起,共用 ...
- PYTHON连MS SQL示例
先要设置WINDOWS的系统DSN的.然后才可以哟. import pyodbc conxn = pyodbc.connect('DSN=BBB; DATABASE=Northwind;UID=AAA ...
- Android 系统功能设置菜单 LinearLayout与relativeLayout的实现
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 【UVAlive 3989】 Ladies' Choice (稳定婚姻问题)
Ladies' Choice Teenagers from the local high school have asked you to help them with the organizatio ...