Патчим прошивку Android за 5 минут
Все началось с того, что я захотел установить на планшет Digma Optima 7.61 игру GTA San Andreas. К сожалению, виртуальная SD-карта планшета имеет объем менее 1 Гб, а кэш игры весит порядка 2-3 Гб. На планшете установлен Android 4.4.2 и возможность просто взять и сменить память по умолчанию в нем отсутствует. Так же в нем отсутствует файл /etc/vold.fstab (он есть на более старых версиях андроида, и изменив данный файл с root-правами, можно поменять местами виртуальную и реальную карты памяти).
Необходимые инструменты
1. Компьютер или ноутбук с ОС Linux.
2. Утилиты adb и fastboot (входят в состав Android SDK, так же, как заметил tmnhy, входят в репозитории как отдельные пакеты).
3. Набор утилит bootimg_tools (нашел здесь).
Решение
1. Извлекаем с устройства загрузочный образ
— Подключаем устройство к компьютеру через usb-кабель и заходим в shell устройства:
— Где-то в папке /dev/block на устройстве нужно найти файл с именем boot. У меня он находился по пути /dev/block/by-name/boot, но данный путь может различаться на разных устройствах.
Как прошить boot img
Platform-tools: r34.0.0
ADB: 1.0.41 (34.0.0-9570255)
Fastboot: 34.0.0-9570255
Make_f2fs (casefold): 1.15.0 (2022-05-20)
Mke2fs: 1.46.6-rc1 (12-Sep-2022)
Последнее обновление утилит в шапке: 17.02.2023
- Посмотреть какие устройства подключены и могут работать с ADB.
- Просматривать логи.
- Копировать файлы с/на аппарат.
- Устанавливать/Удалять приложения.
- Удалять (очищать) раздел data.
- Прошивать (перезаписывать) раздел data.
- Осуществлять различные скрипты управления.
- Управлять некоторыми сетевыми параметрами.
Если что-то неправильно, то в списке подключенных устройств (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> <путь на андроид> Копировать файл/папку PC->девайс.
adb pull <путь на андроид> [<путь на PC>] Копировать файл/папку девайс->PC.
adb sync [<каталог>] Копировать PC->девайс только новые файлы.
Ключи:
-l Не копировать, только создать список.
adb shell Запуск упрощенного unix shell.
Примеры использования
adb emu <команда> Послать команду в консоль эмулятора
adb install [-l] [-r] [-s] <название_приложения.apk> Послать приложение на устройство и установить его.
Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
Ключи:
-l Блокировка приложения
-r Переустановить приложение, с сохранением данных
-s Установить приложение на карту памяти
Установка split apk
adb uninstall [-k] <название_приложения.apk> Удаление приложения с устройства.
Ключи:
-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 <tty> [параметры] Запуск службы через USB.
Note: you should not automatically start a PPP connection. <tty> 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> Прошивка из файла имя_файла.zip
fastboot flashall Прошивка boot + recovery + system.
fastboot getvar <имя_переменной> Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.
fastboot boot <kernel> [<ramdisk>] Скачать и загрузить kernel.
fastboot flash:raw boot <kernel> [<ramdisk>] Создать bootimage и прошить его.
fastboot devices Показать список подключенных устройств.
fastboot continue Продолжить с автозагрузкой.
fastboot reboot Перезагрузить аппарат.
f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s <серийный номер> Указать серийный номер устройства.
-p <product> Указать название устройства.
-c <cmdline> Переопределить kernel commandline.
-i <vendor id> Указать вручную USB vendor id.
-b <base_addr> Указать в ручную базовый адрес kernel.
-n <page size> Указать размер страниц 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 <format>]
Пример, который показывает сообщения в формате thread:
adb logcat -v thread
Нужно отметить, что можно использовать только один формат с параметром -v.
Просмотр альтернативного буфера лога
Система логов Android держит несколько кольцевых буферов для лога сообщений и не все сообщения отправляются в основной буфер. Для отображения дополнительных сообщений лога нужно запустить logcat с параметром -b.
Таким образом можно посмотреть один из альтернативных буферов:
radio Просмотр буфера с сообщениями связанными с радио/телефоном.
events Просмотр буфера с сообщениями связанными с событиями.
main Просмотр основного буфера (по умолчанию).
Пример ниже показывает буфер с радио и телефонными сообщениями:
adb logcat -b radio
Просмотр stdout и stderr
По умолчанию система Android шлет вывод stdout и stderr (System.out и System.err) в /dev/null (удаляет). В процессах, которые выполняются в виртуальной машине Dalvik (Dalvik VM) может осуществляться запись копии вывода в лог файл. В этом случае система записывает сообщения в лог используя тэги stdout и stderr с приоритетом I.
Для перенаправления вывода нужно остановить эмулятор/устройство, затем выполнить команду shell setprop для включения перенаправления вывода. Пример того как это делается:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Система сохраняет эту настройку, пока работает эмулятор/устройство. Чтобы использовать эту настройку по умолчанию в эмуляторе/устройстве, нужно добавить эту команду в /data/local.prop в эмуляторе/устройстве.
Список параметров команды logcat
-b <buffer> Загрузить альтернативный буфер лога для просмотра, такой как event или radio. Основной буфер используется по умолчанию.
-c Очистить (сбросить) лог и выйти.
-d Вывести лог на экран и выйти.
-f <filename> Записать сообщения лога в файл <filename>. По умолчанию в stdout.
-g Вывести размер указанного буфера лога и выйти.
-n <count> Установить максимальное количество ротаций лога (количество хранимых сжатых фрагментов лога) <count>. По умолчанию 4. Требует параметр -r.
-r <kbytes> Выполнять ротацию каждые <kbytes> вывода (разделять лог на фрагменты по <kbytes>). По умолчанию 16. Требует параметр -f.
-s Устанавливает silent фильтром по умолчанию.
-v <format> Устанавливает формат вывода сообщений лога. По умолчанию brief.
Всем тем, кто неудачно прошил свой Android-девайс
Если у вас телефон в состоянии полу-кирпича (загорается стартовая заставка и тому подобное, НО не запускается ОС), то попробуйте следующие реанимирующие действия:
1. Заблокируйте и вновь разблокируйте Bootloader (то место куда вы попадаете нажав кнопку включения клавишу громкости вниз):
а) Скачайте ADB, скорее всего вы его уже скачали при прошивке аппарата.
б) Зайдите через cmd.exe в папку с adb.exe
в) Подключите телефон к ПК по USB
г) В Bootloader’е выберите раздел FASTBOOT (появится надпись «FASTBOOT USB»)
д) В cmd.exe введите следующую команду: fastboot oem lock
е) Надпись UNLOCKED должна смениться на RELOCKED
Способ разблокировать найдите в сети под ваш девайс, если у
вас HTC можно разблокироваться через HTCDev
2. Скачайте с 4PDA !НОРМАЛЬНУЮ! и !ПРОВЕРЕНУЮ! прошивку,
лучше всего стоковую.
а) Прошейте ее при помощи SD-карты.
б) САМЫЙ ВАЖНЫЙ ПУНКТ! Прошейте ЯДРО (boot.img). Для этого:
Закиньте в папку с adb.exe файл boot.img вашей прошивки
Выполните команду: fastboot flash boot boot.img
Перезагрузите аппарат, и оставьте минут на 10-15 есть
вероятность что после проделанного он запуститься.
3. ПОЧИТАЙТЕ ИНСТРУКЦИИ НА 4PDA!
Там есть описание всех известных и неизвестных мне методов для восстановления кирпича.
Как прошить пропатченный загрузочный образ на ваше устройство MediaTek с помощью SP Flash Tool
советы и хитрости для Android / by admin / August 05, 2021
В этом руководстве мы поможем вам прошить магиск на любом устройстве под управлением MediaTek с помощью инструмента SP Flash. Внимательно прочтите наше пошаговое руководство! Для прошивки вам необходимо сначала создать файл исправленного загрузочного образа для вашего устройства, используя стандартный загрузочный образ из соответствующего файла ROM.
Настройка смартфона Android и выполнение расширенных настроек, таких как прошивка пользовательских ядер, пользовательских ПЗУ, разгон и изменение системных настроек — это весело, но вам нужен root-доступ к вашему устройству, чтобы иметь возможность эти. Что ж, Magisk — это бесплатный билет в одну сторону для выполнения всех этих настроек на вашем устройстве.

- 1 Что такое Magisk?
- 1.1 Предварительные требования
- 3.1 Как проверить, есть ли у вашего телефона бессистемный рут?
Что такое Magisk?
Magisk — это бессистемный интерфейс, который помогает добавлять на устройство различные модули. Он основан на phh superuser, который является корневым решением с открытым исходным кодом. С помощью этого инструмента вы можете повысить удобство использования своего устройства и максимально использовать его возможности. Это не только приложение для рутирования, оно также позволяет пользователю скрыть root от определенных приложений и, кроме того, дает возможность легко вводить дополнительные функции в ОС Android. Если вы установите новый Magisk Manager, вы можете просто обновить Magisk из приложения-менеджера.
Спасибо признанному разработчику XDA Topjohnwu который является разработчиком и сопровождающим этого популярного приложения для рутирования.
Помнить,
- После рутирования это может привести к аннулированию гарантии на ваш телефон.
- Получение root-прав заблокирует обновления OTA
Прежде чем перейти к этапам мигания, вам необходимо выполнить несколько,
Предварительные требования
- Убедитесь, что в вашем телефоне достаточно заряда аккумулятора, чтобы не прерывать установку патча.
- Перед выполнением любых изменений сделайте резервную копию данных вашего устройства.
- Это руководство предназначено исключительно для устройств под управлением MediaTek. Не используйте его на любом другом процессоре устройства, таком как Snapdragon, Spreadtrum и т. Д.
- Для подключения необходим ПК / ноутбук с кабелем micro USB.
- Убедитесь, что вы загрузили все необходимые файлы на свой компьютер / ноутбук.
Требуемые загрузки:
- Скачать ADB и Fastboot файлы. ( Windows / MAC )
- Загрузить и установить USB-драйверы для Android .
- Загрузите последнюю версию стандартного ПЗУ для вашего устройства
- Загрузить и установить Инструмент SP Flash на вашем ПК
Отказ от ответственности: мы в GetDroidTips не несем ответственности за какие-либо поломки / повреждения вашего телефона во время / после установки этого ПЗУ.
Как извлечь и исправить Boot.image с помощью Magisk?
- Прежде всего, загрузите и извлеките ПЗУ на свой компьютер.
- Подключите устройство через USB-кабель и скопируйте только файл boot.img из извлеченной папки в хранилище устройства.
- Запустите Magisk Manager. Когда появится всплывающее окно с просьбой установить Magisk, выберите УСТАНОВИТЬ и снова выберите установку.
- Нажмите на «Исправить файл образа загрузки».

- Перейдите во внутреннюю память и выберите загрузочный образ вашего телефона, который вы передали ранее.
- Подождите пару секунд. Magisk начнет патчить загрузочный образ.
- После исправления загрузочного образа скопируйте «patched_boot.img» из внутреннего хранилища и замените его в той же папке извлеченного ПЗУ на вашем ПК.
Теперь вы можете выполнить второй шаг, чтобы прошить исправленный файл образа загрузки.
Как установить исправленный загрузочный образ на устройство MediaTek
- Установите SP Flash tool на свой компьютер и запустите исполняемый файл flash tool.

- После загрузки инструмента SP Flash вы увидите экран с изображением мобильного устройства. Теперь нажмите на загрузку меню (см. Снимок экрана ниже).

- Теперь во вкладке загрузки вы найдете опцию Загрузить агент и скаттер загрузку, теперь нажмите на Download Agent и MTK_AllInOneDA.bin (он находится внутри папки SP Flashtool -> SP_MDT)

- На той же вкладке нажмите меню загрузки Scatter и загрузите файл Scatter, который находится внутри распакованного zip-архива Stock ROM. (Если вы распаковали, вы найдете файл с именем MT6xxx_Android_scatter.txt) — MTxxxx здесь xxxx — номер процессора MediaTek

- Теперь загрузите MT6xxx_Android_scatter.txt файл
- После загрузки не забудьте снять галочки со всех файлов, кроме bootimg.

- Теперь щелкните Скачать кнопка

- Теперь, чтобы начать процесс перепрошивки, вы должны извлечь аккумулятор (только если аккумулятор снимается или выключен). Вставьте снова, удерживайте кнопку уменьшения громкости и Нажмите кнопку увеличения громкости вместе и подключите телефон к ПК / ноутбуку с помощью USB-кабеля (удерживайте кнопку уменьшения и увеличения громкости, пока компьютер не обнаружит Телефон.)
- Как только телефон подключится, начнется мигание, подождите несколько минут или две.
- После завершения прошивки вы увидите зеленую кнопку.

- Теперь вы можете закрыть SP Flash Tool, а также отключить телефон и перезагрузить компьютер, чтобы убедиться, что ваше устройство успешно рутировалось.
- Это оно! Теперь у вас должно быть рутированное устройство.
В некоторых случаях, если указанный выше метод не работает на вашем устройстве MediaTek, попробуйте использовать метод быстрой загрузки ADB.
- После извлечения средства быстрой загрузки ADB необходимо переместить исправленный загрузочный образ в ту же папку. Удерживая нажатой клавишу SHIFT, щелкните правой кнопкой мыши, чтобы открыть командное окно / PowerShell.
- Выполните следующую команду в открытой командной строке.
- Загрузите «patched_boot.img», чтобы установить Magisk и получить root-права на Android-устройстве:
- Для устройств с системой разделов A / B используйте следующие команды:
Пожалуйста, замените [patched_boot.img] именем загруженного файла образа загрузки, за которым следует расширение .img.
Как проверить, есть ли у вашего телефона бессистемный рут?
- Загрузите и установите Приложение Magisk Manager APK и запустите его.
- Чтобы убедиться, что у вас бессистемный root-доступ, проверьте верхнюю часть экрана, и если вы видите all с зеленой галочкой, что означает, что вы успешно внедрили SafteyNet и обошли его.
Ну это все. Теперь, когда вы рутировали свое устройство MediaTek. Если у вас есть какие-либо вопросы по этому поводу, дайте нам знать.
Я автор технического контента и блогер на полную ставку. Поскольку я люблю Android и устройства Google, я начал свою карьеру с написания статей для ОС Android и их функций. Это привело меня к запуску «GetDroidTips». Я получил степень магистра делового администрирования в университете Мангалор, штат Карнатака.