Meta 近日解释了上个月底一些 Quest 头戴设备被锁死的具体技术原因。
如果您错过了消息,去年12月,部分 Quest 头戴设备,尤其是 Quest 2,出现了无法正常启动的问题,陷入所谓的“启动循环”。此问题发生在设备进行了一次长时间未更新的自动固件更新之后,之前安装的版本与最新更新之间的差异相当显著。
到月末时,Meta 已经承认了这一问题,并告知客户“在大多数情况下,您现在可以正常使用设备”。对于被锁死的设备,公司开始提供免费更换服务,甚至包括保修期外的设备。
现在,三周后,Meta 的 Quest 和 Horizon OS 副总裁 Mark Rabkin 详细说明了具体情况。
Rabkin 表示,问题源于“AOSP R/W ext4 文件系统中一个罕见的竞争条件,这种情况会导致文件损坏,以及一个关键的安全补丁阻止操作系统回滚”,指出该缺陷已经存在四年,但直到12月才成为问题。此外,Rabkin 还表示,一个安全补丁阻止了操作系统回滚到可以正常工作的版本。
AOSP 是 Android 开源项目的缩写,这是运行 Quest 头戴设备的 Meta Horizon OS 的开源核心,ext4 是安卓使用的 Linux 文件系统,而 R/W 指的是同时从文件系统读取和写入。竞争条件是在多线程软件中可能发生的问题,当代码的不同部分在意外顺序下并行执行时,可能导致意外结果。
简单来说,Rabkin 指出,在一种非常特定且罕见的条件下,Android 文件系统处理同时读取和写入的缺陷导致了此问题,而旨在防止操作系统回滚的安全补丁则使得这个错误更新保留在原地。
这是 Meta 历史上最新的一次服务中断,对于受影响的用户而言,问题比以往任何一次都要严重。早在2018年,每个 Oculus Rift 因证书过期而停止工作,这个问题让 Meta(当时的 Facebook)修复了超过12小时。最近,在2024年3月,由于服务器错误,所有联网的 Quest 头戴设备停用了约一个小时,导致 Meta 承诺将使 Quest 头戴设备在未来对服务器问题“更具弹性”。
消费级 Quest 头戴设备的引导加载程序是锁定的,意味着用户无法手动安装自定义操作系统,Meta 也不允许您降级到旧版本的 Horizon OS。这些决定使得设备在这样的问题面前显得相对脆弱,尽管发生这样的情况所需的条件极其罕见。为了作为一家与苹果相当的严重消费电子公司,Meta 可能需要重新考虑其软件更新政策,并建立起一种信任关系,而这种关系因在圣诞节被困在一个“砖头”状态而受到严重削弱。