Загрузчик bootloader

Что такое загрузчик (bootloader) на Xiaomi и какие плюшки он даёт

Загрузчик bootloader

Если говорить простым языком, то загрузчик (bootloader) на Xiaomi – это так называемая программа, которая запускается при включении смартфона. Именно с неё и начинается загрузка самой операционной системы или перевод телефона в режим восстановления.

То есть загрузчик запускается сразу после нажатия по кнопке включения, ещё до загрузки самой операционной системы. После этого начинают происходить сложные процессы, в результате которых загрузчик (bootloader) понимает, какую операцию необходимо выполнить.

Например, загрузить систему или перейти в меню восстановления.

Большинство производителей блокируют доступ к загрузчику, запрещая пользователям устанавливать сторонние системы и прошивки. Но его практически всегда можно разблокировать, отправив запрос через настройки телефона. Процедура разблокировки занимает немного времени, от 360 до 720 часов.О том, как это сделать читайте в статье Как разблокировать загрузчик на любом Xiaomi в 2020 году

А кому нужен этот загрузчик? Что он дает? Я расскажу о минимум 3 причинах разблокировки бутлоадера. Советую внимательно изучить каждый пункт, чтобы после не возникло дополнительных вопросов.

Китайская версия телефона

При покупке телефонов на таких сайтах как AliExpress или Gearbest можно найти очень выгодные цены, которые могут отличаться от местных на 50-100 долларов.

Именно поэтому многие пользователи покупают телефоны с низкой ценой. Продавцы в свою очередь могут продать китайскую версию под видом глобальной.

Китайская версия смартфона Xiaomi всегда дешевле и на ней может быть установлена MIUI China, или MIUI Global.

  • MIUI China: на телефоне только английский и китайский языки (+ могут быть еще несколько других), нет русского, украинского и прочих. Такое устройство обычно приходит с заблокированным загрузчиком, в запечатанной коробке.
  • MIUI Global: смартфон прошит на глобальную прошивку, однако сам он китайской версии. При попытке обновления можно получить «кирпич». Также в подобных случаях продавцу могут прошивать китайские аппараты в обход разблокировки загрузчика, чтобы продать их под видом «глобальных» намного дороже.

Сторонняя прошивка

Первый и основной плюс – это возможность установки кастомных (неофициальных) и локализованных (официальных, но с доработками специально под ваш регион) MIUI прошивок. Что дает кастомная прошивка:

  • Более богатый функционал и расширенные опции, позволяющие контролировать всю работу смартфона;
  • Простой интерфейс с урезанным или улучшенным функционалом.
  • Продвинутый и чувствительный GPS-навигатор. Местоположение определяется в несколько раз быстрее, чем на стандартной версии.
  • Отлично оптимизированное ядро операционной системы, которое или повышает производительность телефона, или увеличивает время автономной работы.
  • Порты различных сборок от «ромоделов», начиная от Pixel Experience и заканчивая прошивками от других оболочек (OneUI, EMUI, Flyme и тд).

Стороннее Recovery

Разблокировав загрузчик, можно без труда устанавливать TWRP или CWM-рекавери, необходимое не только для получения рут-прав, но и для других важных операций на вашем смартфоне. Рассмотрим подробнее:

  • Доступ к установке новой прошивки;
  • Возможность установки Magisk.
  • Быстрое и простое создание резервных копий.
  • Получение рут-прав.
  • Установка Google Camera.
  • И многое другое.

Root-права

Имея разблокированный загрузчик, вы можете получить статус Суперпользователя. Почти во всех актуальных сборках используется Magisk, так как SuperSu уже давно не поддерживается и новые версии не выходят. Польза рут-прав огромна, начиная от удаления встроенной рекламы и заканчивая разгоном процессора.

Разблокировка бутлоадера – это неотъемлемая часть Пути Истинного СуперПользователя, т.к. без него невозможно установить кастомное Recovery и получить root права

Как узнать разблокирован ли загрузчик на Xiaomi или нет?

Есть как минимум 3 способа проверить разблокирован загрузчик или нет на смартфонах Xiaomi или Redmi.

Рекомендую делать проверку минимум 2 методами, так как до сих пор встречаются модели (купленные за «очень дешево» или б/у) которые были прошиты либо взломаны в обход разблокировки загрузчика.

В таком случае, первый способ может показать строку что загрузчик разблокирован, но при проверке через ADB — все будет иначе (правду покажет только ПК).

1 СПОСОБ: через меню в телефоне

Самый простой способ, встроенный в ваше устройство и не требующий дополнительных программ. Чтобы посмотреть, разблокирован ли у вас загрузчик, достаточно просто стать разработчиком! Нет, не буквально. Все, что нам нужно – это открыть меню настроек разработчика. Те, кто знает, как это сделать – листайте вниз до слов “Режим разработчика активирован”, остальные – повторяем за мной:

  1. Заходим в настройки -> пункт “О телефоне”
  2. Находим пункт “Версия MIUI”
  3. Тапаем на него до тех пор, пока не появится надпись “Вы стали разработчиком!”
  4. Возвращаемся назад, ищем пункт “Расширенные настройки”
  5. В расширенных настройках появился новый пункт “Для разработчиков”, переходим
  6. Активируем “Режим разработчика”

Поздравляю! У нас открылись новые возможности. Неопытным пользователям в раздел “Для разработчиков” свой нос лучше не совать, но сейчас нам надо проверить статус нашего загрузчика.

Как открыть настройки для разработчиковКак открыть настройки для разработчиковКак открыть настройки для разработчиковКак открыть настройки для разработчиковКак открыть настройки для разработчиковКак открыть настройки для разработчиков

Как вы могли заметить, у меня стоит MIUI 12. Если у Вас версия ниже 12, не переживайте, все вышесказанные действия можно проделать на любой версии MIUI и Android, но если Вы хотите MIUI 12, можете написать этому парню, в любое время он Вам поможет

Источник: https://zen.yandex.ru/media/id/5e84e201dc7a763a3ee9dc42/chto-takoe-zagruzchik-bootloader-na-xiaomi-i-kakie-pliushki-on-daet-5f2fc5147dc86f5efd45b927

Микроконтроллер и Bootloader. Описание и принцип работы

Загрузчик bootloader

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

А если быть совсем точным, то мы начинаем обсуждать одну очень интересную и важную тему, а именно использование bootloader (загрузчика) при программировании контроллеров.

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

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

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

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

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

Вот небольшая схемка для демонстрации работы загрузчика:

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

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

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

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

Когда мы создаем проект (Keil, IAR – без разницы), то на выходе (после сборки проекта) мы получаем скомпилированный файл для прошивки в микроконтроллер. Чаще всего мы использовали .hex файл программы. Так вот именно этот файл нам и нужен в данном случае.

Но именно hex-файл не совсем подходит для наших целей, поскольку помимо кода нашей программы он несет в себе дополнительную служебную информацию. Чтобы ее не обрабатывать и не вытаскивать из hex-файла нужный нам код, который bootloader должен записать во flash, мы в настройках компилятора во вкладке Output попросим его генерировать нам вместо hex-файла bin-файл.

Бинарник, в отличие от hex, содержит в себе только последовательный код программы и ничего больше. То есть bootloader’у остается только читать байты из bin-файла и записывать их во flash-память. То есть в нашем примере задачей загрузчика является чтение байт из файла на карте памяти и запись их по адресам, начиная с 0х0800A000. Вот псевдокод для наглядности:

void main(){ // Инициализируем интерфейс SDIO для общения с картой памяти SDIO_Init(); while(1) { // Ищем файл прошивки if (f_open(файл.bin) == FR_OK) { ProgramFlash(); JumpToMainProgram(); } }}

Конечно, это сильно упрощенная версия загрузчика.

Тут мы в вечном цикле пытаемся открыть файл с программой, а как только это нам удается (пользователь записал на карту долгожданный файл) bootloader программирует flash-память и перескакивает на адрес записанной им же программы.

После этого контроллер начинает выполнять пользовательскую программу. Еще раз повторюсь, это всего лишь псевдокод для примера, полноценный bootloader для STM32 мы обязательно напишем в следующей статье!

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

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

И тут уже гораздо проще один раз подключить ST-Link и прошить загрузчик, а впоследствии просто скидывать новую версию основной программы на флешку и втыкать ее в готовое устройство, где перепрошивкой займется bootloader, чем по сто раз бегать от одной платы к другой, втыкать ST-Link, при этом перенося с собой ноутбук с ST-Link Utility

Источник: https://microtechnics.ru/mikrokontroller-i-bootloader-opisanie-i-princip-raboty/

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.