内容转载自微博
作者: 张国全(小米手机 系统软件部总监)
简单的介绍一下OTA的那些事, 技术问题一旦说起来头绪太多, 把同学们的问题整理回复一下,大家对OTA就应该有所了解(趁着开会间隙写的, 有个别不谨慎的地方,大家也包涵一下)
问题: 线刷和卡刷有什么区别
没有区别! 卡刷的好处是省一个刷机电脑
问题: 完整包和差分包有什么区别
没有区别, 差分包就是针对上一个完整包,把不同binary导出来, 升级的时候把差分数据覆盖原有分区,效果完全一样,大家感觉到的产别,都是心理暗示
问题:想比别人提前体验OTA包怎么办
除了申请内测外,大家可以在系统更新设置里,选择加入优先升级计划
问题:线刷完整包后感觉系统轻盈了很多,是不是错觉
不能完全说是错觉, 因素一, 经常重启手机,确实会轻盈一点, 毕竟重启会强制清理后台,内存重新分配, 多少会有一点效果; 因素二,如果双清了数据, 很多三方app,甚至系统app的数据被clear后,空间大了,文件碎片少了,一定会更轻盈,亲眼看到好几个空间占用超过99%的手机,确实卡! 除了清数据, 别的没有特别好的办法
问题:OTA过程被打断会有什么后果
一定不能打断, 真的会变砖, 在virtual AB分区之前, 有些入门机OTA过程中, 尤其是夏天机身很热的时候再触发CPU限频, 见过最长的完整包升级接近20分钟, 有的用户心急, 强制重启,就变砖了(家里一个很老的ipad,升级了一下,用了将近40分钟,我一度也恍惚觉的变砖了,幸好不知道怎么重启ipad)
问题: 小米11,感觉OTA过程和之前的手机比有点怪怪的
发现这个问题的同学,必须给点赞, 小米11采用了virtual AB分区! 非virtual AB分区时, 大家点击升级, 下载完很快就可以重启, 重启过程中,在recovery里一点点校验覆盖, 用户感觉启动过程非常慢; 现在是下载后直接做覆盖校验,大家可以玩会别的,校验完, 然后重启直接就用virtual分区,启动过程非常快
问题: 小米以前的双系统是咋回事,为什么后来不坚持做了
问这个问题的都是老米粉, mi2的时候我们做的双系统确实还是比较受欢迎, 但随着智能机功能越来越复杂, 分区所占空间越来越大, 实在舍不得用10G以上的空间来做AB分区了, 可以问大家一下, 大家愿意为升级快一点, 从系统里匀出十几G的空间吗? 事实上,除了谷歌自己的Android One强制10G+空间做AB分区外, 其他大厂都选择把这10G给用户自用了
问题: 有了双系统,手机真的不会升级变砖了吗
事实是,无论啥方法, 都不能彻底根除变砖! 目前的双系统主要是system/vendor分区,就算加上boot分区, 在手机启动到kernel之前,还有很多事情要做, 如果OTA包升级了那些分区,有啥判断出错,也会导致手机变砖…..不要往下问了….
问题: 为什么开发版/稳定版切换,必须双清数据
其实理论真的可以不双清数据, 但是! 现在系统里无数个数据库文件, 一旦发生了降级, 很有可能引起各种异常, 并且一旦出问题,rootcause异常难查,不得不做成必须双清才能升级
问题: 为什么有时候稳定版不能升级开发版(比如上周)
现在的手机都开了防版本回退功能, 如果这个标识位发生变化, 不能从新版本降级到老版本, 所以恰好稳定版比开发版防回退的标识位新一点, 就不能升级开发版了, 但下一个打包的开发版更新标识位后,就可以升级了. 没绕过来了没关系,这个情况非常罕见