只因少打一个字符 “&”,大量谷歌 Chromebook 无法解锁

3fbce766a64cb7f8e5bb552f8e537ef3.gif

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

初学编程的程序员难免会犯一些低级错误,这不难理解。

可当这种低级错误出现在谷歌经过三个开发者版本进而推出的 Chrome OS 正式版中时,就很令人疑惑:谷歌连这么明显的错误都没有看出来吗?

上周,谷歌向 Chromebook 推送了一次 Chrome OS 版本更新,版本号为 91.0.4772.165,而这次更新引起了重大 Bug:只因代码中少打一个字符“&”,导致大量用户无法解锁登录 Chromebook

b40b71fa2c0cd1a51a90997e30375bc5.jpeg

c5714a49a5174017c152260e6e711085.png

小版本更新引起重大 Bug

自 6 月份谷歌正式发布 Chrome OS 91 稳定版以来,似乎就一直大小 Bug 不断。

先是版本 91.0.4472.147 被用户反映 CPU 占用率太高,随后谷歌取消更新,使系统恢复到先前的 91.0.4472.114 版本,可这又引发了用户无法安装 Linux 的问题。

本以为这些问题已经够糟心了,可跟这次 91.0.4772.165 版本导致的后果相比,简直是“小巫见大巫”。

最早发现 Chrome OS 91.0.4772.165 版本有问题的是网友 @u/rk_29,TA 在 Reddit 网站上发布了一则消息:

警告:最新的稳定版更新正在阻止用户登录。我们建议你在进一步通知之前不要更新该版本。

df0665467430c04007f18cc3759337c8.png

这则消息引来了众多 Chromebook 用户的关注,其中不少人因已更新而“遭殃”。有一位 Reddit 用户说,在更新至 91.0.4772.165 版本后,他们的两台 Chromebook 就无法顺利登录了

不仅登录界面无法识别正确账密,两台电脑状态也很不好。一台笔记本电脑陷入重启循环,另一台 Asus Chromebook C436 即便是采用 Powerwash(即强制重置为出厂状态,将 Chromebook 上存储的所有本地用户数据清除)也没办法解决问题,最终只能用 U 盘来让系统恢复到可用状态。

这样的恢复方式未免代价也太过重大,因此彼时最好的建议就是暂时不要进行版本更新。如果 Chromebook 用户在系统托盘中收到更新提示,千万不要关闭电脑,否则 Chrome OS 会在开机时自动更新至有巨大 Bug 的 91.0.4772.165 版本。

但正如有人向来不喜欢最新系统,也有那么一部分人就是习惯及时更新,因而这次 Chrome OS 更新导致的 Bug 使许多人都“中招”了。突然无法正常登录的电脑极大影响了他们的工作生活,为此不得不重装系统丢失重要文件的也不在少数,由此惹怒了许多用户。

087d7b4ea59772a81b85405fe86a4690.png

只因缺少一个字符“&”

这个版本引起的混乱自然引起了谷歌的注意,它迅速删除了 91.0.4472.165 版本,并将 Chromebook 的系统版本退回至 91.0.4472.147,虽然这个版本也不是太安全,但起码用户可以登入电脑了。

谷歌在 20 日的声明中说已经确定了问题所在,将于 21 日发布修复程序。而对于担心数据丢失的受影响用户来说,如果能等到 21 日谷歌的修复版本,待设备自动更新就无需通过 Powerwash 实现登录。

b20b223d3c08c1d07dc71766a379f2cb.png

随后谷歌按时推出了修复版本 91.0.4472.167,这应该也是谷歌对这次重大事故给出的最终解决方案。只要 Chromebook 系统更新至此新版本,用户就可以顺利登入电脑进行正常操作。

虽然表面看来,91.0.4772.165 版本引发的问题到这里就告一段落了,但好奇心驱使人进行更深一步的探索:这么重大的 Bug 到底是由什么引起的?

所幸 Chrome OS 是一款开源的操作系统,因此一切都有迹可循。一位 Reddit 用户 @elitist_ferret 就在其源码中疑似发现了问题所在:只因少打了一个字符“&”。

3aaa50d198cfeb1fa74357d3d3c67bcc.png

谷歌将 Chrome OS 的 Cryptohome VaultKeyset 中的一个条件语句写错了,而这正是操作系统中保存用户加密密钥的关键部分。这一行原本应该是

if (key_data_.has_value() && !key_data_->label().empty()) {

引发重大 Bug 的 91.0.4772.165 版本中这部分却少打了一个“&”(C++ 中逻辑与“AND”运算符的正确写法为“&&”),这就导致了 Chrome OS 无法解密登录信息:

if (key_data_.has_value() & !key_data_->label().empty()) {

b159157b22a74d35ada3ff4adfe0c6a9.png

网友:谷歌没有 QA 测试吗?

这种错误实在太过低级,尤其是出现在谷歌通常要经过三个开发者测试版才推出的稳定版系统更新时,就显得更加匪夷所思。

众多网友对这个低级错误引起的巨大 Bug 也感到非常疑惑

“这怎么能通过质量保证流程?谷歌是在没有进行 QA 测试的情况下就将代码发布推送了吗?”

“谷歌取消质量检查了?”

“测试时怎么会找不到这个 Bug ?!这让我觉得谷歌没有像我对操作系统制造商所期望的那样拥有强大的设备+足够的测试。”

有网友猜测这可能是因为三个开发者版本的代码都不同

“我猜谷歌不会在测试过程的每个版本中都推送完全相同的代码。从 beta 到正式推送的期间,有人可能进行了手动更改以适应新环境,然后意外删除了一个不应该被触及领域的字符。不过谷歌还是应该在发布更新之前审查测试版和稳定版之间的所有更改。”

有网友庆幸自己没有及时更新系统的习惯

“这就是我讨厌强制更新的原因。一般像我这样经验丰富的 IT 专业人士选择更新时,通常是在一大群人都更新了并且没有报告任何问题之后。”

而这种低级错误也对谷歌产生了一定的负面影响

“谷歌在向我们展示这就是为什么 Chrome OS 还没有准备好迎接黄金时段。”

“我猜谷歌会说:是实习生的错。相信我们,真的是实习生的错。”

“我现在更没有理由也更不想使用 Chromebook。”

那么对谷歌这次因更新引起的重大 Bug,你有什么看法吗?

参考链接:

  • https://arstechnica.com/gadgets/2021/07/google-pushed-a-one-character-typo-to-production-bricking-chrome-os-devices/?comments=1

  • https://www.androidpolice.com/2021/07/20/a-new-chrome-os-91-update-is-breaking-chromebooks-like-a-bull-in-a-china-shop/

  • https://www.reddit.com/r/chromeos/comments/onlcus/update_it_seems_google_has_pulled_the_165_stable/?sort=top

6ec7ce8d46ede3c8e843572753494db7.gif

 
 
 
 
 
 
 
 

26b2915be43ca7cd51d391dc44288944.jpeg

 
 

f0f5575d5724dd52a4ded24203583003.gif

☞iPhone 13发布时间曝光;中国博士创造新算法,提高步态精确识别身份的精度;iOS 15引入半身照的人物识别功能|极客头条☞FTP 时代已逝:Firefox、Chrome 等多个浏览器均已弃用!☞从 MySQL 5.6 升级到 MySQL 8.0,Facebook 付出了什么代价?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Chromebook上安装Linux,您需要先启用Chromebook上的开发者模式。然后,您可以通过Crouton或Chromebrew等工具来安装Linux。安装Linux后,您可以使用Linux应用程序和命令行工具来扩展Chromebook的功能。但请注意,安装Linux可能会影响Chromebook的安全性和稳定性,因此请谨慎操作。 ### 回答2: Chromebook是一种基于Chrome OS的操作系统的笔记本电脑。虽然Chrome OS可以运行许多应用程序,但有些用户需要更广泛的功能,例如使用Linux的命令行和软件。因此,可以在Chromebook上安装Linux以满足这些需求。 首先,要安装Linux,您需要启用Chromebook上的“开发者模式”。要进入开发者模式,首先,请备份您的所有文件并确保Chromebook已连接到电源。然后,按住Esc + F3(Chromebook上的切换功能键)+ 电源按钮,然后释放所有这些键。Chromebook将进入恢复模式。 在恢复模式下,您需要按Ctrl + D,然后按Enter键。您将会收到一条警告,提示您确信要进入开发者模式。按Enter再次确认。Chromebook将自行重启并进入开发者模式。 现在您有了开发者模式,需要打开Chromebook上的“Linux(Beta)”功能。前往Chromebook的设置并选择“设备”>“Linux Beta”,随后按照提示启用它。系统将自动下载并安装Linux虚拟机容器。 与此同时,建议您下载和安装一个名为“Crouton”的Linux发行版,它与Chrome OS安装在同一个虚拟机容器中,并为您提供享有Linux游戏和软件的命令行界面。该软件也能帮助您在Chromebook上快速安装Linux发行版。 最后,为了使用Linux,您需要打开终端并输入以下命令:sudo startgnome 或 sudo startxfce4。这将启动您安装的GNOME或Xfce桌面环境。现在,您可以使用Linux命令行和应用程序,您可以在Chromebook上进行更广泛的任务! 总之,将Linux安装到Chromebook上是一个相对简单的过程,需要您注意一些关键步骤。一旦您完成了所有步骤,您将能够在Chromebook上使用Linux的命令行和应用程序,满足您更广泛的需求。 ### 回答3: 随着Chromebook在市场上的快速普及,越来越多的用户想要在Chromebook上使用Linux。Chromebook本身是一种基于Google Chrome浏览器的操作系统,但是安装Linux可以为用户提供更多功能和灵活性。 首先需要说明的是,Chromebook是基于Google Chrome OS的,这意味着它并不是一个传统意义上的计算机。Chromebook的本质是一款浏览器,因此它并不支持像Windows或Mac OS那样的原生程序安装。这就是为什么在Chromebook中安装Linux会比在其他设备上更加复杂的原因。 但是,Chromebook作为一种基于Linux内核的操作系统,是可以使用Linux的。Google为Chromebook提供了一个称为“开发人员模式”的选项,用户可以在这个模式下安装和运行Linux应用程序。以下是步骤: 步骤一:打开“开发人员模式” - 这个选项可以通过按下“ESC + 刷新 + 电源”来打开,这样您就可以进入Chromebook的开发人员模式。 步骤二:下载Crouton - Crouton是一个用于在Chromebook上安装Linux的软件。 步骤三:启动Crouton - 打开“终端”并输入以下命令: sudo sh ~/Downloads/crouton -t [desktop environment] [desktop environment]将是您想要安装的桌面环境。例如,如果您想要安装Ubuntu,这将是“xfce”或“unity”之一。 步骤四:等待安装完成 - 安装会需要一些时间。安装完成后,您将可以通过在Chromebook的开发人员模式下切换到Linux环境。 总的来说,Chromebook在安装Linux方面略有些复杂,但对于那些想要更多功能和灵活性的用户来说,这是一个值得尝试的方法。如果遵循正确的步骤,安装Linux将为Chromebook带来更多功用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值