Прощиваем android телефоны на базе MT65xx в Linux

Каждый раз когда необходимо было перепрошить телефон или рутировать, я перезагружался в Windows и думал, когда же наступит день года можно будет перепрошить телефон из Linux, и вот этот день настал. Теперь можно перепрошивать android устройства из linux. Как и древние времена без бубна и танцев перепрошика не обходиться.

Прошивать будем девайсы на базе процессоров MT65xx компании MediaTek(MTK) с помощью утилитки SPFlashTool. Откуда взялась утилитка, для меня остается загадка, подозреваю что это официальная тулза. Качать ее будем с неизвестного мне сайта http://mtk2000.ucoz.ru/, именно на него ссылаются большая часть рунет сайтов по мобильника.

Первым делам создаем правила для udev. Кладем файл 51-android.rules в /lib/udev/rules.d/51-android.rules ( подробности в репах https://github.com/M0Rf30/android-udev-rules и https://github.com/snowdream/51-android ).

Удаляем modemmanager, иначе будет появляться сообщение об ошибке: BROM ERROR : S_UNDEFINED_ERROR (1001)

sudo apt-get remove modemmanager

Перечитаем правила:

sudo udevadm control --reload-rules

Но если вы вдруг пользуетесь "USB modems and ISDN adapters", то сделайте:

sudo modprobe cdc_acm

В общем все подробности здесь больше негде не нашел.

Устанавливаем ADB и Fastboot.

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot

Качаем SPFlashTool for Linux v5.1524.00.100 и распаковываем в свою папочку. Разрешаем запускать:

chmod a+x flash_tool
В принципе и все, теперь надо найти на 4pda.ru то что будем шить ( ну или подсмотреть статейку Заливка recovery или 100% root для android ) и далее:
  • Запускаем flash_tool из под рута! ( обязательно, группой dialout здесь не обойтись )
  • Выбираем файл scarlet убираем галку preload (причина и не только) жмем Download
  • Выключаем телефон, вытаскиваем батарею, ждем 1-2 секунды, вставляем батарею, подключаем usb кабель
  • Процесс должен прошиваться.

Если что-то пошло не так то проверяем:

При подключении телефона к usb должен появляться файл: /dev/ttyACM0 , появляется он всего на 2 секунды, поэтому советую сдалать это командой:

watch -n 1 ls /dev/ttyACM0

В kern.log при подключении, должно появляться что-то типа:

$ tail -f /var/log/kern.log
usb 3-2: New USB device found, idVendor=0e8d, idProduct=2000
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-2: Product: MT65xx Preloader
usb 3-2: Manufacturer: MediaTek
cdc_acm 3-2:1.1: ttyACM0: USB ACM device

Через пару секунд:

usb 3-2: USB disconnect, device number 9

Дело в том что MTK preload появляется на пару секунд, и поэтому надо чтобы SPFlashTool был запущен. Если запускать spflashtool не из под root, то устройство пропадает, если все сделано правильно, когда нажата кнопка Download устройство ttyACM0 не будет удалено.