Что такое Bootloader на Android
Что такое Bootloader на Android. Далеко не каждый обладатель мобильного девайса в виде смартфона или планшета, работающего под управлением «операцонки» серии Android , знает о том, что в любой версии ОС имеется такая штука, как Bootloader. Что это такое, сейчас и будет рассмотрено. Исходя из понимания самой сути вопроса, можно будет узнать, какие операции можно производить при его разблокировании.
Содержание:
Bootloader: что это?
Начнем, так сказать, с азов. Bootloader Android — систем практически ничем не отличается от того, что имеется на любом компьютерном терминале, будь то PC или Mac. Говоря простым языком, Bootloader – это встроенное средство загрузки операционной системы.
Если привести в пример компьютерные терминалы с несколькими установленными «операционками» (скажем, Windows и Linux), загрузчик после включения стационарного блока или ноутбука предлагает юзеру вход в систему на выбор, а после подтверждения загружает ту или иную ОС.
Принципы загрузки ОС
Равно как и в стационарных системах, загрузчик Bootloader в мобильных девайсах обращается к инициализационным файлам по типу того, как это делает, например, Windows при загрузке параметров из файла boot.ini.
Если обратить внимание именно на такие данные, нетрудно сделать вывод, что в Android-системах запросто можно изменить не только способ загрузки, но и загружаемую ОС либо в ручном, либо в автоматическом режиме. Однако мало кто знает, что сам этот инструмент загружает исключительно ту систему, которая написана под определенную модель смартфона или планшета.
Bootloader: как разблокировать и зачем это нужно?
Что же касается возможностей, которые предполагает разблокирование загрузчика, дело тут только восстановлением данных не ограничивается.
Считается, что в таком случае пользователь получает доступ к ядру системы, который по умолчанию невозможен. Как в такой ситуации описать Bootloader? Что это, станет понятно, если взглянуть на отсутствие так называемых прав суперюзера . Получается, что после снятия блокировки они вообще не нужны ни на каком уровне. А то ведь зачастую приходится устанавливать специальные прошивки и приложения. Если же кастомная прошивка , мягко говоря, «корявая», то и вся система может слететь.
Любой производитель мобильной техники предусматривает работу с таким компонентом, как Bootloader. Как разблокировать его? Обычно это делается при помощи специальных утилит, устанавливаемых на ПК при соединении с мобильным девайсом через USB-интерфейс. Заметьте, права суперпользователя в данном случае не требуются.
Для большинства устройств, включая, например, гаджеты Sony и HTC, подразумевается использование утилиты Adb Run , причем для Sony придется дополнительно использовать специальные драйверы Sony Fastboot, да еще и обратиться к специальному разделу Unlocker на официальном сайте. Как видим, процедура хоть и выполнимая, но достаточно сложная.
Как разблокировать Bootloader более подробно
Восстановление данных
С другой стороны, в своем стандартном режиме работы восстановление Bootloader после сброса настроек до заводских позволяет совершить просто элементарно. Для этого не потребуется даже hard reset .
Достаточно просто скинуть настройки на самом гаджете, а после перезагрузки система предложит выбрать вариант: либо использовать на устройстве новые настройки, либо восстановить параметры, программы и файлы, применяя для этого учетную запись сервисов Google. При этом придется ввести адрес почты Gmail с паролем, а также подключиться к сети Интернет, например, при имеющемся активном Wi-Fi-соединении.
Установка другой «операционки»
Если говорить о возможности инсталляции другой ОС, этот вопрос достаточно сложен, хотя и решаем. Дело в том, что некоторые производители утверждают, мол, что после «Андроида» на гаджет другая система не станет. Чистой воды рекламный ход, призванный разрекламировать инсталлированную систему.
А ведь китайцы на своих «левых» аппаратах HTC уже доказали, что на одном девайсе совершенно элементарно уживаются и Android, и Windows Phone. При этом такие модели поставляются в большинстве случаев с уже разблокированным загрузчиком Bootloader. Что это в данном случае? Это средство, позволяющее не только выбирать загружаемую ОС, но и устанавливать любую другую с изменением параметров на системном уровне.
Иными словами, пользователь может обойтись даже без каких бы то ни было прошивок или дополнительных программ для оптимизации работы установленной «операционки». Более того! Для этого не потребуются даже специализированные утилиты вроде оптимизаторов, которых сегодня развелось столько, что пользователь сам не понимает, что же выбрать из всего этого огромного количества программ и приложений.
На что стоит обратить внимание отдельно?
Но вот когда дело касается кастомных прошивок, которые стали достаточно популярными у множества владельцев мобильных девайсов, с ними нужно быть очень осторожными. Конечно, толковая прошивка или обновление ОС вреда не принесет, скорее наоборот, только улучшит работу устройства, но когда инсталлируется что-то неофициальное, да еще не прошедшее проверку (вроде компьютерных бета-версий), жди беды. Тогда уж точно никакой загрузчик не поможет.
Кстати сказать, немногие соображают, что такие версии способны оказывать слишком сильную нагрузку на «железные» компоненты, что, в свою очередь, может привести к их полной неработоспособности. А ведь поменять процессор в том же смартфоне – дело далеко не самое простое.
Ко всему прочему разблокировка загрузчика в официально выпущенных фирменных гаджетах подразумевает автоматическую потерю гарантии и возможности бесплатного сервисного обслуживания. Так что придется сто раз подумать, перед тем как производить такие действия и операции.
Напоследок остается добавить, что вопрос установки другой ОС на Android-девайс – тоже, в общем-то, достаточно спорный. Да, конечно, система встанет, что бы там производитель ни заявлял. Но вот как она будет работать – это уже другой вопрос, тем более что большинство юзеров обычно ставят какие-то облегченные версии, имеющие неизвестный источник происхождения. А зря. Тут, как говорится, таких дров наломать можно, что потом греха не оберешься. Да и сам производитель при таких изменениях по действующим международным нормам никакой ответственности за корректную работу мобильного девайса не несет. Поэтому решение о целесообразности и должен принимать сам обладатель гаджета. Но лучше с такими вещами не шутить.
Источник
Android bootloader interface для чего
Platform-tools: r31.0.3
ADB: 1.0.41 (31.0.3-7562133)
Fastboot: 31.0.3-7562133
Make_f2fs: 1.14.0 (2020-08-24)
Mke2fs: 1.46.2 (28-Feb-2021)
Последнее обновление утилит в шапке: 01.08.2021
ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
Официальная страница
ADB позволяет:
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.
Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.
Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.
adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.
adb -s Команда посылается на устройство с указанным серийным номером:
adb -p Команда посылается на устройство с указанным именем:
Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.
adb devices Список всех подсоединенных устройств.
adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).
adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
Если не задан ни один параметр, отключиться от всех активных соединений.
adb push Копировать файл/папку PC->девайс.
adb pull [ ] Копировать файл/папку девайс->PC.
adb sync [ ] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] Удаление приложения с устройства.
Ключи:
-k Не удалять сохраненные данные приложения и пользователя.
adb wait-for-device Ждать подключения устройства.
adb start-server Запустить службу/демон.
adb kill-server Остановить службу/демон.
adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.
adb get-serialno Получить серийный номер.
adb status-window Непрерывный опрос состояния.
adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.
adb reboot bootloader Перезагрузка в режим bootloader.
adb reboot recovery Перезагрузка в режим recovery.
adb root Перезапуск демона с правами root
adb usb Перезапуск демона, прослушивающего USB.
adb tcpip Перезапуск демона, прослушивающего порт TCP.
adb ppp [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
Параметры:
defaultroute debug dump local notty usepeerdns
FastBoot — консольное приложение для PC. Используется для действий над разделами
fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash Прошивает файл .img в раздел устройства.
fastboot erase Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.
fastboot update Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot [ ] Скачать и загрузить kernel.
fastboot flash:raw boot [ ] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s Указать серийный номер устройства.
-p
Указать название устройства.
-c Переопределить kernel commandline.
-i Указать вручную USB vendor id.
-b Указать в ручную базовый адрес kernel.
-n
Указать размер страниц nand. по умолчанию 2048.
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V — Verbose (Низший приоритет).
D — Debug
I — Info
W — Warning
E — Error
F — Fatal
S — Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
adb logcat *:W
Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»
Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Источник