Flash mode - режим работы телефона, в котором невозможна связь с сетью, так как линейный процессор ждет обновления прошивки.
MBM - загрузчик с красным экраном, через который работают мотороловские утилиты прошивки.
Gen-blob - загрузчик openezx, обладающий большим набором возможностей, чем MBM. Шьется вместо ядра linux, умеет грузить ядро с карты памяти и с usb без перевода в flash mode, умеет шить произвольные адреса флеша.
Boot-usb - утилита для работы с загрузчиками MBM и gen-blob с большой машины.
Последние версии ядра openezx можно запустить только через gen-blob. Сам gen-blob может работать в двух вариантах: прошитым по адресу 0xa0800 вместо ядра или запущенным по usb через mbm. Во втором случае линейный процессор уже переведен в flash mode и работа с сетью будет невозможна после загрузки ядра, но для прошивки этого достаточно.
Gen-blob обрабатывает нажатия на кнопки vol+ и vol- (левая сторона устройства). Если во время его запуска зажата vol+, он переходит в режим USB (как MBM) и ждет управляющих комманд от boot-usb. Если зажата vol-, он показывает boot menu с возможностью выбора разных ядер с карты.
Чтобы прошить файл в память телефона по определенному адресу, нужно сделать три вещи:
- Каким-то образом запустить gen-blob
- Во время запуска зажать vol+
- Послать адрес и данные через boot-usb
Рассматриваем подробнее:
Самый простой способ запустить gen-blob - запусть через MBM. Для этого нужно выполнить такие действия:
- Полностью выключить телефон
- Включить с переводом в flash mode - зажатой кнопкой голосового меню (нижняя на правой стороне)
- Дать от пользователя root команду boot_usb gen-blob на большой машине. При этом boot_usb должен находиться в PATH (или вызваться по полному пути), а файл gen-blob должен быть в текущем каталоге
После того, как на экране появилось сообщение о готовности принимать команды по USB, можно работать из boot_usb с gen-blob.
Простой пример: прошивка файла по адресу 655360. boot_usb flash 655360 mtd.
Небольшое уточнение по поводу прошивки ядра: чтобы прошить ядро или gen-blob по адресу 0xa0800, нужно создать временный файл размером 0x800, заполненный нулями: dd if=/dev/zero of=/tmp/mtd bs=2048 count=1, после чего дописать в его конец нужные данные: cat gen-blob >> /tmp/mtd и после этого, прошить файл по адресу 0xa0000, а не 0xa0800.
ps. пребуются добровольцы для описания этого в вики
upd: не 0xa800 а 0xa0800
>upd: не 0xa800 а 0xa0800
ОтветитьУдалитьэто где надо заменить по тексту?
зы:помоему можна так и преренести в вики статью :)
А как боротся с такими ошибками?
ОтветитьУдалитьFAILED: claim usb interface 0 of device: could not claim interface 0: Device or resource busy
>FAILED: claim usb interface 0 of device: could not claim interface 0: Device or resource busy
ОтветитьУдалитьнайти, кто еще открыл устройство и сказать, чтоб закрыл