Владельцы хромбуков массово потеряли доступ к своим файлам из-за опечатки программиста длиной в один символ

Техника Открытое ПО
, Текст: Дмитрий Степанов
Свежее обновление Chrome OS лишило многих владельцев хромбуков возможности войти в учетную запись Google и оставило без доступа к своим файлам. Виноватым в случившемся называют программиста Google, который допустил небольшую опечатку при внесении изменений в исходный код операционной системы.

Google подкинула проблем

Сразу несколько обновлений операционной системы Google Chrome OS 91, выпущенных подряд, вызывают проблемы у пользователей хромбуков. Причем, как отмечает ресурс Android Police, одна неприятнее другой.

Наиболее серьезная из них связана с невозможностью войти в учетную запись Google из-за того, что операционная система просто не воспринимает введенный пароль. Вследствие этого владельцы хромбуков, успевшие установить проблемное обновление, потеряли доступ к настроенному рабочему окружению и собственным файлам.

Android Police связывает проблему с апдейтом 91.0.4472.165, который не содержит заметных улучшений функциональности. Google начала его распространение 20 июля 2021 г.

У Google выдалась неудачная серия обновлений Chrome OS

Помимо проблем со входом в свой аккаунт, некоторые владельцы хромбуков, поторопившиеся обновиться, жаловались в Twitter и Reddit на то, что их ПК входит в бесконечный цикл перезагрузки.

Пользователи более ранних версий – 91.0.4472.147 и 91.0.4472.114 – обращали внимание на резко возросшую нагрузку на центральный процессор ПК и проблемы с запуском Android-приложений.

Как решали проблему

Google отреагировала на жалобы достаточно оперативно, прекратила распространение обновления и пообещала вскоре выпустить исправление. Однако тем, кто уже установил апдейт 91.0.4472.165, временного варианта решения проблемы компания не предложила.

В посвященной обсуждению проблемы ветке на Reddit один из пользователей посоветовал использовать Powerwash, то есть функцию отката настроек хромбука к заводским. Такое решение может устроить далеко не каждого, поскольку процедура сброса приводит к утрате хранящихся на ПК личных файлов пользователя. В случае же невозможности загрузиться владельцам хромбуков и вовсе было необходимо прибегнуть к восстановлению системы при помощи специальным образом подготовленного USB-накопителя.

На следующий день, 21 июля 2021 г., Google начала распространение патча 91.0.4472.167, который решает описанные проблемы. Тем не менее, для его установки по-прежнему нужно либо дождаться «прибытия» обновления на стартовом экране, либо войти в систему и применить его вручную. К счастью, для этого достаточно учетной записи гостя (Browse as a guest).

Досадная ошибка

После выхода исправления 91.0.4472.167 один из участников обсуждения проблемы на Reddit проанализировал патч в репозитории Chromium OS – версии Chrome OS с открытым исходным кодом – и обнаружил предположительный источник всех бед.

По всей видимости, один из разработчиков Google допустил банальную опечатку в записи условного выражения if-else: вместо оператора «логического И» программист использовал оператор «побитового И». В результате чего функция, возвращающая значение, необходимое для расшифровки содержимого пользовательского аккаунта, просто не работала. Из-за этого владельцев хромбуков не пускало в учетную запись.

Фрагмент кода с опечаткой (справа – исправленный патчем вариант)

Ошибиться, впрочем, несложно, ведь в языке программирования C++, на котором написан данный модуль Chrome OS, оба оператора похожи и записываются как && и & соответственно. Первый возвращает значение true (истина), если оба операнда (аргументы справа и слева от оператора) истинны и false (ложь), если хотя бы один из них ложен. Второй, как и следует из названия, возвращает результат побитового (бит – единица измерения информации в двоичной системе счисления) сравнения операндов. Если оба сравниваемых бита равны единице, соответствующий бит результата устанавливается также в единицу, в противном случае – в нуль.

Успехи Chrome OS

Chrome OS – это «легковесная» операционная система корпорации Google, базирующаяся на ядре Linux и браузере Google Chrome и, в первую очередь, предназначенная для работы с веб-сервисами. Благодаря сравнительно низким требованиям к «железу» ОС работает на недорогих ноутбуках, которые сначала неофициально, а затем и самой Google стали называться хромбуками.

Анонс проекта Chrome OS состоялся в июле 2009 г., а первая стабильная сборка увидела свет в июне 2011 г. К лету 2016 г. ОС получила поддержку запуска Android-приложений.

По данным аналитического сервиса Statcounter в июне 2021 г. на долю Chrome OS приходилось лишь 1,51% рынка настольных операционных систем. Привычно лидировала Windows (72,98%), а среди ее наиболее успешных преследователей были macOS (15,56%) и Linux (2,68%).

В сентябре 2020 г. CNews писал, что Google работает над новой операционной системой в рамках проекта под названием LaCrOs. Ее построят на Chrome OS, которая лишится интегрированного браузера Chrome, на протяжении всего ее существования служившего основой для нее.

В октябре 2020 г. основанная россиянами компания Parallels выпустила ПО для запуска приложений Windows на хромбуках. Решение нацелено на корпоративных клиентов и обходится почти $70 в месяц за одного пользователя.

В декабре 2020 г. Google поглотила американскую компанию Neverware, которая занималась разработкой облачной операционной системы Cloudready. Данная ОС построена на базе Chromium OS, версии Chrome OS с открытым исходным кодом. Cloudready позиционировалась разработчиками в качестве решения для маломощных, в том числе и устаревших, персональных компьютеров.