很多iOS系统用户在通过OTA升级大版本的时候经常性会发生白苹果事件,这时候手机需要连接电脑,通过iTunes恢复才能正常使用,而这种操作会使得设备上面的数据全部丢失无法找回,因此很多人就感觉OTA这种方式并不靠谱,那么事实如何呢?
我们首先来认识一下OTA是什么。
OTA是Over-The-Air的缩写形式,在系统升级领域中它指代通过网络于本机上完成升级流程,区别于连接PC进行固件刷写这样的传统流程。OTA是苹果于iOS 5的时候引入的特性,而Android也很早就支持了这项功能,在今天绝大多数智能手机是通过OTA来完成系统更新的。
其实OTA跟我们见惯了的Windows Update并没有什么本质上的区别,要说有的话就是智能手机的OTA可能会对手机的部分固件进行升级,而PC上面的系统升级一般仅影响系统软件本身,除了部分OEM机型之外很少有系统升级带BIOS升级的。
话说回来,iOS的OTA为什么会发生白苹果这样的情况呢?我们可以看下面这条微博。
Android引入A/B分区虽然不是什么“由来已久”的事情,但是确实可以保证Android设备在进行OTA更新时不会发生更新失败手机无法进入系统这样的情况,而iOS确实缺少了这一保护,当然,这位Android系统开发者对于iOS的OTA流程还是有臆测成分在的:苹果在OTA流程中设计了文件系统结构与文件完整性验证,至少可以确保在升级完之后,系统文件都是没有问题的。
那么既然有文件完整性验证,那么为什么还会发生白苹果这样的事情呢?很大可能还是因为用户配置文件出现了问题。OTA操作时,因为新老系统版本间是有功能差异的,可能是由于系统开发者的疏忽,也有可能是升级程序出现了问题,没有将针对某些老功能的配置文件进行迁移,所以导致在开机时系统读取不到某些关键性功能的配置,进而造成白苹果。
iOS在分类学上上与Android相同,是一个类Unix系统,采用了此类系统常见的多分区结构来存放不同级别的文件,其中系统文件和用户文件存在于不同的分区中,稍老版本的fstab显示iOS拥有两个分区,一个挂载于/作为根目录,一个挂载于/private/var,OTA流程操作的基本上都是系统分区的文件。
iOS设备连接iTunes刷写IPSW固件的时候是比较彻底的,如果选择的是恢复模式,会直接将整个手机格式化之后再将分区镜像写入,此时就比较像是Windows NT 6之后的wim安装,直接展开苹果提供的系统镜像。而iOS的OTA包则是一个差分压缩包,它带的是新老文件之间的差分信息,升级过程其实就是将差分信息写入,让老版本文件变成新版本文件。
iOS的OTA包目录结构
Android的OTA包有两种,一种也是像iOS的差分式OTA包,另一种是含有完整系统镜像的包。
Pixel 3a XL的完整OTA包
所以最终对于题目问题的回答就是,iOS设备的OTA真的不如连接电脑升级可靠。在这里,小编推荐iOS用户在进行大版本升级的时候连接电脑使用iTunes来升级,而且在升级之前对设备做好备份。这种方式不仅更为可靠,耗时还比OTA要短。