OTA(Over The Air),是关心安卓系统更新的用户非常熟悉的一个词汇,但是你真的了解它么?Google工程师Dan Morrill今天发了两个帖子,揭开了OTA机制一些不为人知的秘密,并戳穿了一个流传甚广的所谓“技巧”。
大家都知道,OTA是一个循序渐进的过程,推送的头一两天只有极少数人能够看到更新提示,大部分人则在迷茫地质询为什么我收不到。
Dan Morrill是这么说的:
(OTA)推送是分步骤进行的。一般来说,大约24-48个小时内从1%的设备开始。我们据此观察返回率、设备连接,分析错误报告(如果有的话),确保在发给更多人之前不会出错。然后在接下来的一两周内,就会逐渐覆盖到25%、50%、100%的用户。
这些百分比意味着,如果你的设备去检查是否有更新,看到OTA的概率是1%(以此类推)。如果没有(很随机的),那么在下一批次推送之前,你是再怎么检查也看不到OTA的。
换言之,一旦你的设备跑过来检查却被拒绝,就只能等待下一波了。“检查更新”按钮狂点再多次,也只会让你的设备反复检查、反复自动被拒。想想你的设备会是啥感觉?有没有人在乎过设备的感受?!
如果新的推送批次开始了,点击“检查更新”按钮会让你得到又一次掷骰子的机会,但又是仅此一次。设备通常都会每24小时自动检查一次更新(可能吧反正是很多小时一次),一般来说它会比你更快的(不等手动检查就提示更新)。
所以呢,请耐心点儿,不停地检查更新是什么也得不到的。
另:OTA并不是先到先得。你不是在和其它设备赛跑争抢推送,都是随机的。
再说那个流传甚广的“技巧”:很多“高手”会告诉你,如果刷不出来OTA,可以先清空一下Google服务框架的数据。
Dan Morrill却告诉我们,这绝对是个馊主意,不但不会找到OTA(原理上已经决定了你只能等待和看RP),反而还会搞乱你的设备。
这么做会改变Google识别你设备的主ID。在服务器看来,设备基本上就是恢复了出厂默认设置。这么做有很多负面作用,最大的就是会让很多GCM应用使用的令牌失效作废。
注:GCM即Google Cloud Messenger,Google云信使,几乎所有的Google应用和大量的第三方应用都离不开它。
GCM ID改变后,应用的反应是各不相同的。Play Store必须注销重新登录,Gmail一般能应付过去但会在一段时间内得不到新邮件提醒。有些应用必须清空数据重来才能正常运转。
总之,所有应用都会直接停止接收GCM消息推送,直到得到新的GCM ID。有些会经常这么做(很快就得到新的ID),有些就很少,而有些应用直接将GCM ID作为其自己服务器的ID(因为它是独一无二的、基本随机的),所以除了消息推送外,其它功能也可能不再正常。
不会天下大乱,但是你的设备会有一堆异常,其中有些还会显得很诡异。具体取决于你正在使用的应用。
也就是说 虽说Nexus亲儿子系列都是小白鼠 但小白鼠也分炮灰和后勤兵(文工团?) 谷歌会先OTA给1%的炮灰 如果新系统没有问题的话 再扩大到25%推送范围,最后50%,100%。
所以 还没有收到OTA的 应该感到庆幸 而不是失望!
然后我又谷歌了一下,找到了为何那么多人没有收到OTA的原因:
安卓4.4 KRT16S的改进之一:
修正从4.3升级到4.4后无法访问加密磁盘的Bug。安卓4.4引入了一个新的密钥衍生函数Scrypt,可有效抵御暴力攻击,确保全盘加密异常难以破解。安卓,使用旧方法加密的磁盘应该自动升级到Scryp,但是因为缺乏预先验证,升级后会导致用户无法访问自己的加密数据。
正是因为这个问题,Google叫停了KRT16O版本的OTA更新,这就解释了为什么开始有人看到了OTA,但更多的人怎么也找不到。