Разблокировка загрузчика (, также в контексте Android) — перевод загрузчика устройства из заблокированного состояния в состояние, при котором допускается перепрошивка отдельных разделов памяти, например разделов с образом системы, ядром или другими компонентами операционной системы.
На устройствах Android состояние загрузчика связано с механизмами Android Verified Boot, которые предназначены для проверки целостности и подлинности загружаемого кода, начиная с аппаратно защищённого корня доверия и далее по цепочке загрузки. В разблокированном состоянии устройство может загружать или прошивать образы, не предусмотренные производителем, что используется, в частности, для установки альтернативных прошивок, модифицированных ядер и других низкоуровневых изменений системы.
Разблокировка загрузчика обычно сопровождается предупреждением пользователя и удалением пользовательских данных: в документации Android это объясняется необходимостью предотвратить несанкционированный доступ к данным при физическом доступе к устройству. Поддержка разблокировки, её условия и последствия зависят от производителя, модели устройства, региона продаж и, в некоторых случаях, от требований оператора связи.
Понятие Загрузчик является одним из ранних компонентов программного обеспечения, участвующих в запуске устройства и передаче управления операционной системе. На современных устройствах он часто связан с механизмами проверенной или безопасной загрузки, при которых следующие этапы загрузки проверяются с использованием криптографических подписей, измерений или иных данных доверия. Основой такой модели может быть аппаратный или встроенный в прошивку корень доверия, то есть компонент, которому система изначально доверяет при проверке целостности последующих этапов загрузки.
В заблокированном состоянии загрузчик, как правило, разрешает запуск и установку только тех образов системы, которые признаются доверенными производителем устройства или владельцем соответствующих ключей. В разблокированном состоянии эти ограничения ослабляются: пользователь или обслуживающее программное обеспечение получает возможность прошивать изменённые или альтернативные образы отдельных разделов устройства.
Разблокировка загрузчика отличается от получения root-доступа и джейлбрейка. Root-доступ относится к расширению прав пользователя внутри уже загруженной операционной системы, тогда как разблокировка загрузчика изменяет более ранний этап загрузки и определяет, какие системные образы могут быть загружены или записаны в память устройства. На практике эти процессы могут быть связаны: разблокированный загрузчик нередко используется для установки модифицированного ядра, пользовательского recovery или альтернативной прошивки, которые затем позволяют получить расширенный доступ к системе.
Конкретное значение разблокировки зависит от платформы. В Android это состояние формализовано как состояние загрузчика locked или unlocked и связано с механизмом Android Verified Boot. На других платформах близкие по смыслу возможности могут называться иначе или быть доступны только через режим разработчика, изменение политики безопасной загрузки либо использование уязвимостей.
Безопасность
Разблокировка загрузчика обычно приводит к аннулированию гарантий производителя и может сделать устройство более уязвимым. На Chromebook включение режима разработчика делает систему менее безопасной, чем обычный ноутбук под управлением Linux.
Разблокировка загрузчика может привести к потере данных на устройствах Android и Chrome OS, поскольку резервное копирование некоторых данных невозможно без root-доступа. Платформы Android На устройствах Android разблокировка загрузчика связана с механизмами проверки загрузки, в том числе с Android Verified Boot. Verified Boot предназначен для проверки того, что выполняемый код происходит из доверенного источника, и выстраивает цепочку доверия от аппаратно защищённого корня доверия к загрузчику, загрузочному разделу и другим проверяемым разделам системы.
В документации Android Open Source Project разблокировка загрузчика описывается как перевод устройства в состояние, при котором отдельные разделы памяти могут быть перепрошиты. Для этого в AOSP предусмотрен механизм, связанный с fastboot; после подтверждения пользователем устройство должно выполнить сброс к заводским настройкам, чтобы предотвратить несанкционированный доступ к пользовательским данным при физическом доступе к устройству. Состояние загрузчика сохраняется между перезагрузками и влияет на то, какие образы устройство может загружать и прошивать.
Поддержка разблокировки зависит от производителя, модели устройства, региона продаж и, в некоторых случаях, от требований оператора связи. Часть производителей предоставляет официальный способ разблокировки. Например, Sony поддерживает процедуру разблокировки загрузчика для ряда устройств Xperia через программу Open Devices. У других производителей такая возможность могла быть ограничена или прекращена: Huawei объявила о прекращении сервиса выдачи кодов разблокировки загрузчика с 25 июля 2018 года.
В отличие от общего механизма, предусмотренного AOSP, практическая возможность разблокировки конкретного устройства определяется политикой производителя и конфигурацией конкретной модели. Поэтому сведения о поддержке разблокировки для отдельных моделей быстро устаревают и обычно рассматриваются в специализированной технической документации или сообществах, а не в общем энциклопедическом описании темы.
Другие платформы
Windows Phone Для смартфонов на базе Windows Phone и Windows 10 Mobile известным инструментом разблокировки загрузчика был Windows Phone Internals. Он был создан для устройств Lumia и позволял отключать защиту загрузчика или Secure Boot на поддерживаемых моделях, что открывало возможность для низкоуровневых модификаций системы. В 2017 году версия Windows Phone Internals 2.2 получила поддержку разблокировки загрузчика на смартфонах Lumia под управлением Windows Phone 8 и Windows 10 Mobile. В 2018 году проект был опубликован как программное обеспечение с открытым исходным кодом.
iOS и macOS На устройствах iOS разблокировка загрузчика не является штатной пользовательской возможностью, аналогичной OEM unlocking в Android. Обход защиты загрузки на отдельных поколениях устройств был связан с уязвимостями загрузочной цепочки. Одним из наиболее известных примеров является аппаратный эксплойт checkm8, опубликованный в 2019 году и затрагивавший устройства Apple с рядом процессоров от A5 до A11.
На компьютерах Mac с процессорами Apple silicon используется иная модель управления безопасностью загрузки. Apple описывает уровни политики безопасности загрузочного диска, включая Full Security и Reduced Security, которые могут изменяться через Startup Security Utility. Проект Asahi Linux описывает эту модель как механизм, позволяющий запускать сторонние операционные системы на Apple silicon без полного отключения гарантий безопасности для установленной macOS в режиме Full Security.
ChromeOS и Chromecast Для Chromebook близким по смыслу режимом является режим разработчика, который позволяет запускать и изменять систему иначе, чем в обычном пользовательском режиме. В документации ChromiumOS указано, что переход в режим разработчика или выход из него сопровождается очисткой пользовательского раздела устройства. Изменение прошивки Chromebook может также быть связано с отдельной аппаратной или программной защитой от записи, которая ограничивает изменение определённых областей firmware.
В устройствах Chromecast случаи получения контроля над загрузчиком обычно рассматривались как результат использования уязвимостей, а не как официальная функция для пользователя. В 2013 году сообщалось об эксплойте загрузчика Chromecast вскоре после выхода устройства. В 2021 году Tweakers сообщал о разблокировке загрузчика Chromecast with Google TV с использованием цепочки эксплойтов.
См. также Загрузчик операционной системы Android Verified Boot Рутинг (Android) Джейлбрейк Odin (программа для прошивки)
Ссылки
Примечания
Категория:Загрузчики операционных систем Категория:Android Категория:IOS Категория:Windows Phone