Судя по характеристикам, внутри устройства с высокой вероятностью находится платформа от модели CT48
Предыстория
Купил в Малайзии ТСД Urovo DT40 Pro, в российских интернет-магазинах они также продаются. На нем нужно было поставить определенный софт. Как оказалось, устройство не было в списке интегрированных этого софта, и работа сканера была неполноценна – только режим клавиатуры (ввод в поле), что очень омрачало. Скажете сам виноват – раз купил устройство не из списка интегрированных и будете правы. Подкупило название модели — DT40 Pro, так как в списке разработчика софта есть DT40, то решил, что версия Pro и подавно будет работать. Конечно же служба поддержки от Urovo и софта тут в праве не помогать и пожелали всего наилучшего. И так появилась задача как-то подружить это устройство и софт, посредством написания приложения посредника (будет отдельная статья). Вот для чего нам понадобился Root.
Введение
Терминалы сбора данных (ТСД) — это не смартфоны. Производители корпоративного оборудования, такие как Urovo, стараются намертво закрывать систему: нет открытых прошивок, а Fastboot ведёт себя нестандартно, нет мануалов.
Первоначально, до начала операции рутирования, было собрано и проанализировано довольно много различных логов устройства через ADB, для выявления его начинки, процессора, типа и методов работы встроенного сканера.
В этой статье — полный, проверенный на личном опыте мануал — до загрузки системы с правами суперпользователя.
P.S.: Всё описанное аннулирует гарантию и может превратить устройство в «кирпич». Автор не несёт ответственности за ваши действия. Всё, что вы делаете, — на свой страх и риск. Процедура проводилась 1 раз.
Что потребуется
Железо:
-
Urovo DT40 Pro (в системе определяется как CT48) с Android 12 с заряженной батареей
-
Компьютер с Windows 10/11
-
Кабель USB Type-C для передачи данных
Софт (детальные руководства по установке найдете в сети):
-
ADB (Platform Tools): Скачать с developer.android.com и распаковать в «c:\platform-tools»
-
Python 3.9+: Скачать с python.org. При установке обязательно отметить галочку «Add Python to PATH»
-
MTK Client: Скачать с github.com/bkerler/mtkclient и распаковать в «c:\mtkclient» (Нужно установить необходимые библиотеки командой: pip3 install -r requirements.txt)
-
UsbDk: Скачать с GitHub и установить
-
MediaTek USB VCOM драйвер: Скачать из каталога обновлений Microsoft
-
Magisk APK: Скачать со страницы релизов последнюю стабильную версию (например, Magisk-v30.7.apk)
Этап 1: Подготовка
Шаг 1. Активация режима разработчика
-
На ТСД открываем «Настройки» — «О телефоне».
-
7 раз нажимаем на «Номер сборки».
-
Появляется меню «Для разработчиков».
Шаг 2. Включение завoдской разблокировки
-
Заходим в «Для разработчиков».
-
Находим пункт «Заводская разблокировка» и включаем его. «Заводская разблокировка» — это лишь разрешение на разблокировку загрузчика. Сам загрузчик пока ещё заблокирован.
-
Там же включаем «Отладка по USB».
Этап 2: Разблокировка загрузчика (Bootloader)
Шаг 1. Вход в Fastboot через ADB, не стал искать комбинации кнопок:
Подключаем ТСД к ПК, открываем командную строку и переходим в «c:\platform-tools» и вводим команду:
adb reboot bootloader
ТСД перезагружается, внизу экрана горит «=> FASTBOOT mode…».
Шаг 2. Установка драйверов MediaTek
-
На ПК открываем «Диспетчер устройств».
-
Находим устройство с VID «0E8D» и PID «201C» — оно будет в разделе «Другие устройства» с восклицательным знаком.
-
Правый клик и обновляем драйвер с папки, куда его предварительно скачали.
Шаг 3. Проверка связи командой в командной строке:
fastboot devices
Должен отобразиться серийный номер устройства и слово «fastboot».
На всякий случай проверим действительно ли заблокирован Загрузчик:
fastboot getvar unlocked
Вывод «unlocked: no» — загрузчик заблокирован. Будем разблокировать.
Шаг 4. Разблокировка
Вводим команду в командной строке:
fastboot flashing unlock
На экране ТСД появится предупреждение о сбросе данных. Подтверждаем: с помощью кнопкой Vol+ (она же «Вверх») на клавиатуре или кнопкой сканирования/питания. После подтверждения начнётся сброс до заводских настроек.
Процесс занимает до минуты. В логах ПК появится сообщение «OKAY».
Шаг 5. Перезагрузка
Принудительно перезагружаем кнопкой питания или командой:
fastboot reboot
Первая загрузка после сброса может занять 5–10 минут — это нормально.
Этап 3: Извлечение заводского boot.img через MTK Client
Стоковых прошивок Urovo в открытом доступе нет. К счастью, boot-образ можно снять напрямую с устройства благодаря особенностям чипов MediaTek.
Шаг 1. Установка MTK Client и UsbDk из скачанного ранее установщика.
После установки не забываем загрузить зависимости:
Откройте командную строку (cmd) и перейдите в папку с распакованным архивом:
cd c:\mtkclient
Выполните команду для установки необходимых библиотек:
pip3 install -r requirements.txt
Шаг 2. Чтение boot_a раздела
Устройство использует разметку A/B, поэтому будем читать активный слот «_a».
1. Полностью выключаем ТСД (зажать кнопку питания на 15–20 секунд). Экран должен быть чёрным.
2. В командной строке в папке «c:\mtkclient» выполняем:
python mtk.py r boot_a boot_a.img
MTK Client переходит в ожидание: «Waiting for PreLoader VCOM…»
3. На выключенном ТСД зажимаем Vol+ (она же «Вверх») на клавиатуре и, удерживая её, подключаем USB-кабель. Экран остаётся тёмным.
4. MTK Client обнаруживает устройство, обходит защиту и начинает чтение. Прогресс-бар дойдёт до 100%, и в папке появится файл «boot_a.img».
Примечание: На всякий случай сохраните и образ vbmeta_a:
python mtk.py r vbmeta_a vbmeta_a.img
Он может пригодиться, если система откажется загружаться с модифицированным boot.
Этап 4: Патчинг boot-образа в Magisk
1. Устанавливаем скачанный APK Magisk на ТСД.
2. Копируем «boot_a.img» из папки «c:\mtkclient» во внутреннюю память устройства.
3. Открываем Magisk. В карточке «Magisk» нажимаем «Установить» — «Выбрать и исправить файл».
4. Выбираем скопированный «boot_a.img». Начинается процесс патчинга.
5. После завершения в той же папке появляется файл с именем вида:
magisk_patched_v30.7_XXXXX.img
Именно его мы и будем прошивать обратно.
Этап 5: Прошивка пропатченного ядра
1. Копируем «magisk_patched_v30.7_XXXXX.img» с ТСД обратно в папку «c:\mtkclient».
2. Полностью выключаем ТСД.
3. В командной строке (в папке «c:\mtkclient») выполняем:
python mtk.py w boot_a magisk_patched_v30.7_XXXXX.img
4. Повторяем процедуру входа в BROM: Vol+ (она же «Вверх») на клавиатуре и подключение USB на выключенном устройстве.
5. MTK Client записывает образ в раздел «boot_a». В логах: «Wrote magisk_patched… to sector…».
Этап 6: Перезагрузка и проверка
1. Перезагружаем ТСД:
python mtk.py reset
Или долгим удержанием кнопки питания.
2. Ждём загрузки системы (может быть дольше обычного).
3. Проверяем root. Подключаем ТСД к ПК (с включённой отладкой по USB) и выполняем:
adb shell
su
Если появится запрос на предоставление прав в Magisk на самом ТСД — предоставьте. Если приглашение командной строки сменится с $ на # — root активен. Если увидите ошибку Permission denied — root не получен.
В приложении Magisk также будет отображаться статус «Installed: 30.7».
Возможные проблемы и их решение
«Device is protected. Auth file is required»
Нормальное поведение MTK Client — утилита автоматически обходит защиту с помощью Kamakiri, накатной на payload mt6765_payload.bin. Это не ошибка, ничего не трогаем, процесс идёт дальше.
«Error: Couldn’t detect partition: boot»
Ваше устройство использует схему A/B. Читать нужно boot_a или boot_b, а не boot. Список доступных разделов MTK Client выводит перед ошибкой — проверьте, какой именно слот активен.
ТСД не загружается после прошивки
1. Не паникуем.
2. Снова входим в BROM и прошиваем оригинальный “boot_a.img” обратно:
python mtk.py w boot_a boot_a.img
3. Если не помогло — прошейте сохранённый vbmeta_a.img обратно.
Попадание в китайское Factory Mode вместо BROM
ТСД был не полностью выключен. Выбираем последний пункт 重启手机, даём загрузиться Android, выключаем снова (зажатием на 15–20 секунд) и повторяем процедуру.
Заключение
Мы успешно получили root на корпоративном терминале Urovo DT40 Pro (CT48) с Android 12, на котором стандартные методы не работали. Ключевые моменты:
-
Загрузчик разблокирован альтернативной командой «fastboot flashing unlock»
-
Boot-образ снят с помощью MTK Client в обход закрытой системы
-
Ядро пропатчено в Magisk и прошито обратно через низкоуровневый доступ BROM
-
Root активен и работает стабильно
ссылка на оригинал статьи https://habr.com/ru/articles/1039388/