Bootloader - что это? Загрузчик операционной системы. Reboot to Bootloader: перевод на русский язык и что это такое

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

Не каждый телефон позволит Вам это сделать

Есть два вида телефонов в этом мире: Те, которые позволяют Вам разблокировать загрузчик операционной системы и те, которые, соответственно, не позволяют этого.

Возможность разблокировать загрузчик зависит от производителя Вашего смартфона, модели, и даже от Вашего оператора. Все смартфоны Nexus позволяют разблокировать bootloader, и многие телефоны от Motorola и HTC позволят Вам разблокировать загрузчик таким же образом, как и на Nexus.

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

Лучший способ узнать к какой категории относится Ваш смартфон, это посмотреть на специализированном сайте . Если у Вас смартфон HTC или Motorola, то Вы также сможете проверить возможность разблокировки на сайтах HTC и Motorola. Если загрузчик Вашего смартфона нельзя разблокировать официальным способом, то Вам поможет только неофициальная разблокировка или root метод, который обычно можно найти на форуме XDA Developers.

Шаг 0: сделайте бекап всего, что хотите сохранить

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

Вот еще совет: так как я знаю, что захочу получить root права на своем смартфоне, то я всегда разблокирую загрузчик, как только покупаю новое устройство. Таким образом я не трачу время понапрасну, настраивая телефон под себя, чтобы через пару дней удалить все данные.

Когда Вы сохраните все важные файлы, то можно начать.

Шаг 1: установка Android SDK и драйверов для Вашего телефона

Вам будут нужны две вещи для этого процесса: Android Debug Bridge, который представляет собой командную строку для ПК, с помощью которой можно общаться с телефоном, и USB драйвер для вашего устройства. Если Вы установили их раньше, то Вам необходимо обновить их до последней версии.

Приведем краткую инструкцию по установке:

  • 1. Перейдите на страницу загрузки Android SDK и прокрутите страницу вниз до “SDK Tools Only”. Загрузите ZIP файл для вашей ОС и распакуйте архив.
  • 2. Запустите SDK Manager и снимите галочки со всех пунктов кроме “Android SDK Platform-tools”. Если Вы используете телефон Nexus, то можете также выбрать «Google USB Driver», чтобы загрузить драйверы Google.
  • 3. После завершения установки можете закрыть SDK manager.
  • 4. Установите USB драйверы для своего телефона. Вы можете найти их на веб-сайте производителя смартфона (например Motorola или HTC)
  • 5. Перезагрузите компьютер, если потребуется.

Включите телефон и подключите его к компьютеру с помощью USB кабеля. Откройте папку инструментов в папке с установленным SDK Android и нажмите Shift+правой кнопкой мыши на пустой области. Выберите “Open a Command Prompt Here” и выполните следующую команду:
adb devices
Если появится серийный номер, то Ваш телефон обнаружился и Вы можете продолжить дальше. В противном случае, убедитесь, что вы правильно выполнены все указанные шаги.

Шаг 2: Включение USB Debugging

Далее Вам потребуется включить несколько опции на вашем телефоне. Зайдите в настройки телефона и выберите «О телефоне». Пролистайте вниз до пункта «Номер сборки» и 7 раз нажмите на этот пункт. Должно появится сообщение, что Вы вошли в режиме разработчика.

Вернитесь на главную страницу настроек, у Вас должен появится новый пункт “Для разработчиков”. Включите “OEM Unlocking”, если данная опция существует (если ее нет, не беспокойтесь – этот пункт есть только на некоторых телефонах).

Затем включите “Отладка по USB”. Введите пароль или PIN-код, если необходимо.

Как только это сделаете, соедините свой телефон с компьютером. У вас появится окно на телефоне с вопросом «Включить отладку по USB?». Поставьте галочку в поле «Всегда разрешать для этого компьютера» и нажмите OK.

Шаг 3: Получение ключа разблокировки(не для телефонов Nexus)

Если у вас смартфон Nexus, то переходите к следующему шагу.

Перейдите на сайт производителя смартфона для получения ключа разблокировки (например для Motorola откройте эту страницу или эту для HTC), выберите свое устройство(если требуется) и водите или создайте новый аккаунт.

Дальше в этом шаге могут быть отличия для разных телефонов, но на сайте производителя должна быть инструкция по шагам. Она будет заключаться в следующем: во-первых, выключите телефон и загрузитесь в режиме fastboot. На разных телефонах бывают разные способы, но чаще всего нужно нажать и удерживать кнопку включения и клавишу убавления громкости в течение 10 секунд. Отпустите кнопки и вы должны попасть в fastboot режим (пользователи HTC должны будут клавишой убавления громкости добраться для пункта Fastboot и клавише включения выбрать этот пункт).

Соедините телефон и ПК с помощью USB кабеля. Ваш телефон должен как-то оповестить Вас, о подключении. Откройте папку инструментов в папке с установленным SDK Android и нажмите Shift+правой кнопкой мыши на пустой области. Выберите “Open a Command Prompt Here” и введите команду для разблокировки, которую предоставляет производитель (для Motorola это fastboot oem get_unlock_data command , для HTC fastboot oem get_identifier_token).

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

Шаг 4: Разблокировка

Теперь вы готовы к разблокировке. Если ваш телефон все еще находится в режим fastboot, запустите команду, которая написана ниже. Если нет, то выключите телефон и загрузитесь в режиме fastboot. На разных телефонах бывают разные способы, но чаще всего нужно нажать и удерживать кнопку включения и клавишу убавления громкости в течение 10 секунд. Отпустите кнопки и вы должны попасть в fastboot режим (пользователи HTC должны будут клавишой убавления громкости добраться для пункта Fastboot и клавише включения выбрать этот пункт). Соедините телефон и ПК USB кабелем.

Откройте папку инструментов в папке с установленным SDK Android и нажмите Shift+правой кнопкой мыши на пустой области. Выберите “Open a Command Prompt Here”.

Чтобы разблокировать устройство, вам потребуется выполнить одну простую команду. Для большинства устройств Nexus, эта команда:
fastboot oem unlock
Если у Вас новая версия Nexus, например, Nexus 5X или 6P, то команда будет немного другая:
fastboot flashing unlock
Если у Вас не Nexus смартфон, то на сайте производителя будет указана нужная Вам команда. Для устройств Motorola это команда fastboot oem unlock UNIQUE_KEY , где UNIQUE_KEY это код отправленный вам на email. Для HTC это команда fastboot oem unlocktoken Unlock_code.bin , где Unlock_code.bin это файл полученный от производителя HTC.

После запуска команды телефон может спросить действительно ли Вы хотите разблокировать. используйте клавишу громкости для подтверждения.

Когда разблокировка будет завершена, используя экранное меню, перезагрузить телефон (или выполните команду fastboot reboot на компьютере). Если все сделано правильно, то при загрузке телефона Вы увидите сообщение о том, что загрузчик разблокирован, а дальше загрузится ОС Android. Важно сначала загрузить Android прежде чем выполнять какие-либо действия, например установку пользовательского recovery.

Поздравляем с разблокировкой! Пока Вы не заметите никаких различий, но теперь вы сможете установить пользовательский recovery , получить root права или установить пользовательскую прошивку.

Далеко не каждый обладатель мобильного девайса в виде смартфона или планшета, работающего под управлением «операцонки» серии Android, знает о том, что в любой версии ОС имеется такая штука, как Bootloader. Что это такое, сейчас и будет рассмотрено. Исходя из понимания самой сути вопроса, можно будет узнать, какие операции можно производить при его разблокировании.

Bootloader: что это?

Начнем, так сказать, с азов. Bootloader Android-систем практически ничем не отличается от того, что имеется на любом компьютерном терминале, будь то PC или Mac. Говоря простым языком, Bootloader - это встроенное средство загрузки

Если привести в пример компьютерные терминалы с несколькими установленными «операционками» (скажем, Windows и Linux), загрузчик после включения стационарного блока или ноутбука предлагает юзеру вход в систему на выбор, а после подтверждения загружает ту или иную ОС.

Принципы загрузки ОС

Равно как и в стационарных системах, в мобильных девайсах обращается к инициализационным файлам по типу того, как это делает, например, Windows при загрузке параметров из файла boot.ini.

Если обратить внимание именно на такие данные, нетрудно сделать вывод, что в Android-системах запросто можно изменить не только способ загрузки, но и загружаемую ОС либо в ручном, либо в автоматическом режиме. Однако мало кто знает, что сам этот инструмент загружает исключительно ту систему, которая написана под определенную модель смартфона или планшета.

Bootloader: как разблокировать и зачем это нужно?

Что же касается возможностей, которые предполагает разблокирование загрузчика, дело тут только восстановлением данных не ограничивается.

Считается, что в таком случае пользователь получает доступ к ядру системы, который по умолчанию невозможен. Как в такой ситуации описать Bootloader? Что это, станет понятно, если взглянуть на отсутствие так называемых прав суперюзера. Получается, что после снятия блокировки они вообще не нужны ни на каком уровне. А то ведь зачастую приходится устанавливать специальные прошивки и приложения. Если же мягко говоря, «корявая», то и вся система может слететь.

Любой производитель мобильной техники предусматривает работу с таким компонентом, как Bootloader. Как разблокировать его? Обычно это делается при помощи специальных утилит, устанавливаемых на ПК при соединении с мобильным девайсом через USB-интерфейс. Заметьте, права суперпользователя в данном случае не требуются.

Для большинства устройств, включая, например, гаджеты Sony и HTC, подразумевается использование утилиты Adb Run, причем для Sony придется дополнительно использовать специальные драйверы Sony Fastboot, да еще и обратиться к специальному разделу Unlocker на официальном сайте. Как видим, процедура хоть и выполнимая, но достаточно сложная.

Восстановление данных

С другой стороны, в своем стандартном режиме работы восстановление Bootloader после сброса настроек до заводских позволяет совершить просто элементарно. Для этого не потребуется даже hard reset.

Достаточно просто скинуть настройки на самом гаджете, а после перезагрузки система предложит выбрать вариант: либо использовать на устройстве новые настройки, либо восстановить параметры, программы и файлы, применяя для этого учетную запись сервисов Google. При этом придется ввести адрес почты Gmail с паролем, а также подключиться к сети Интернет, например, при имеющемся активном Wi-Fi-соединении.

Установка другой «операционки»

Если говорить о возможности инсталляции другой ОС, этот вопрос достаточно сложен, хотя и решаем. Дело в том, что некоторые производители утверждают, мол, что после «Андроида» на гаджет другая система не станет. Чистой воды рекламный ход, призванный разрекламировать инсталлированную систему.

А ведь китайцы на своих «левых» аппаратах HTC уже доказали, что на одном девайсе совершенно элементарно уживаются и Android, и Windows Phone. При этом такие модели поставляются в большинстве случаев с уже разблокированным загрузчиком Bootloader. Что это в данном случае? Это средство, позволяющее не только выбирать загружаемую ОС, но и устанавливать любую другую с изменением параметров на системном уровне.

Иными словами, пользователь может обойтись даже без каких бы то ни было прошивок или дополнительных программ для оптимизации работы установленной «операционки». Более того! Для этого не потребуются даже специализированные утилиты вроде оптимизаторов, которых сегодня развелось столько, что пользователь сам не понимает, что же выбрать из всего этого огромного количества программ и приложений.

На что стоит обратить внимание отдельно?

Но вот когда дело касается кастомных прошивок, которые стали достаточно популярными у множества владельцев мобильных девайсов, с ними нужно быть очень осторожными. Конечно, толковая прошивка или обновление ОС вреда не принесет, скорее наоборот, только улучшит работу устройства, но когда инсталлируется что-то неофициальное, да еще не прошедшее проверку (вроде компьютерных бета-версий), жди беды. Тогда уж точно никакой загрузчик не поможет.

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

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

Напоследок остается добавить, что вопрос установки другой ОС на Android-девайс - тоже, в общем-то, достаточно спорный. Да, конечно, система встанет, что бы там производитель ни заявлял. Но вот как она будет работать - это уже другой вопрос, тем более что большинство юзеров обычно ставят какие-то облегченные версии, имеющие неизвестный источник происхождения. А зря. Тут, как говорится, таких дров наломать можно, что потом греха не оберешься. Да и сам производитель при таких изменениях по действующим международным нормам никакой ответственности за корректную работу мобильного девайса не несет. Поэтому решение о целесообразности и должен принимать сам обладатель гаджета. Но лучше с такими вещами не шутить.

Приветствую всех на нашем сайте и сегодня мы после небольшого перерыва вернемся к теме микроконтроллеров. А если быть совсем точным, то мы начинаем обсуждать одну очень интересную и важную тему, а именно использование bootloader’а (загрузчика) при программировании контроллеров. Сегодня мы разберем теоретическую часть – зачем нужен, как он работает и что это вообще такое. Следующая статья будет посвящена целиком и полностью практике. Забегая вперед скажу, что мы напишем свой для любимых микроконтроллеров STM32 😉

Итак, простыми словами, – это специальная программа, которая располагается в памяти микроконтроллера и может самостоятельно перепрограммировать его. Давайте для лучшего понимания процесса посмотрим как вообще выполняется программа, прошитая в микроконтроллер, и где она располагается.

Как вы помните из статьи, посвященной Flash-памяти микроконтроллеров STM32 , основная пользовательская программа начинается с первой страницы памяти, а точнее с адреса 0х08000000 . То есть при подаче питания контроллер сразу же убегает по этому адресу)

При использовании загрузчика все выглядит несколько иначе. Основная программа записывается уже по другим адресам и располагается начиная, например, с адреса 0х0800A000 . А область памяти (0х08000000 0х0800А000 ) целиком и полностью отдается bootloader’у . В итоге в flash-памяти контроллера у нас как бы находятся две полноценные программы. При включении устройства управление получает (поскольку он находится в области, начинающейся со “стартового” адреса 0х08000000 ), а при дальнейшей работе , выполнив все свои задачи передает управление нашей основной программе, которая располагается по адресу 0х0800А000 (этот адрес мы взяли для примера). Вот небольшая схемка для демонстрации работы загрузчика:

Вроде бы понятно как устроено, но возникает вопрос – зачем все это надо?

Давайте разбираться…

Первостепенной задачей bootloader’а является программирование микроконтроллера. Он не просто выполняет какие-то действия, а затем передает управление основной программе (переходит на адрес, который соответствует началу основной программы), он, в первую очередь, самостоятельно записывает эту основную программу в flash-память по нужным адресам.

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

Небольшое отступление от основной темы… Поясню, что я тут имею ввиду под “файлом программы”.

Когда мы создаем проект (Keil, IAR – без разницы), то на выходе (после сборки проекта) мы получаем скомпилированный файл для прошивки в микроконтроллер. Чаще всего мы использовали .hex файл программы. Так вот именно этот файл нам и нужен в данном случае. Но именно hex-файл не совсем подходит для наших целей, поскольку помимо кода нашей программы он несет в себе дополнительную служебную информацию. Чтобы ее не обрабатывать и не вытаскивать из hex-файла нужный нам код, который bootloader должен записать во flash, мы в настройках компилятора во вкладке Output попросим его генерировать нам вместо hex-файла bin-файл . Бинарник, в отличие от hex , содержит в себе только последовательный код программы и ничего больше. То есть bootloader’у остается только читать байты из bin-файла и записывать их во flash-память. То есть в нашем примере задачей загрузчика является чтение байт из файла на карте памяти и запись их по адресам, начиная с 0х0800A000 . Вот псевдокод для наглядности:

Конечно, это сильно упрощенная версия загрузчика 😉 Тут мы в вечном цикле пытаемся открыть файл с программой, как только это нам удается (пользователь записал на карту долгожданный файл) программирует flash-память и перескакивает на адрес записанной им же программы. После этого контроллер начинает выполнять пользовательскую программу. Еще раз повторюсь, это всего лишь псевдокод для примера, нормальный, работающий мы обязательно напишем в следующей статье)

Все это, конечно, очень интересно, но по-прежнему, непонятно, зачем нужны все эти сложности….

С этим на самом деле все просто – вот, например, первая ситуация – есть огромное количество устройств, на заводе работники прошили в каждый контроллер (например, при помощи ST-Link) на каждой плате , который при подключении к плате флэшки (в заранее предусмотренный разъем) ищет на ней файл прошивки и выполняет программирование. Основную программу, конечно же, тоже можно прошить вместе с bootloader’ом через ST-Link. Но тонкость тут в том, что проект bootloader’а остается всегда неизменным и перепрошивать его не надо, а вот версия основной программы может обновляться кучу раз в процессе тестирования устройств. И тут уже гораздо проще один раз подключить ST-Link и прошить загрузчик, а впоследствии просто скидывать новую версию основной программы на флэшку и втыкать ее в готовое устройство, где перепрошивкой займется , чем по сто раз бегать от одной платы к другой, втыкать ST-Link, при этом перенося с собой ноутбук с ST-Link Utility… Как видите, польза загрузчика очевидна 😉

Вторая ситуация еще лучше это демонстрирует. Устройство уже выпущено и куча экземпляров распродана пользователям. Как бы хороша не была финальная версия программы никто не застрахован от неожиданного появления ошибок в процессе эксплуатации. И тут уже человек, купивший устройство, точно не сможет разобрать его и подпаяться, чтобы выполнить перепрошивку через программатор. То есть программу обновить просто нереально. Совсем другое дело, если изготовители предусмотрели встроенный bootloader. Пользователь может без проблем скинуть на карту памяти или на флэшку скачанный бинарник и подключить карту/флэшку к устройству. Изготовителю остается только выкладывать новые версии прошивок на своем сайте =) В этом на самом деле кроется куча возможностей – изготовитель устройств может спокойно выпустить девайс на рынок с базовой прошивкой, которая реализует все нужные функции, но не содержит всяких приятных графических вещей или возможности подключения к ПК (зависит от того, что это за устройство). Производителю не нужно ломать голову над тем, чтобы выпустить с первого раза идеальную прошивку, в которой будет реализовано абсолютно все, что только можно, ведь он знает что встроенный без проблем поможет пользователю в будущем обновить программу.

В общем, о пользе и применениях загрузчика можно говорить очень и очень долго…;) Помимо упомянутых возможностей обновления прошивки при помощи флэшки или карты памяти, может использовать какой-нибудь из интерфейсов передачи данных, например SPI, I2C или USART.

В общем-то, вроде бы мы разобрались с теоретической частью, посвященной использованию bootloader’а , но давайте еще один момент обсудим в этой статье – а именно аппаратный загрузчик микроконтроллеров STM32.

У STM32 уже есть , который инженеры ST поместили в специально отведенную область памяти микроконтроллера (System Memory ). Удалить его оттуда нельзя, да и незачем =) Для того, чтобы ввести контроллер в режим загрузчика необходимо подать определенные сигналы на ножки BOOT0 и BOOT1. После этого микроконтроллер готов принимать по USART новую прошивку. Для этого необходимо подключить плату к ПК, скачать специальную софтинку от ST – Flash Loader Demonstrator и загрузить в нее свой файл прошивки.

Я, честно говоря, аппаратным загрузчиком предпочитаю не пользоваться по нескольким причинам. Во-первых, прошивка никак не шифруется, что для коммерческих устройств зачастую недопустимо. Если я использую свой собственный , то я могу сделать с bin-файлом все, что угодно, например, поменять определенные байты местами. Если такой файл попадет в руки конкурентов, то это ничего не даст, поскольку только мой знает как расшифровать бинарник. При использовании аппаратного botloader’а такое невозможно – Flash Loader Demonstrator принимает bin-файл в исходном виде, то есть все байты в нем не зашифрованы. Во-вторых, пользователю будет необходимо подключать свою плату к ПК и скачивать дополнительный софт для перепрошивки устройства, и это не очень хорошо. Чем проще устройство в использовании, тем лучше 😉 Но есть и плюсы аппаратного bootloader’а – он не занимает flash-память. При использовании своего загрузчика нужно иметь ввиду, что и загрузчик и основная программа должны поместиться в flash-памяти. С аппаратным bootloader’ом такой проблемы нет – он расположен в специальной области памяти, использовать которую программист не может.

Давайте на этом на сегодня и закончим, не пропустите статью, посвященную практической реализации загрузчика!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: