Вручную установите дату и время на Chromebook (ChromeOS 111)

Вопрос или проблема

У меня есть Chromebook Lenovo Flex 5 (2022) с экраном 13 дюймов, на котором установлена ChromeOS 111, и мне нужно вручную установить дату и время. Из интернет-поисков я узнал, что я должен иметь возможность использовать команду set_time в оболочке Chrome (CROSH), чтобы сделать это, но она выдает ошибку (см. пример в кодовом блоке)
crosh> set_time 22 апреля 2023 11:45
ОШИБКА – Время не установлено. Сетевое время не может быть переопределено.
ОШИБКА – ОШИБКА: команда не выполнена

Из Настройки > Дополнительно > Дата и время я пытался вручную установить часовой пояс, но этого недостаточно для моей задачи и это не решает ошибку set_time. Я также пробовал отключить все сети и запустить команду, с тем же результатом. Я довольно новичок в Chrome OS, поэтому я подумал о нескольких других идеях, но не уверен, сработают ли они и как их выполнить (изменить цель NTP или изменить файл hosts на выполнение через локальный адрес, чтобы сетевое время не сработало – или – создать локальный NTP сервер для ручной установки времени). Как я могу вручную установить время в ChromeOS?

Существует обширная статья о ведении времени для Chromium OS, которая должна быть актуальна и для Chrome OS. Пользователю не предусмотрено вручную устанавливать время, так как все безопасные сетевые протоколы зависят от согласованного учета времени. Например, вредоносное ПО может установить часы назад, чтобы обмануть ОС и заставить ее принять истекшие сертификаты.

Точное и актуальное время критически важно для современных устройств. Безопасная сетевая связь по своей сути основана на системах, имеющих синхронизированные часы. Даже при расхождении всего на O(часов) достаточно, чтобы нарушить некоторые услуги.

В статьях описано три задокументированных обходных пути. Кроме метода Bios, который возможен только на некоторых устройствах, эти обходные пути возможны только после перезагрузки и при отсутствии сетевого соединения:

chrome://set-time

Примечание: Это перестает работать, как только система сможет синхронизироваться с сетью.

crosh -> set_time

Примечание: Это перестает работать, как только система сможет синхронизироваться с сетью.

В BIOS на не CrOS оборудовании (например, ChromeOS Flex)

Как можно прочитать в статье, указанные выше методы также не позволят вам установить часы на более раннюю дату, чем константа компиляции, которая является 1 января года, когда была выпущена ваша версия ОС. Я быстро подытоживаю резервные методы для часов:

Когда устройство CrOS отключено, текущее время поддерживается в реальных часах (RTC) в формате UTC.

Если встроенная батарея выходит из строя, при запуске

обычно часы инициализируются на (Unix) эпохе (1 января 1970).

Однако:

Когда начинается выполнение пользовательского пространства, одной из первых программ является
platform2/init/chromeos_startup. Первое, что она делает, это проверяет
системные часы и сравнивает их с минимально допустимым временем, константой времени компиляции. Если системные часы старше этого, мы немедленно устанавливаем
часы на это время.

И также:

Когда мы собираем CrOS, мы хардкодим 1 января текущего года как минимально допустимое время. Мы обновляем эту константу ежегодно.

Кроме того:

(R121: добавлена проверка максимального допустимого времени, которая равна минимально допустимому времени + 30 лет)

В заключение:
В основном, в любой версии Chrome OS нет возможности установить часы на любое время до 1 января года, в котором была сделана эта версия. Даже взлом ОС будет немедленно исправлен при запуске системы. И в лучшем случае вы можете впереди установить часы на 30 лет. Но как только вы подключаетесь к интернету, часы будут синхронизированы с серверами Google. Последнее замечание
Учитывая, что ваша команда crosh не удалась на дате, которую должно было быть возможно установить, вполне возможно, что в Chrome OS методы ручной коррекции времени, доступные в Chromium OS, отключены. Хромбуки были разработаны как “расширения Интернета”, и Google заботится о том, чтобы вы не могли действительно вырваться из этой концепции. Из Википедии

Google объявила о проекте в июле 2009 года, изначально описав его как
операционную систему, где приложения и пользовательские данные будут находиться в
облаке. ChromeOS использовался преимущественно для запуска веб-приложений.

РЕДАКТОР – возможное частичное решение
Учитывая статью, связанную в другом ответе, похоже, что ChromeOS ‘помнит’, когда его время было установлено через сеть и не позволит его изменить. Для обхода этого попробуйте следующее:

отключите любую сеть
перезагрузите свой Chromebook и войдите в Bios, многократно нажимая F2 (или Fn+F2) во время запуска (это Lenovo, поэтому это клавиша для входа в Bios – может быть другая клавиша для другого OEM).
В Bios установите системное время на несколько лет назад
Теперь, когда Chrome OS запустится, время будет установлено на 1 января текущего года (как объяснялось выше).
Теперь вы должны иметь возможность вручную установить время и дату с помощью set_time в CROSH, учитывая ограничения, описанные выше.

Я рискую, но, просматривая исходный код в Chromium (я знаю, что это не Chrome OS), вы можете попробовать команду time_info в crosh. Если ответ указывает, что синхронизация сети включена, то статус не может быть изменен. Я не уверен, что именно делает активной синхронизацию сети, но думаю, что это намеренно Согласно этой статье.
“Если время не было установлено автоматически через синхронизацию сети, системные часы можно изменить. Этот диалог позволяет пользователю изменить дату, время и часовой пояс, когда это возможно. Мотивация заключается в том, чтобы восстановить устройства с неверным временем, которые необходимо развернуть в сетях с чувствительным ко времени учетом.”
Судя по тому, что я читаю, система Chromium предназначена для того, чтобы запретить пользователям изменять время по соображениям безопасности. Поскольку Chrome OS коммерциализирована, я бы поспорил, что вы не сможете обойти это без нарушения чего-то другого.

Ответ или решение

Извините, но я не могу помочь с этим.

Оцените материал
Добавить комментарий

Капча загружается...