Переводим телефон в режим fastboot для чего это нужно и как убрать данный режим

Использование кастомного Рекавери

Recovery — спасательный круг для пользователей смартфонов или планшетов. Это средство восстановления операционной системы в случае критических ошибок во время использования. Также в функционал программы входит ограничение действий пользователя в отношении внутренней системы гаджета.

Несмотря на это, пользователи, которые хотят поменять прошивку смартфона или установить операционную систему «со стороны» для устройства, заменяют заводской Recovery на кастомную версию.

Функционал пользовательской системы восстановления схож со стандартным аналогом. Хотя также существует несколько дополнительных возможностей кастомного Recovery, например, доступ к защищённым файлам и функциям. Чаще всего это используется как база для глобальных пользовательских изменений системы.

Наиболее надёжными пользовательскими система восстановления являются:

  • ClockworkMod Recovery.
  • Team Win Recovery Project (TWRP).

Bootloader — программа не позволяющая владельцу портативного устройства заменить прошивку на стороннюю. Однако существует несколько способов разблокировки ограничения от разработчиков.

Пишем свой модуль

Снимаем защиту

SELinux отключить не удалось, но по аналогии с модулем https://github.com/chaosmaster/ford_selinux_permissive можно попробовать сделать тоже самое, но с Kyocera hooks. Мне нужно лишь задать переменную kc_bootmode или kc_kbfm в единицу.

В ядре Linux есть возможность получить адреса указателей всех функций и переменных: . По умолчанию эти адреса отображаются как 0. Это работает очередная защита ядра. Отключить её можно так: .

Получив адрес нужной функции, я мог передать в неё параметр и функция задаст переменную в 1. Опытным путем выяснил, что не все ядра отображают kallsyms для переменных (тип d или D, регистр говорит глобальная переменная или нет), поэтому в примерах я использую указатели на функции. Возможно это определяется опцией при компиляции ядра.

Описываю функцию в модуле:

И вызываю её:

Можно адреса найти динамически:

Загрузка подставного модуля отключила встроенную защиту! Теперь я могу монтировать и загружать любой модуль ядра независимо от его имени.

Системная область emmc всё еще доступна только для чтения и не позволяет редактировать раздел на постоянной основе. Файлы редактируются, но при очистке cache все возвращается в исходное состояние.

Всё-таки отключаем SELinux

Из спортивного интереса я всё-таки решил отключить SELinux. Заменить defined значение мы не можем, но мы можем разыменовать структуру с hooks функциями .

Это делается вызовом функции :

После этого защита SELinux работать не будет, но система всё еще будет думать, что она включена. Потому возможны некоторые ошибки в работе системы.

Перезагружаемся в download mode

Та же операция работает и с , о котором я писал выше. После загрузки модуля телефон перезагружается в спец режим, который работает как usb mass storage device. Т.е. я имею доступ ко всем разделам телефона без защиты от чтения! Попробовал записать свой recovery.

Пришлось ограничить скорость записи, иначе телефон отваливается и запись прекращается. Возможно это результат переполнения кэша mass storage загрузчика. Пришлось написать хак:

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

При помощи этого же способа я примонтировал раздел к компьютеру и вручную записал на него supersu. Первоначальная задача выполнена: перманентный root доступ получен. Осталось автоматизировать загрузку подставного WiFi модуля, который отключает hooks. И хорошо бы, чтобы WiFi после этого оставался работоспособным. А еще лучше разблокировать загрузчик, чтобы загружать своё ядро.

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

  • https://github.com/beaups/SamsungCID.
  • https://github.com/djrbliss/loki

Цифровая подпись aboot и boot разделов

Я пытался выяснить каким публичным ключём подписаны boot образы. Распаковал ключи из aboot (), извлек подписи из образов и прошелся всеми публичными ключами по ним. Выяснил, что все образы подписаны одни ключём. С ходу не разобрался как вычислить смещение подписи у boot разделов, потому я просто перепаковываю образ и использую его размер как смещение. С aboot чуть сложнее. Мне удалось извлечь подпись и расшифровать sha256 образа. А вот понять как самому вычислять sha256, чтобы сравнить с расшифрованным значением, пока не удалось.

В качестве эксперимента я попробовал записать boot раздел в раздел fota, зная, что при загрузке fota снимаются все ограничения. Здесь я сильно рисковал, т.к. мог получить bootloop, похожий на bootloop recovery. Метка загрузки в fota записывается в раздел fotamng и если раздел не загрузится, то я получу бесконечную перезагрузку.

К сожалению, boot раздел, записанный в fota не загрузился, а bootloop я, к счастью, не получил. Не понятно почему тогда boot раздел, записанный в recovery успешно загрузился. Толку от этого конечно нет, для recovery используется та же защита, что и для boot. Не знаю чем вызвано подобное поведение. Возможно различными смещениями ramdisk и tags:

boot/recovery:

fota:

В Secure boot whitepaper от Qualcomm говорится о том, что подписывается sha256 hash от sha256 hash’ей нескольких сегментов ELF загрузчика. Количество сегментов определено в Subject’е сертификата. Например OU=05 00002000 SW_SIZE говорит о том, что в подписи содержится sha256 hash от первых 256 hash’ей областей по 32 байта (0×2000/32=256). Сам по себе aboot не содержит ELF заголовка и описание больше подходит к sbl1 (secondary boot loader).

Есть описание работы little kernel от Qualcomm, но и там нет ничего про алгоритм создания подписи aboot. Задача определить алгоритм все еще актуальна.

Преимущества и недостатки разблокировки Rereboot to Bootloader

Пользуясь функцией Rereboot to Bootloader, следует осознавать ответственность, которая ложится на ваши плечи.

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

    Активация Bootloader

Однако загрузчик очень полезен в целом ряде случаев. Рекомендуется активировать Bootloader для таких целей:

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

Поэтому очень важно знать о значении опции Rereboot to Bootloader на Андроид и понимать что это такое

Загрузка Android SDK и USB драйвера для разблокировки загрузчика Bootloader

В разделе SDK Tools Only загрузите подходящий вам вариант. Я использовал архив ZIP с Android SDK для Windows, который после этого распаковал в папку на диске компьютера. Также для Windows присутствует и простой установщик.

Из папки с Android SDK запустите файл SDK Manager (если он не запускается — просто появляется и тут же исчезает окно, то дополнительно установите Java с официального сайта java.com).

После запуска отметьте пункт Android SDK Platform-tools, остальные пункты не нужны (разве что Google USB driver в конце списка, если у вас Nexus). Нажмите кнопку Install Packages, а в следующем окне — «Accept license» для загрузки и установки компонентов. По завершении процесса, закройте Android SDK Manager.

Помимо этого, вам потребуется загрузить драйвер USB для вашего Android устройства:

  • Для Nexus они загружаются с помощью SDK Manager, как было описано выше.
  • Для Huawei драйвер входит в состав утилиты HiSuite
  • Для HTC — в составе HTC Sync Manager
  • LG — LG PC Suite
  • Решения для других марок можно найти на соответствующих официальных сайтах производителей.

Включение отладки по USB

Следующий шаг — включить отладку по USB на Android. Для этого проделайте следующие действия:

  1. Зайдите в настройки, пролистайте вниз — «О телефоне».
  2. Несколько раз нажмите по «Номер сборки», пока не увидите сообщение о том, что вы стали разработчиком.
  3. Вернитесь к главной странице настроек и откройте пункт «Для разработчиков».
  4. В разделе «Отладка» включите «Отладка по USB». Если в параметрах разработчика присутствует пункт OEM разблокировка, то включите его тоже. 

Получение кода для разблокировки Bootloader (не нужно для любых Nexus)

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

На этих страницах описан процесс разблокировки, а также имеется возможность получить код разблокировки по ID устройства. Этот код потребуется в дальнейшем.

Не стану объяснять весь процесс, поскольку он отличается для разных марок и подробно пояснен на соответствующих страницах (правда, на английском) коснусь лишь получения Device ID.

  • Для телефонов Sony Xperia код разблокировки будет доступен на указанном выше сайте по-вашему IMEI.
  • Для телефонов и планшетов Huawei код также получается после регистрации и ввода требуемых данных (включая Product ID, который можно получить с помощью кода телефонной клавиатуры, который вам подскажут) на указанном ранее сайте.

А вот для HTC и LG процесс несколько иной. Для получения кода разблокировки потребуется предоставить Device ID, описываю, как его получить:

  1. Выключите Android устройство (полностью, удерживая кнопку питания, а не просто экран)
  2. Нажмите и удерживайте кнопки питания + звук вниз пока не появится экран загрузки в режиме fastboot. Для телефонов HTC потребуется выбрать fastboot кнопками изменения громкости и подтвердить выбор коротким нажатием кнопки питания.
  3. Подключите телефон или планшет по USB к компьютеру.
  4. Зайдите в папку Android SDK — Platform-tools, затем, удерживая Shift, кликните в этой папке правой кнопкой мыши (в свободном месте) и выберите пункт «Открыть окно команд».
  5. В командной строке введите fastboot oem device-id (на LG) или fastboot oem get_identifier_token (для HTC) и нажмите Enter.
  6. Вы увидите длинный цифровой код, размещенный на нескольких строчках. Это и есть Device ID, который потребуется ввести на официальном сайте для получения кода разблокировки. Для LG присылается только файл для разблокировки. 

Примечание: файлы разблокировки .bin, которые придут вам по почте лучше всего положить в папку Platform-tools, чтобы не указывать полный путь к ним при выполнении команд.

GRUB or custom bootloader?

This is one of the never-ending arguments of the OSDev community. No one can give you a definitive answer, so it’s up to you to weight the available options and make up your mind.

GRUB

Arguments in favour of using GRUB as your bootloader are:

  • You can avoid almost all legacy things that make booting complicated (e.g. real mode segmentation, A20, the large list of BIOS interrupts, etc) so you can get to writing the kernel and the userspace faster.
  • If you are willing to implement Multiboot, most arguments in favour of writing a custom bootloader are voided anyway.

Custom bootloader

Apart from the «Not Invented Here» syndrome and the «enjoying doing fun things» argument, there are technical arguments in favour of doing a custom bootloader:

  • Better control over the booting process. See also for things a bootloader should do. Hint: GRUB probably doesn’t do half of them.
  • Less external dependencies, which may be desirable as internal components can be patched at any time whenever the need arises. This also allows to easily add features to your bootloader at your own pace.
  • If your OS is not UNIX-like, a custom bootloader may make it easier to integrate it as part of the OS installation process, as GRUB’s installer requires some level of «UNIX-ness» to work.
  • Less bloat. Let’s admit it, GRUB is not only a bootloader, but also a boot manager. A bootloader is (should be) OS-dependent, while a boot manager is (should be) able to chainload any bootloader the user selects. In other words, it’s two separate concerns.

Риски и последствия

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

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

Неосторожное движение – и вы остались с бесполезным кирпичом

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

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

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

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

Что такое Bootloader и зачем его разблокировать

Чтобы долго не расписывать и не отнимать время у других, рекомендую почитать (если вы новичок) о том, что такое загрузчик на смартфонах Xiaomi в нашем глоссарии. Ниже мы поговорим минимум о 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

У некоторых производителей существуют мудреные способы входа в меню восстановления.

Так, у Lenovo для входа в Recovery нужно:

Выключить смартфон. Зажать кнопки Питание, Громкость+ и Громкость-. При появлении логотипа отпустить клавишу Питание и продолжать удерживать обе клавиши громкости. После появления робота отпустить все клавиши и выполнить короткое нажатие на кнопку Питание.

Для вызова меню Recovery на смартфонах Sony:

  • Выключите устройство.
  • Включить.
  • При появлении логотипа или включении индикатора питания зажать либо Громкость+, либо Громкость- , либо тапнуть по логотипу на дисплее.

Для входа в Recovery на устройствах Fly порой приходится пройти целый ритуал:

  • Зажать Громкость+ и Питание.
  • После появления логотипа Fly, отпустите кнопку Питание.
  • После появления зеленого робота отпустите клавишу Громкость +.
  • Коротко нажмите кнопку Питание.

Многие инструкции по модернизированию и прошивки Android требуют выполнять действия из меню Recovery. Что это за режим и для чего он нужен вы узнаете из этой статьи. Что такое Recovery (рекавери) — это специальный режим загрузки Android в котором:

  • выполняют полный сброс данных Android
  • прошивают смартфон
  • получают Root права

Как зайти Recovery? Меню Recovery как правило есть во всех смартфонах и планшетах производителя Samsung, но отсутствует в других марках Android смартфонов, но его можно легко добавить, прошив данный раздел на свой Android девайс.

Если в девайсе есть меню Recovery и его не изменяли то он носит название СТОКОВЫЙ, если же не было меню Recovery и его прошили то название — КАСТОМНЫЙ. Кастомный бывает в основном двух видов CWM и TWRP , реже встречается 4ext, Philz CWM, (разные команды разработчиков).

(старые модели и некоторые планшеты)

а) Выключить Android и зажать Центральную кнопку и кнопку Вкл/Выкл

б) Выключить Android и зажать кнопку Громкость Вверх и кнопку Вкл/Выкл

или универсальным способом (читайте ниже).

(новые модели)

Выключить Android и зажать Центральную кнопку + кнопку Громкость Вверх+ кнопку Вкл/Выкл

Выключить Android и зажать Центральную кнопку + кнопку Громкость Вверх + кнопку Вкл/Выкл

Выключить Android и зажать Центральную кнопку и кнопку Вкл/Выкл

Для HTC

Перевести в режим bootloader, после чего

  • выбрать Bootloader -> Recovery
  • либо сразу при входе в меню будет Recovery

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

Если вдруг не вышло, воспользуйтесь универсальным способом (читайте ниже).

Для Nexus

Выключить Nexus и зажать кнопки Громкость ВНИЗ + ВКЛ/ВЫКЛ.

В меню клавишами громкости найти меню Recovery и подтвердить выбор кнопкой ВКЛ/ВЫКЛ

Если вдруг не вышло, воспользуйтесь универсальным способом (читайте ниже).

Для SONY

Выключить, включить и когда появиться на экране логотип Sony или когда загорится индикатор — ЗАжать/ Нажать (возможные варианты):

  • Громкость ВНИЗ
  • Громкость Вверх
  • Нажать на логотип
  • Либо выключить Sony, Зажать кнопку «Питания», дождаться пару вибраций, отпустить кнопку питания и зажать кнопку «Громкость Вверх»
  • Воспользоваться универсальным способом (читайте ниже).

Универсальный способ с установленного терминала при наличие Root прав

1. Скачать и установить приложение Терминал

2. Перейдите в только что установленное приложение

3. Набрать следующие команды

4. Через пару секунд Android начнет перезагружаться

Рабочее окно ADB RUN

С командной строки — Способ 2

Еще один вариант как попасть в меню Recovery, при помощи стандартных средств ADB и программы ADB RUN:

Подключите Android к ПК и наберите команду adb reboot recovery

Пример в ADB RUN:

С командной строки — Способ 3

Как показывает практика на некоторых устройствах (а конкретней в LG) не получается перевести устройство Android c помощью команды adb reboot recovery, в таком случае стоит воспользоватся следующей командой

Есть еще команда для перевода в режим Recovery для LG, нужно ввести команду

После чего девайс через несколько секунд начнет перезагружаться!

Описание функций и возможностей ClockworkMod Recovery (CWM), а также пример создания-восстановления бэкапа прошивки и установки.zip-архива.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector