树莓派系统是基于Linux的,所以理论上只要能运行Linux的板子都可行。传统的验机一般是通过PC来做,比如爱思之类的PC软件,但是PC携带十分不方便。现在硬件性能不断提高,各种小项的开发板层出不穷。这时就给很多便携设备提供了硬件基础。而PC上很多都是使用iTunes的逆向来实现各种功能,在Linux下有大佬逆向了iTunes的协议开发了一个叫libimobiledevice的库,这个库功能强大而且可以跨平台。这就使利用嵌入式小板来做一个验机盒子成了可能。
一、iOS验机原理
在iOS的磁盘分区里有一个叫syscfgdata的分区。这个分区保存着机器出厂时的硬件信息。另外iOS系统在启动时也会动态读取当前硬件信息。这个就给我们验机提供了可能,只需要对比这两个数据入可以知道我们的硬件是否更换过了。不过一些硬件的序列号之类的是可以通过一些工具来修改的。所以这个验机其实顶多也是一个参考。所以验出有问题基本可以肯定有问题,但是验不出问题,不一定是真没问题。但是这个事情本身是有一定成本的。所以大多数情况下这个验机还是比较可靠的。
二、硬件准备
我使用的是树莓,理论上其它运行linux的板子也可以。一台PC,我使用的是VS编写代码,如果熟悉Linux也可以直接使用树莓上配置好开发环境。
三、软件准备
3.1 在终端安装必备的库和程序
sudo apt-get install \
build-essential \
git \
autoconf \
automake \
libtool-bin \
libplist-dev \
libusbmuxd-dev \
libssl-dev \
usbmuxd
3.2 克隆libimobiledevice代码
git clone https://github.com/libimobiledevice/libimobiledevice.git
3.3 切换到libimobiledevice并编译
cd libimobiledevice
./autogen.sh
make
sudo make install
四、编写代码
所有代码可以参考libimobiledevice下的tools用法。