Что такое Bootloader на Android. Далеко не каждый обладатель мобильного девайса в виде смартфона или планшета, работающего под управлением «операцонки» серии Android, знает о том, что в любой версии ОС имеется такая штука, как Bootloader. Что это такое, сейчас и будет рассмотрено. Исходя из понимания самой сути вопроса, можно будет узнать, какие операции можно производить при его разблокировании.
Содержание:
С другой стороны, в своем стандартном режиме работы восстановление Bootloader после сброса настроек до заводских позволяет совершить просто элементарно. Для этого не потребуется даже hard reset.
Достаточно просто скинуть настройки на самом гаджете, а после перезагрузки система предложит выбрать вариант: либо использовать на устройстве новые настройки, либо восстановить параметры, программы и файлы, применяя для этого учетную запись сервисов Google. При этом придется ввести адрес почты Gmail с паролем, а также подключиться к сети Интернет, например, при имеющемся активном Wi-Fi-соединении.
Если говорить о возможности инсталляции другой ОС, этот вопрос достаточно сложен, хотя и решаем. Дело в том, что некоторые производители утверждают, мол, что после «Андроида» на гаджет другая система не станет. Чистой воды рекламный ход, призванный разрекламировать инсталлированную систему.
А ведь китайцы на своих «левых» аппаратах HTC уже доказали, что на одном девайсе совершенно элементарно уживаются и Android, и Windows Phone. При этом такие модели поставляются в большинстве случаев с уже разблокированным загрузчиком Bootloader. Что это в данном случае? Это средство, позволяющее не только выбирать загружаемую ОС, но и устанавливать любую другую с изменением параметров на системном уровне.
Иными словами, пользователь может обойтись даже без каких бы то ни было прошивок или дополнительных программ для оптимизации работы установленной «операционки». Более того! Для этого не потребуются даже специализированные утилиты вроде оптимизаторов, которых сегодня развелось столько, что пользователь сам не понимает, что же выбрать из всего этого огромного количества программ и приложений.
Но вот когда дело касается кастомных прошивок, которые стали достаточно популярными у множества владельцев мобильных девайсов, с ними нужно быть очень осторожными. Конечно, толковая прошивка или обновление ОС вреда не принесет, скорее наоборот, только улучшит работу устройства, но когда инсталлируется что-то неофициальное, да еще не прошедшее проверку (вроде компьютерных бета-версий), жди беды. Тогда уж точно никакой загрузчик не поможет.
Кстати сказать, немногие соображают, что такие версии способны оказывать слишком сильную нагрузку на «железные» компоненты, что, в свою очередь, может привести к их полной неработоспособности. А ведь поменять процессор в том же смартфоне – дело далеко не самое простое.
Ко всему прочему разблокировка загрузчика в официально выпущенных фирменных гаджетах подразумевает автоматическую потерю гарантии и возможности бесплатного сервисного обслуживания. Так что придется сто раз подумать, перед тем как производить такие действия и операции.
Напоследок остается добавить, что вопрос установки другой ОС на Android-девайс – тоже, в общем-то, достаточно спорный. Да, конечно, система встанет, что бы там производитель ни заявлял. Но вот как она будет работать – это уже другой вопрос, тем более что большинство юзеров обычно ставят какие-то облегченные версии, имеющие неизвестный источник происхождения. А зря. Тут, как говорится, таких дров наломать можно, что потом греха не оберешься. Да и сам производитель при таких изменениях по действующим международным нормам никакой ответственности за корректную работу мобильного девайса не несет. Поэтому решение о целесообразности и должен принимать сам обладатель гаджета. Но лучше с такими вещами не шутить.
ИНСТРУКЦИЯ — Как разблокировать Bootloader на Android
После включения смартфона активируется специальный загрузчик Bootloader — он запускает ядро операционной системы Android и важное программное обеспечение, которое обеспечивает стабильную работу гаджета. В устройствах на Android есть специальная функция «Reboot to bootloader». Она дает возможность пользователям перейти в промежуточной этап между запуском системы и загрузчик. По принципу действия функция похожа на BIOS, который есть на любом компьютере.
Содержание
- Как войти в режим «Reboot to bootloader» на телефоне?
- Зачем нужна функция «Reboot to bootloader»?
- Риски использования функции «Reboot to bootloader»
- Как разблокировать Bootloader
- Как узнать, разблокирован ли загрузчик bootloader?
- Способ первый – самый простой
- Способ второй – через режим fastboot
- Способ третий – через меню разработчиков
- Как разблокировать bootloader
- Этап 1: средства разработчика и драйвер для гаджета
- Этап 2: включение USB отладки
- Этап 3: ключ для разблокировки Hboot
- Этап 4: заключительная разблокировка
Как войти в режим «Reboot to bootloader» на телефоне?
Чтобы перейти в режим «Reboot to bootloader» на телефоне, во время запуска гаджета нужно зажать кнопку включения и клавишу уменьшения громкости. На устройствах от Samsung алгоритм немного отличается: вместо клавиши громкости нужно удерживать кнопку «Домой».
Если войти в меню не получается, а при использовании описанного алгоритма не происходит никаких действий, значит функция «Reboot to bootloader» заблокирована на аппаратном уровне.
Зачем нужна функция «Reboot to bootloader»?
Управление функциями «Reboot to bootloader» и переключение между доступными инструментами выполняется через клавиши громкости. Перемещаться по меню можно в двух направлениях: вверх и вниз. В разделе можно посмотреть детальную информацию о телефоне, а также выполнить тестирование операционной системы. Среди доступных функций есть:
- Разблокировка загрузчика для получения Root-прав на смартфон.
- Установка сторонней программы на гаджет — для этого не потребуется пользоваться официальным магазином приложений Google Play.
- Инструмент для отладки приложений и удаления программ, которые нельзя удалить стандартными средствами операционной системы (так называемый «вшитый» софт от производителя).
- Очистка кэша смартфона (есть и более простые методы) от скопления «мусорных» файлов, которые снижают производительность смартфона.
- Сброс смартфона к заводским настройкам (также есть способ полегче). При выполнении этого действия нужно помнить, что все данные и настройки телефона будут удалены.
Риски использования функции «Reboot to bootloader»
При использовании системного раздела Reboot to bootloader важно помнить о возможных рисках, прежде чем вносить какие-либо изменения в систему. После выполнения операций в операционной системе могут появиться ошибки, которые повлияют на стабильную работу устройства. Например, с гаджета могут удалиться важные файлы, из-за которых он перестанет включаться.
Есть риск повреждения важных данных, например, контактов или фотографий. После этого будет сложно восстановить доступ к информации. Перед тем, как пользоваться функцией «Reboot to bootloader», нужно сделать резервные копии основных файлов и персональных данных.
Еще важно не путать разные «виды ребутов» на Android. Вот подробная статья.
Приветствую всех на нашем сайте и сегодня мы после небольшого перерыва вернемся к теме микроконтроллеров. А если быть совсем точным, то мы начинаем обсуждать одну очень интересную и важную тему, а именно использование 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 мы обязательно напишем в следующей статье )
Все это, конечно, очень интересно, но по-прежнему, непонятно, зачем нужны все эти сложности….
С этим на самом деле все просто – вот, например, первая ситуация – есть огромное количество устройств, на заводе работники прошили в каждый контроллер (например, при помощи ST-Link) на каждой плате bootloader, который при подключении к плате флэшки (в заранее предусмотренный разъем) ищет на ней файл прошивки и выполняет программирование. Основную программу, конечно же, тоже можно прошить вместе с bootloader’ом через ST-Link. Но тонкость тут в том, что проект bootloader’а остается всегда неизменным и перепрошивать его не надо, а вот версия основной программы может обновляться кучу раз в процессе тестирования устройств. И тут уже гораздо проще один раз подключить ST-Link и прошить загрузчик, а впоследствии просто скидывать новую версию основной программы на флэшку и втыкать ее в готовое устройство, где перепрошивкой займется bootloader, чем по сто раз бегать от одной платы к другой, втыкать ST-Link, при этом перенося с собой ноутбук с ST-Link Utility… Как видите, польза загрузчика очевидна 😉
Вторая ситуация еще лучше это демонстрирует. Устройство уже выпущено и куча экземпляров распродана пользователям. Как бы хороша не была финальная версия программы никто не застрахован от неожиданного появления ошибок в процессе эксплуатации. И тут уже человек, купивший устройство, точно не сможет разобрать его и подпаяться, чтобы выполнить перепрошивку через программатор. То есть программу обновить просто нереально. Совсем другое дело, если изготовители предусмотрели встроенный bootloader. Пользователь может без проблем скинуть на карту памяти или на флэшку скачанный бинарник и подключить карту/флэшку к устройству. Изготовителю остается только выкладывать новые версии прошивок на своем сайте =) В этом на самом деле кроется куча возможностей – изготовитель устройств может спокойно выпустить девайс на рынок с базовой прошивкой, которая реализует все нужные функции, но не содержит всяких приятных графических вещей или возможности подключения к ПК (зависит от того, что это за устройство). Производителю не нужно ломать голову над тем, чтобы выпустить с первого раза идеальную прошивку, в которой будет реализовано абсолютно все, что только можно, ведь он знает что встроенный bootloader без проблем поможет пользователю в будущем обновить программу.
В общем, о пользе и применениях загрузчика можно говорить очень и очень долго…;) Помимо упомянутых возможностей обновления прошивки при помощи флэшки или карты памяти, bootloader может использовать какой-нибудь из интерфейсов передачи данных, например SPI, I2C или USART.
В общем-то, вроде бы мы разобрались с теоретической частью, посвященной использованию bootloader’а, но давайте еще один момент обсудим в этой статье – а именно аппаратный загрузчик микроконтроллеров STM32.
У STM32 уже есть bootloader, который инженеры ST поместили в специально отведенную область памяти микроконтроллера (System Memory). Удалить его оттуда нельзя, да и незачем =) Для того, чтобы ввести контроллер в режим загрузчика необходимо подать определенные сигналы на ножки BOOT0 и BOOT1. После этого микроконтроллер готов принимать по USART новую прошивку. Для этого необходимо подключить плату к ПК, скачать специальную софтинку от ST – Flash Loader Demonstrator и загрузить в нее свой файл прошивки.
Я, честно говоря, аппаратным загрузчиком предпочитаю не пользоваться по нескольким причинам. Во-первых, прошивка никак не шифруется, что для коммерческих устройств зачастую недопустимо. Если я использую свой собственный bootloader, то я могу сделать с bin-файлом все, что угодно, например, поменять определенные байты местами. Если такой файл попадет в руки конкурентов, то это ничего не даст, поскольку только мой bootloader знает как расшифровать бинарник. При использовании аппаратного botloader’а такое невозможно – Flash Loader Demonstrator принимает bin-файл в исходном виде, то есть все байты в нем не зашифрованы. Во-вторых, пользователю будет необходимо подключать свою плату к ПК и скачивать дополнительный софт для перепрошивки устройства, и это не очень хорошо. Чем проще устройство в использовании, тем лучше 😉 Но есть и плюсы аппаратного bootloader’а – он не занимает flash-память. При использовании своего загрузчика нужно иметь ввиду, что и загрузчик и основная программа должны поместиться в flash-памяти. С аппаратным bootloader’ом такой проблемы нет – он расположен в специальной области памяти, использовать которую программист не может.
Давайте на этом на сегодня и закончим, не пропустите статью, посвященную практической реализации загрузчика!
19.01.2017
Начнем с начала. Bootloader, или загрузчик, это программа, которая запускается каждый раз, как только вы включаете смартфон. Она отвечает за запуск нужной операционной системы. Другими словами, Bootloader запускается еще до того, как будет загружена операционная система . Именно эта программа позволяет запустить Android или активировать режим восстановления, к примеру.
Производители блокируют доступ к загрузчику на своих устройствах. Таким образом они запрещают пользователям запускать какую-либо другую операционную систему на устройстве, кроме предусмотренной производителем. Желающие установить кастомную прошивку прибегают к разблокировке загрузчика, хотя есть производители, которые выпускают устройства с разблокированным загрузчиком.
Bootloader устанавливается производителем смартфонов. В случае, если он заблокирован, он позволит запустить только авторизованную версию операционной системы с соответствующей электронной подписью. Способы обхода этой проверки разнятся в зависимости от производителя смартфона и, как правило, требуют root-доступ.
Стоит отметить, что неосторожные действия пользователей порой приводят к повреждению программы-загрузчика. Это одна из причин, по которой не стоит отсоединять кабель от смартфона во время прошивки или выключать электричество. Восстановление Bootloader – это очень непростая процедура, которая не имеет ничего общего с восстановлением прошивки смартфона или обновлением версии Android.
Как разблокировать Bootloader
Программа, контролирующая ядро операционной системы вашего устройства, называется загрузчик, он же bootloader или Hboot. Она является фаерволлом для установки программ и прошивок. При этом не важно, какое устройство имеется в виду: компьютер, ноутбук или смартфон на Android.
Будет полезнымЗагрузчик активируется первым при включении устройства. Именно в нем содержится пусковой механизм для загрузки операционной системы. Благодаря этому основополагающему компоненту можно войти в режим recovery системы в случае наличия каких-то ошибок, а также произвести сброс настроек до заводских. Статус загрузчика бывает заблокированным и разблокированным.
Как узнать, разблокирован ли загрузчик bootloader?
Практически все смартфоны выпускаются с заблокированным загрузчиком в целях безопасности. Однако для установки кастомного ПО или перепрошивки устройство необходимо разблокировать. При разблокированном загрузчике многие компании-производители автоматически снимают ваш девайс с гарантийного обслуживания, поэтому за любые попытки разблокировки вы несете ответственность сами. Состояние загрузчика можно проверить тремя способами.
Способ первый – самый простой
После перезагрузки устройства необходимо:
- Открыть окошко набора номера.
- Ввести следующий код *#*#7378423#*#* и нажать вызов.
- В открывшемся окошке пройти в раздел Service Info, далее Configuration и проверить статус бутлоадера: «Bootloader unlock allowed – Yes» — статус «заблокирован», «Bootloader Unlocked – Yes» — статус «разблокирован».
В случае, если окошко не открывается после ввода кода, воспользуйтесь следующим способом проверки.
Способ второй – через режим fastboot
Как узнать разблокирован ли загрузчик bootloader через режим фастбут? Прежде, чем включить девайс в этом режиме, необходимо предварительно установить некоторые дополнительные компоненты.
- Скачайте и установите драйвера вашего Андроида на ПК (это можно сделать с официального сайта производителя). Также загрузите adb и fastboot архив, соответствующий вашему устройству. Не забудьте перезагрузить компьютер.
- После подготовительного этапа включаем режим «fastboot». Для этого выключите устройство полностью, и при повторном включении удерживайте кнопку питания с нажатой качелькой громкости «вниз» до тех пор, пока смартфон не загрузится в нужном режиме fastboot.
- Подключите девайс к компьютеру. Откройте папку с загруженными дополнительными компонентами и кликните правую клавишу мышки с нажатой кнопкой Shift. Из списка выберите «Открыть окно команд».
- Чтобы удостовериться, правильно ли подключено устройство, введите команду «fastboot devices» и нажмите Enter. В случае, если ваше устройство не отображается, проверьте кабель и повторите алгоритм.
- Если устройство отображается корректно, введите команду для проверки статуса загрузчика «fastboot oem device-info».
При заблокированном загрузчике появится строка «bootloader device unlocked: false».
Способ третий – через меню разработчиков
Загрузка …
Находим в настройках устройства раздел «О телефоне» и кликаем по строке «Версия устройства» до тех пор, пока не увидим оповещение «Вы стали разработчиком». Варианты названия нужной строки могут быть разные, в зависимости от модели девайса и производителя: «версия», «номер сборки», «серийный номер» и другие.
После всех манипуляций в настройках устройства откроется доступ к разделу «Для разработчиков». В нем можно зайти в пункт «Статус загрузчика» и проверить его состояние.
Будет полезнымУказанные методы могут работать не на всех устройствах. Компании-производители постоянно изощряются, чтобы отличаться от своих конкурентов, поэтому у каждой модели нередко свой уникальный алгоритм проверки.
Как разблокировать bootloader
Разблокировка возможна двумя способами:
- официальным – для телефонов, производители которых предоставляют эту возможность пользователям;
- неофициальным (с помощью сторонних программ) — в случае, если не подходит первый вариант.
- Синхронизировать все ваши данные с устройства с облачным хранилищем данных. Вся информация исчезнет с устройства в процессе выполнения манипуляций.
- Полностью зарядить аккумулятор устройства.
Гарантийное обслуживание прекратится после разблокировки, и все риски вы берете на себя.
Этап 1: средства разработчика и драйвер для гаджета
Загрузите с официального сайта загрузки Android SDK http://developer.android.com/sdk/index.html zip архив, подходящий под вашу операционную систему, и распакуйте его. Выбирать нужный архив необходимо в футере страницы после слов «SDK Tools Only».
Далее запускаем SDK Manager и устанавливаем исключительно «Android SDK Platform-tools», а также устанавливаем USB драйвера для гаджета. Их можно найти на официальном сайте производителя. Подключите гаджет к компьютеру в режиме fastboot через родной USB кабель. Откройте папку с установленным SDK Android. Кликните правую клавишу мышки на пустой области с нажатой кнопкой Shift. Из списка возможностей выбираем «Открыть окно команд» и вводим команду «adb devices».
Обратите вниманиеПри правильном подключении и выполнении пунктов должен высветиться серийный номер подключенного гаджета. В противном случае просмотрите еще раз, как разблокировать bootloader, перепроверьте подключение и повторите процесс.
Этап 2: включение USB отладки
В режиме разработчика включаем ОЕМ разблокировку, если она есть, а также «Отладку по USB». При необходимости вводим запрашиваемый пароль или пин-код. После подключения гаджета к компьютеру на экране устройства появится вопрос «Включить отладку по USB?». Подтвердите действие отметкой «Всегда разрешать для этого компьютера».
Этап 3: ключ для разблокировки Hboot
Практически для всех телефонов необходим код или ключ для разблокировки бутлоадера (если вы, конечно, не обладатель Nexus). На официальных сайтах производителей можно найти описание, как разблокировать bootloader, и получить этот ключ, к примеру:
- LG https://developer.lge.com/resource/mobile/RetrieveBootloader.dev;
- Huawei https://emui.huawei.com/en/plugin.php?id=unlock&mod=detail;
- HTC http://www.htcdev.com/bootloader;
- Sony Xperia http://developer.sonymobile.com/unlockbootloader/unlock-yourboot-loader/.
Для получения ключа от HTC и LG необходимо предоставить Device ID. Получить его можно в «Окне команд» с помощью команд:
- для HTC — «fastboot oem get_identifier_token»;
- для LG — «fastboot oem device-id».
Длинный цифровой код в несколько строк – это тот самый Device ID. Используйте его для получения ключа разблокировки.
Этап 4: заключительная разблокировка
Ваше устройство подключено к компьютеру в режиме Fastboot и открыто «Окно команд». Исходя из вашей модели устройства, введите в командную строку нужное указание:
- для последних новых Nexus — «fastboot flashing unlock»;
- для более старых моделей Nexus — «fastboot oem unlock»;
- для LG — «fastboot flash unlock unlock.bin». Файл unlock.bin — это ключ для разблокировки, полученный после ввода Device ID;
- для HTC — «fastboot oem unlock код_разблокировки unlock_code.bin» . Ключ, полученный после ввода Device ID, – это и есть файл unlock_code.bin;
- команду для Sony Xperia вы получите после окончания всего процесса выбора модели прямо на официальном сайте.
Если при вводе необходимой команды на экране устройства потребуется подтверждение действия разблокировки, выберите «Да» путем нажатия кнопок громкости и питания. В заключении следует некий процесс ожидания: старые файлы будут форматироваться, а новые – инсталлироваться. Ваш загрузчик разблокирован.
Важно знатьВключение устройства после разблокировки бутлоадера может происходить достаточно долго, поэтому наберитесь терпения. Все сложности уже закончились, вам остается только дождаться полного завершения процесса.
Виталий Солодкий
- https://upgrade-android.ru/stati/stati/3242-chto-takoe-bootloader-na-android.html
- https://androidlime.ru/reboot-to-bootloader-android
- https://microtechnics.ru/mikrokontroller-i-bootloader-opisanie-i-princip-raboty/
- https://androidinsider.ru/polezno-znat/chto-takoe-bootloader-i-dlya-chego-on-sluzhit.html
- https://mobila.guru/faqsingle/kak-razblokirovat-bootloader/