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

bootloader unlock fastboot  e Новости

2. Выполнение заводской разблокировки

ПРИМЕЧАНИЕ. Приступив к работам над прошивкой планшета, первое, что надо сделать, так это разрешить режим отладки по USB.

Для этого, не выходя из меню

Для разработчиков

, установите переключатель, расположенный рядом с этой командой во включенное состояние. Сразу появится предупреждение:

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.3.Предупреждение о вкл. отладки по USB

При положительном ответе режим отладки будет включен:

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.4.Вкл. режима «Отладка по USB»

Теперь, если во время работ произойдет сбойная ситуация, например:

у Вас будет шанс восстановить его работоспособность, подключившись к нему с ПК, используя ADB.

Здесь же выполните команду Заводская разблокировка. Для чего установите переключатель, расположенный рядом с этой командой во включенное состояние. При этом появится предупреждение:

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.5.Запрос на вкл.завод.разблокировки

При положительном ответе режим разблокировки будет включен:

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.6.Вкл.режима «Заводская разблокировка».

Думаете все, загрузчик планшета разблокирован? Не-е-е-т, производитель только РАЗРЕШИЛ Вам использовать возможность снятия блокировки загрузчика, которая выполняется при помощи команд FASTBOOT в режиме FASTBOOT MODE. Если не знаете, что это за режим и как в него попасть, читайте.

3. Непосредственное снятие блокировки загрузчика

Со стороны системы безопасности ОС Android это выглядит так: снять блокировку можно только при помощи команд

FASTBOOT

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

Для снятия блокировки загрузчика необходимо выполнить следующие действия:

  1. установить на компьютер (ПК), который подключается к планшету, драйвера для работы через ADB.
  2. выполнить команду в режиме FASTBOOT MODE

Т.е. перегружаем планшет в режим

FASTBOOT MODE

, при этом на экране в списке параметров видна надпись

Bootloader locked

. Подключаем планшет через USB-кабель к ПК и в терминале ПК выполняем команду

	fastboot flashing unlock.


На планшете появится запрос на выполнение очистки раздела data.

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.7.Запрос на очистку раздела data.

Если Вы ответите Yes, то планшет выполнит очистку и снимет блокировку. Если ответите No, то ни очистки, ни снятия блокировки не произойдет.

После снятия блокировки загрузчика при входе в режим FASTBOOT MODE на экране в списке параметров надпись сменится на LOCK STATE — unlocked:

Микроконтроллер и Bootloader. Описание и принцип работы.
Рис.8.Загрузчик разблокирован

Для возврата блокировки нужно выполнить обратную команду

	fastboot flashing lock.

ВНИМАНИЕ. При восстановлении блокировки загрузчика срабатывает еще одно правило безопасности: чтобы никому не удалось прочитать Ваши данные или занести внутрь планшета «заразу» снова ПОЛНОСТЬЮ ОЧИЩАЕТСЯ раздел data, уничтожая все содержимое.

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

fb_unlock_YB.bat

следующего содержания:

Для проверки выполнения установки/снятия блокировки загрузчика в этом случае рядом с командным файлом будут созданы два служебных файла, содержащие параметры настроек загрузчика планшета:

Нас интересуют параметры

(bootloader) unlocked

(первая строка файла) и

(bootloader) device-state

(пятая строка файла). До выполнения операции первая строка имеет вид

(bootloader) unlocked: no

, а пятая —

(bootloader) device-state: locked

, т.к. загрузчик заблокирован. После выполнения —

(bootloader) unlocked: yes(bootloader) device-state: unlocked

соответственно, т.е. загрузчик планшета разблокирован.

Avr. учебный курс. использование bootloader’а | электроника для всех

Почти все микроконтроллеры серии Mega с памятью от 8КБ могут прошиваться через бутлоадер. Фишка удобная и применяется довольно часто, однако подробного мануала как работать с бутлоадером на AVR я в свое время не нашел и пришлось разбираться самостоятельно. С той поры мало что изменилось. Пора бы дать подробное описание как выбрать, скомпилировать, прошить и в дальнейшем использовать bootloader для AVR.

Ликбез
Что же это такое бут и с чем его едят. BootLoader это всего лишь небольшая программка которая сидит в специальной области памяти микроконтроллера и слушает какой-либо интерфейс. Обычно это UART, но бывает и SPI, USB и даже SoftUSB бутлоадеры.

При загрузке контроллера управление первым делом передается бутлоадеру и он проверяет есть ли условие для запуска. Условие может быть любым, но обычно это либо наличие спец байта по интерфейсу, либо наличие нужного логического уровня на выбранной ножке контроллера, сигнализирующее о том, что мы хотим обратиться к буту прошивку. Если условие есть — то бутлоадер может, например, принять прошивку по UART‘у и сам прошить ее во флеш. Или, наоборот, считать прошивку из флеша и выдать через UART, считать или записать EEPROM, подрыгать ножками. Да что угодно. Но обычно все же с помощью бута осуществляют прошивку микроконтроллера без применения спец программатора.

Если разрешающего условия при старте нет, то бут завершает свою работу и передает управление основной программе.


Зачем он нужен вообще?
В самом деле, зачем эти сложности? Зачем тратить и без того малое количество памяти на какую то вспомогательную утилиту? А порой иначе и нельзя! Вот, представь, стоит у тебя девайс где нибудь под землей на большой глубине. Или на высоченной башне куда лезть и лезть, или девайсов у тебя таких миллион? А связь у тебя с девайсом по UART какому нибудь или радиоканалу. И вот надо прошить девайс свежей версией прошивки. Выкапывать, лезть на башню или тыкать в каждый из девайсов шнур программатора… это же сдохнуть можно! А так дал девайсу общий сброс, приказал удаленно бутлоадеру всосать новую прошивку и вуаля!

Мало того, с помощью бута можно сильно облегчить обслуживание коммерческих устройств. Например, такая простая вещь как обновление прошивки, которую поддерживает масса девайсов вроде плееров или сотовых телефонов и которую делает обычный юзер. Выходит прошивка доступна и конкурентам? А вот фигу! Она шифрованая, а бутлоадер содержит ключ для ее дешифровки, дешифрует на лету и заливает во флеш. Красота, правда?

Недостатков у любого бутлоадера два — самый главный в том, что он отжирает часть флеша. Это неизбежное зло. Второй, не менее весомый, то что он стартует первый и если не позаботиться о грамотном алгоритме входа в бут, то девайс может сделать это самопроизвольно, записав в себя черт знает что. Такая беда была, ЕМНИП, со старыми GSM модулями SIM300DZ у которых часто ВНЕЗАПНО при неправильном выключении питания слетала прошивка. А просто модуль входил в бут режим и наведенные помехи на входах устраивали ему армагедец.

Откуда Bootloader берется в контроллере?
Многие современные МК уже изначально, с завода, идут с прошитым bootloader’ом. В AVR же ничего подобного нет, поэтому его надо прошить самостоятельно. Да, программатор потребуется. Обычный ISP, любой — Громова, STK200, Пять проводков, USBAsp да тысячи их. Им зашиваешь в память обычную прошивку, но содержащую бут. После чего программатор тебе уже не потребуется — дальше с контроллером можно общаться через загрузчик.

Bootloader в AVR
Что происходит при старте контроллера? В нормальном состоянии процессор начинает по одной выполнять инструкции из памяти программ, начиная с нулевого адреса. Вот так это примерно выглядит в ATmega16, в других все аналогично, только адреса другие.

Но если активировать Fuse бит BOOTRST то процессор будет стартовать не с нулевого адреса, а с адреса начала Boot сектора. Этот сектор расположен в самом конце памяти программ и его размер задается FUSE битами BOOTSZх.

Вот как, например, выглядит таблица соответствия битов BOOTSZх и размера загрузочной области для ATMega16:

Обрати внимание на то, что адрес задается в словах. Учитывая то, что одна команда в AVR занимает одно слово, то в самом скромном варианте бутлоадера нам надо уложиться в жалкие 128 команд, а в самом жирном в нашем распоряжении аж 1024 команды. Кроме всего прочего, у бутлоадера есть еще куча разных битов конфигурации разрешающие запись или чтение из памяти программ, организующие защиту от копирования и прочие фишечки. Я их описывать не буду — тут нужна отделная статья, да и они нужны в основном только если ты захочешь написать свой бутлоадер. Про них все написано в даташите, а если не шаришь в аглицком, то книга Евстифеева тебе будет хорошим подспорьем. Плюс есть куча примеров на этот счет.

Выбор bootloader’a
Мы же пока будем юзать готовый, благо их понаписано вагон и маленькая тележка. Но какой из них выбрать?
Для себя я обозначил ряд критериев исходя из которых выбирал подходящий бут. Итак, вот они:

  • Должен быть написан на Си (Бейсике, Паскале — нужное подчеркнуть). При всей моей любви к ассемблеру тут однозначно рулит Си. Дело в том, что удобно постоянно юзать один и тот же код, просто перекомпилируюя его под свой процессор. С ассемблером это довольно затруднительно, даже несмотря на единое ядро у AVR возникает куча различий на уровне периферии. Например, в ATmega8 регистр UART зовется как UDR, а в ATmega88 его обозвали уже UDR0 и обращаться к нему через команды IN/OUT уже нельзя — только через LDS/STS (т.к. из-за сильно разросшейся периферии его адресация вылезла за пределы досягаемости команды IN/OUT). Как результат — нативный ассемблерный код приходится править ручками. Хоть это и не сложно (обычно прокатывает автозамена), но не наш метод. Плюс ко всему, размер бутлоадера у нас меняется фиксироваными кусками. А поскольку, например, в самый маленький сегмент полнофункциональный бутак все равно не влезет, хоть ты заизвращайся с кодом, в более толстый же сегмент уже без напряга влезает Сишный код. Так что экономии особой тут не нароешь.
  • ; Должен поддерживаться родным софтом, в частности AVRProg’ом который идет в составе студии. Да, это немного громоздко, но зато не требует стороннего софта.
  • Должен позволять писать как во флеш, так и в EEProm
  • Должен быть не слишком жирным. Оптимально 512 слов. Меньше найдешь вряд ли, больше уже излишество.
  • Должен быть под WinAVR (т.к. я юзаю именно этот компилер)

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

И сейчас я покажу тебе как юзать эту замечательную программулину.

Итак, тебе нужна AVR Studio и WinAVR (она же AVR GCC). Если ничего этого ты еще не ставил, то сначала поставь студию, а потом сверху накати на нее WinAVR тогда они сцепятся друг с другом и будут работать в единой связке. WinAVR можно скачать с . Ставить лучше по дефолтному пути C:WinAVR — меньше потом будет косяков с путями в либах.

Потом тебе нужны сорцы загрузчика. Можешь взять у , но я рекомендую сдернуть все же у меня. У меня сразу же готовый проект для AVRStudio:

Скачать исходные коды и файлы проекта для Bootloader’a
Я там чуток подправил для себя поэтому буду описывать свою версию. Ну и еще я некоторые комменты перевел, чтобы легче было ориентироваться в коде.

Компиляция
Запускай студию и создавай новый проект (если откроешь мой проект, то этот шаг можно пропустить) — NewProject. В качестве компилятора выбирай AVR GCC. Если опция AVR GCC не доступна, значит у тебя криво встала WinAVR, попробуй переустановить. В графу «Project Name» пиши что хочешь, а вот «Initail File» впиши «main» и поставь обе галочки что выше этой строки «Create initial file» и «Create Folder«.

Следующим шагом выбирается микроконтроллер и отладочная платформа. В качетсве платформы выбери AVR Simulator и свою модель контроллера. Хотя, в принципе, это не так важно — всю работу сделает makefile. Но пусть будет.

Жмешь финиш и имеешь пустой проект. Сохраняешь его и закрываешь.

Теперь находишь папку этого проекта и перекидываешь туда все исходники и хидеры из архива бутлоадера, в том числе и папочку, что там тусуется, перезаписывая свой пустой файл main.c

Осталось вновь открыть этот проект, но поскольку мы переписали main.c то он уже не будет пуст. Там будет дофига кода.

Следующим шагом будет прописывание настроек компиляции. Поскольку тут уже есть готовый make то надо всего лишь подсунуть студии его. Тычь в иконку с шестеренкой и ставь в разделе General галку «Use External Make File» и прописывай путь к makefile который идет вместе с исходником.

Жми на компиляцию (F7) и фтыкай в сообщения об ошибках. По хорошему их не должно быть, разве что ругнется что не нашел elf файл. Но elf тебе никуда не уперся поэтому не заморачивайся. На эту ошибку можно забить.

Во вкладке Build AVR Studio должно проскочить что то вроде:

Build started 29.8.2009 at 20:22:36
-------- begin --------
avr-gcc (WinAVR 20090313) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
main.elf  :
section          size       addr
.text           0x3ae     0x3c00
.trampolines      0x0     0x3fae
.bss             0x80   0x800060
.stab           0xeb8        0x0
.stabstr        0x9d4        0x0
Total          0x1cba
Size after:
main.elf  :
section          size       addr
.text           0x3ae     0x3c00
.trampolines      0x0     0x3fae
.bss             0x80   0x800060
.stab           0xeb8        0x0
.stabstr        0x9d4        0x0
Total          0x1cba
Errors: none
-------- end --------
Build succeeded with 0 Warnings...

Если полезли другие ошибки, например не найдена какая либо библиотека, то вполне возможно у тебя косяк в путях и придется прошерстить makefile и поправить пути к WinAVR и его библиотекам.

Конфигурация Bootloader’a
Но это так, тестовый прогон. Он тебе возможно нафиг не подойдет. Надо настроить лоадер под свой проц, свою частоту, свой размер.

Итак, вначале правим main.c
Первым делом твой взор должен воткнуться в строку с определнием F_CPU:

Эта запись означает, что если у нас нигде не определана директива F_CPU, то вот тут мы эту самую директиву и назначим. И присваиваем ей тактовую частоту в герцах на которой будет работать наш проц. Это очень важно, ибо не настроишь частоту — не заработает правильно UART. Можешь просто раскомментировать нужную, а можешь добавить свою, не забыв закомментировать остальные.

Смотрим дальше

Это настройка скорости передачи порта по которому наш бут будет общаться с внешним миром. По дефолту идет 115200, но у меня на 115200 так и не заработало, поэтому я понизил до 19200. Работает стабильней некуда. Режим удвоения скорости я никогда не юзаю. Он пригождается лишь когда работаешь на медленных кварцах, вроде часового. А так — лишняя сущность. Поэтому закомменчено.

Это выбор порта инициализации и порта индикации. Оба этих пина совершенно опциональные.

Порт инициализации нужен в том случае если мы в бутлоадер входим при замкнутом на землю выводе который вот этой настройкой и определяется. Я же обычно юзаю вход по таймеру, поэтому для меня эта опция не играет роли. А порт индикации это уже моя фича, сделана просто для удобства. На этот пин вешается светодиод и горит когда процессор находится в секции бутлоадера. Это позволяет мне знать что делает мой проц. Если фича не нужна, то закомментируй строку #define ENABLE_BOOT_LED и весь код обработки этого светодиода будет выпилен из исходника директивами условной компиляции ifdef-endif

Следующая важная опция — способ входа в бут

Выбираешь нужную, а остальное комментируешь. В принципе, рулят START_SIMPLE — вход по наличию низкого уровня на заданом выводе и START_WAIT — вход в бутлоадер по спец символу из UART в течении времени которое определено в переменной WAIT_VALUE. У меня комп немного подтормаживает (старичок, ага) поэтому ставлю 4 секунды. Иначе AVRProg не успевает пнуть в порт символ и запустить бут. После 4х секунд начинается выполнение основной программы.

В этом файле закончили, переходим к makefile тут комментарий начинается с #

Вначале выбираем свой проц:

Затем размер бутсектора

Первые две опции не катят, ибо бут в них не влезет. А вот 512 и 1024 вполне пригодны. Для начала поставь 512, если не влезет, то изменишь на 1024. Размер бутлоадера зависит от количества включеных фишек и опции запуска. Для Wait и Simple хватает и 512 слов.

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

Если поковырять makefile еще ниже, то можно найти где прописываются пути к WinAVR

Это на случай если будут ошибки при компиляции.

Теперь сохраняй изменения в makefile и залезь в папку проекта, и грохни там все *.hex *.o *.map *.lss.
Я не знаю почему, но видимо в одном из этих файлов Студия при предыдущей компиляции сохраняет параметры из make и дальнейшие правки makefile не приносят результата. Я минут 20 пытался понять какого черта у меня бутлоадер не хочет влезать в память, пока не заглянул в hex файл и не увидел, что адрес бутсектора начинается далеко за пределами памяти Меги16 — т.к. первый раз, для пробы, я скомпилировал под Мегу32 и не смотря на то, что в makefile я все поправил на Mega16 и сохранил, но при компиляции Студия настойчиво совала бут черти куда. Пока не удалил эти файлы и не скомпилил заново (они появляются при компиляции) ничего не заработало.

Теперь компилируй загрузчик и получай на выходе main.hex файл — обычную прошивку. Для проверки открой его блокнотом и позырь на начало и конец, предварительно рекомендую покурить :

:103C000011241FBECFE5D4E0DEBFCDBF10E0A0E69B
……
тут куча барахла — это код нашего загрузчика
……
:0E3FA0;00B1CE5D9BFECF2CB8ADCEF894FFCF16
:0400000300003C00BD
:00000001FF

Жирным я выделил адреса которые тебя интересуют. 3C00 — адрес начала сектора (в байтах! В даташите он приведен в словах, так что умножай на два 1E00*2=3C00) размером в 512 слов. 3FA0 адрес начала последней строки кода загрузчика, а число перед адресом (0E) — длинна этой строки.
3FA0 0E = 3FAE адрес самого последнего байта загрузчика. Последний адрес флеш памяти для ATmega16 это 3FFF так что у нас еще 81 байт в запасе остался ;)))))

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

Готово, у нас есть hex файл, можно прошивать. Подключаем программатор (да, он тут потребуется, а ты думал в сказку попал? Нифига, программатор штука такая без которой никуда) и заливаешь ее в МК. Сразу предупреждаю шиться будет долго. Т.к. будет заливаться полная прошивка на 16кБ (для мега16). Причем что avrdude@usbasp, что AVRProg@JtagICE — все ругаются на какую то ошибку, дудка порой виснет на чтении, однако если прочитать потом кристалл и сравнить два хекса, то будет видно, что лоадер четко встал в ввереные ему адреса.

Осталось сделать страшное 🙂 Выставить Fuse биты.

Во-первых надо активировать бит BOOTRST
Во-вторых выставить размер бут сектора в битах BOOTSZ1..0, для 512 на Mega16 это 01

Готово.

Как проверить работу Bootloader’a
Теперь нам надо соединить микроконтроллер с компом через RS232 или его USB эмуляцию. У меня USB, главное чтобы виртуальный USB был в числе первых четырех COM портов. У меня он зарегился в системе как COM4

Запускем терминалку, делаем коннект на порт к которому подключен наш контроллер и вызваем срабатывание условиях. У меня в данный момент бут настроен на Start_Wait поэтому я просто жму RESET (зажигается диод что проц в буте) и посылаю микроконтроллеру букву «S» в ответ мне приходит «AVRBOOT» Ок, работаем. Если ничего не делать, то диод погаснет через 4ре секунды — вышли из бут сектора. Но если в микроконтроллер не зашито еще ничего, то быстро проскочив через 16кб пустоты проц опять выполнит код бутлоадера и так по кругу, диод будет тупо гореть.

Как прошивать через Bootloader
Закрываем терминалку, чтобы освободить порт.
Подключаем контроллер, подаем питание. Запускаю студию, жму RESET на плате микроконтроллера и в меню студии быстро выбираю Tool — AVR Prog… Помним, что у нас в запасе 4 секунды.

Запускается AVRProg, стучится в порты с вопросом»S»?, а из одного из них ему «Алоха браза я тут!» Это радостное событие отмечается открытием окна AVR Prog:

Ну, а дальше тривиально. Выбираем кекс для флеша, если надо и для епрома и шьем. Шьется просто реактивно! Закрываем AVR Prog, делаем RESET, ждем 4ре секунды — прога пошла!

Ссылки по теме:

З.Ы.
Народ, кто юзает/пишет загрузчики накидайте мне в комменты линков на то чем пользуетесь вы. А то я особо тему не рыл, нашел что удовлетворяло моим условиям и успокоился. Хотелось бы в статью еще добавить подборку линков на разные бутлоадеры под разные языки и компиляторы.

З.З.Ы
Подумалось тут…
Бутлоадер настроен на определенную частоту. Но для отладочной платы это не очень удобно, там порой может потребоваться смена частоты. Частоту можно изменить переткнув кварц, но тогда бутлоадер работать перестанет — собьется частота UART и потребуется опять программатор (которого может и не быть под рукой), чтобы перешить бутлоадер под новую частоту. Единственно что можно менять кварцы с частотами степени 2, тогда просто у USART будет скакать скорость, скажем, кварц на 8мгц — скорость 9600 бод, поставили кварц на 16мгц — скорость на том же буте стала уже 19200.

Проблема может решаться таким образом — числа определяющие скорость уарта мы кладем в последниие адреса EEPROM (если там 0, то можно задать какой нибудь дефолт, например 9600 для частоты 8Мгц, чтобы можно было хоть как то оживить МК), а затем, если мы хотим поменять кварц и перешить прогу на новую частоту, то сначала, на прежнем буте не перезагружаясь, пока он еще доступен, зашиваем вначале новую прошивку, потом новый Епром с числами под новый кварц, перезагружаемся — меняем кварц и опа — у нас опять МК онлайн. Надо добавить в этот лоадер такую фичу. =)

З.З.З.Ы.
Бутлоадером изначально прошиты все контроллеры AVR в моих демоплатах Pinboard

Популярные вопросы

Часто задаваемые вопросы

Если я купил новый (другой) телефон Xiaomi, как разблокировать его?

Ждем месяц после разблокировки предыдущего телефона. Входим под эти же Mi аккаунтом в программу Mi unlock и делаем разблокировку нового. Заявку уже подавать не нужно. Этим аккаунтом можно снимать блокировку каждый новый месяц с одного телефона.

Нужна ли сим карта?

Раньше нет, теперь нужна.

Нужно ли использовать только 64-битную Windows?

Нет. Битность не важна для разблокировки. Она иногда требуется при прошивке.

После разблокировки можно ли будет получать OTA обновления?

Да, вы будете как и прежде получать обновления Miui.

Отображается информация, что загрузчик разблокирован, но проверка через adb показывает обратное, почему?

Скорее всего в телефон заливали прошивку в обход загрузчика. Рекомендуем перепрошить телефон и сделать все заново.

Правда ли, что функция сканера пальца и поиска устройства будет недоступна после анлока?

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

Снимается ли с телефона гарантия?

Нет, поскольку возможность разблокировки предусмотрена производителем. Если же вы перепрошивками сломали телефон или установили root-доступ, то гарантия перестает распространяться на ПО.

Почему Xiaomi блокирует телефоны?

Эта требование Google и метод усиления безопасности ваших данных.

Работает ли этот способ на Xiaomi Redmi Go?

Нет. Данный способ работает только для устройств с прошивкой Miui.

У меня отсутствует пункт «статус mi unlock», почему?

У вас или старая прошивка или установлена европейская (EU) версия и уже все разблокировано.

Можно ли все сделать без потери данных?

Нет. Старые устройства не удаляют данные, а вот новые модели стирают абсолютно все.

Как восстановить работоспособность функции бесконтактной оплаты через nfc и возможность работы банковских приложений?

Можно попытаться обойти систему защиты ваших данных установив плагин Magisk.

Можно ли разблокировать телефон без компьютера?

Нельзя.

У меня стоит регион «Индия», нужно ли менять на Россию?

Да, это поможет избежать дальнейших ошибок.

Нужно ли отвязывать смарт часы и умные браслеты от телефона?

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

Существует ли способ для Linux и Mac?

Да, умельцы портировали программу под другие системы (работает на java). На сторонних форумах можно найти ссылки. Стоит отметить, что они очень редко обновляются.

Разблокировка bootloader samsung

В данной статье будет рассказано о разблокировке загрузчика Samsung.

Важно!!! Делайте резервную копию важной информации. После разблокировки bootloader, все данные удаляется в целях безопасности. Так же сброс до заводского состояния происходит при обратной блокировке загрузчика.

Мы не рекомендуем разблокировку, прошивку и другие модификации с разряженной батареей. Минимальный заряд батареи составляет 75%.

Порядок действий:
1. Откройте инструменты разработчика. Нажмите на номер сборки прошивки 10 раз в разделе «О телефоне».

2. Затем найдите пункт с заводским загрузчиком разблокировки – «OEM unlock». Поверните переключатель в активное положение. Предмет отсутствует? Смотрите решение в этом разделе.

3. Войдите в режим загрузчика. Выключи смартфон. Одновременно нажмите и удерживайте кнопки “уменьшения громкости“, “дома” и “включения смартфона“. Когда отобразится зеленоватый экран, нажмите и удерживайте клавишу “увеличения громкости“, пока телефон не загрузится в режиме загрузчика.

4. Обратите внимание на строку FRP LOCK и OEM LOCK. Если значение «OFF» и нету строки «RMM STATUS: prenormal», загрузчик открыт и готов к установке TWRP.

5. Если состояние «ON», загрузчик закрывается и TWRP не может быть установлен.

Почему нет опции «заводская разблокировка загрузчика»?
По соображениям безопасности эта функция недоступна, если телефон не использовался в течение 7 дней. Если срок службы составляет менее 168 часов или перезапуск устройства, элемент не будет отображаться. Это также иногда способствует переходу в авиа режим, извлечение сим-карты и сброс до заводских настроек.

На некоторых смартфонах, особенно новых продуктах и ​​/ или флагманах продуктах, разблокировка загрузчика временно недоступна. В этом случае вы должны просто ждать, что данный пункт появится в настройках, возможно, после обновления прошивки.
Чтобы ускорить появление кнопки «заводская разблокировка» на некоторых смартфонах, например Galaxy S9 / S8 / Note 8 помогает обратный перевод времени.

Это требует:

1. Зайдите в раздел настроек.
2. Выберите «время и дату» и отключите автоматическое изменение параметров.
3. Когда вы вручную изменяете настройки, вы должны установить число больше 7 дней до текущей даты. Например, отмотать 1 месяц, что бы смартфон подумал, будто работает в течение месяца.
4. Затем вам нужно открыть раздел разработчиков, где нужно отключить опцию автоматического обновления системы.
5. Затем вернитесь в настройки и перейти к стандартному пункту «обновление программного обеспечения». Требуется отключить автоматическую загрузку, и проверить наличие обновлений вручную.
6. После перезагрузки смартфона.
7. Как только устройство запустит операционную систему, в разделе для разработчиков появляется элемент «Unlock Factory» («заводская разблокировка»).

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

ВНИМАНИЕ!Параметр RMM STATE: Prenormal – означает, что защита включена. Сокращенно RMM – Remote Mobile Manager. Samsung. В самсунг представила этот инструмент в дополнение к FRP. Инструмент отслеживает необычные действия и предотвращает разблокировку загрузчика, если телефон украден или утерян. Необычное действие сброс до заводских настроек; установка SIM-карту страны с неподходящим языковым пакетом; кража и активное использование менее 7 дней.

Загрузчик разблокирован – Вариант 1

FRP LOCK – OFF
OEM LOCK – OFF

Загрузчик разблокирован, а защита отключена. Смартфон готов к установке TWRP.

Загрузчик готов к разблокировке – Вариант 2

FRP LOCK – ON
OEM LOCK – ON

Защита отключена, но включена опция FRP (Защита от сброса настроек Google). Параметр «заводская разблокировка» не активирован в разделе для разработчиков. Вам нужно отключить опцию FRP, а также включить «заводскую разблокировку загрузчика». Как только статус изменится на один в пункте 1, вы можете приступить к установке TWRP.

Загрузчик заблокирован, включена защита – Вариант 3

RMM STATE: Prenormal
FRP LOCK – OFF
OEM LOCK – ON

Защита активирована, FRP отключен, зарядное устройство заблокировано. «Заводская разблокировка» включить не получиться, поскольку RMM блокирует отображение этой опции. Пока RMM активен, TWRP не может быть установлен.

Загрузчик разблокирован, включена защита – Вариант 4

RMM STATE: Prenormal
FRP LOCK – OFF
OEM LOCK – OFF

Защита включена, FRP отключен, загрузчик разблокирован. В то же время установка TWRP невозможна, поскольку защита RMM активна. Принудительная установка TWRP приведет к блокировке пакета.

Это важно! Пока RMM активен, вы не можете разблокировать загрузчик или установить TWRP, если блокировка снята. Иногда проблема решается путем изменения даты, а иногда необходимо активно использовать устройство в течение 7 дней. После обновления данных и связи с сервером RMM переходит в режим ожидания.

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

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

Раздел boot и ядро

Если во время включения устройства ты не зажимал клавишу увеличения громкости либо не перезагружал смартфон в режим recovery намеренно (например, с помощью расширенного меню перезагрузки в кастомных прошивках), на последнем этапе своей работы aboot загружает в память устройства ядро Linux и RAM-диск из раздела boot, а после этого передает управление ядру.

Сам раздел boot не содержит никакой файловой системы, а представляет собой сжатые с помощью gzip и записанные друг за другом ядро и RAM-диск, предваренные небольшим заголовком размером в два килобайта (он содержит опции загрузки ядра, а также адреса расположения образов и другую информацию).

RAM-диск, в свою очередь, представляет собой небольшую виртуальную файловую систему, содержащую набор каталогов, к которым Android подключит файловые системы других разделов (system, data, sdcard), а также систему и скрипт инициализации и init.rc. RAM-диск загружается прямо в оперативку и продолжает существовать все время, пока смартфон включен.

Благодаря простой структуре образ раздела boot (boot.img) довольно легко распаковать. Это можно сделать даже с помощью HEX-редактора, но проще воспользоваться инструментом imgtool. Пример для Linux (x86_64):

$ imgtool.ELF64 boot.img extract $ cd extracted $ mkdir ramdisk_ext $ cd ramdisk_ext $ gunzip -c ../ramdisk | cpio -i

Запакованные ядро и RAM-диск окажутся в каталоге extracted, а содержимое RAM-диска — в подкаталоге ramdisk_ext. Это в идеале. На самом деле, как и в случае с загрузчиком, никакого стандарта для формата раздела boot нет, и производитель может проявить фантазию.

Тем не менее в 95% формат раздела boot стандартный, и если ты когда-либо прошивал на свой аппарат кастомное ядро, то наверняка внутри ZIP-архива с ядром был именно образ boot.img, так что вместе с ядром ты прошивал также и RAM-диск. Когда ты это делал, тебе приходилось быть осторожным, ведь RAM-диск стоковой прошивки отличается от RAM-диска того же CyanogenMod. Прошив ядро для AOSP в CyanogenMod, ты мог получить bootloop и много других неприятностей.

Чтобы обойти эту проблему, разработчик CyanogenMod и автор ClockworkMod Recovery Кушик Дутта (Koushik Dutta, или Koush) создал систему AnyKernel, которая позволяет устанавливать ядра отдельно от RAM-диска (путем пересборки раздела boot на лету). Сегодня ее используют многие разработчики кастомных ядер, но далеко не все.

Какое бы ядро ты ни выбрал, тебе в любом случае понадобится кастомный recovery для его установки.

Оцените статью
Huawei Devices
Добавить комментарий