Как получить root на Urovo DT40 Pro (CT48): Android 12 (Проверено на практике)

от автора

Судя по характеристикам, внутри устройства с высокой вероятностью находится платформа от модели 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. Активация режима разработчика

  1. На ТСД открываем «Настройки» — «О телефоне».

  2. 7 раз нажимаем на «Номер сборки».

  3. Появляется меню «Для разработчиков».

Шаг 2. Включение завoдской разблокировки

  1. Заходим в «Для разработчиков».

  2. Находим пункт «Заводская разблокировка» и включаем его. «Заводская разблокировка» — это лишь разрешение на разблокировку загрузчика. Сам загрузчик пока ещё заблокирован.

  3. Там же включаем «Отладка по USB».

Этап 2: Разблокировка загрузчика (Bootloader)

Шаг 1. Вход в Fastboot через ADB, не стал искать комбинации кнопок:

Подключаем ТСД к ПК, открываем командную строку и переходим в «c:\platform-tools» и вводим команду:

adb reboot bootloader

ТСД перезагружается, внизу экрана горит «=> FASTBOOT mode…».

 Шаг 2. Установка драйверов MediaTek

  1. На ПК открываем «Диспетчер устройств».

  2. Находим устройство с VID «0E8D» и PID «201C» — оно будет в разделе «Другие устройства» с восклицательным знаком.

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

 Шаг 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/