软件更新本身就是比较玄学的操作,只不过现在无线通讯与传输技术和 OTA 技术成熟,出错率降低非常多。
普通 OTA 基本上是增量更新,从服务器请求新版本新功能与新改动部分的增量包,下发到本地之后与本地系统镜像重新合入打包安装。
而 eRecovery 模式更新,也就是全量包更新,是指从服务器请求完整的新版本系统包,直接通过完整包安装新版本系统,原系统镜像全局替换。
举个例子,建一个系统就像造房子。当你更新的时候,就是更新修改房子外部装饰。正常 OTA 增量更新就相当于直接在建筑外部进行加装改造,而全量包则是选择把外体全部敲掉重新装修(还有直接安装新版出厂镜像更新的,会抹除所有数据,类似于把这个建筑直接拆了重建)。
而底层大版本更新的时候,一般都会采用推送全量包的形式完整更新。例如 Google 更新 Android 的时候,每期更新都只采用几十兆几百兆大小的增量包来打包安装镜像更新,但是到大版本更新的时候都会推送上 G 的完整镜像包或近完整镜像包来更新。