Поигрался немного с чтением/записью прошивок и решил поделиться своими наблюдениями.
Телефон: Sciphone i9+++, BBCHIP: "MT6225_S00", EXT_26M. NOR: (256M+64M), "[ST] M25PPR256J". Версия прошивки: BUILD: TG01_V6.1.0-v7.0-GC0307.
Кабель для прошивки собрал сам из старого сименсовского кабеля на основе микрухи PL2303HX. Небольшое описание здесь:
.
Используемый софт:
- Flashtool_v3.0952.00. На форуме для этих телефонов советуют использовать Спайдермена, но я перепробовал много версий и один только раз получилось слить прошивку версией SpiderMan 2.55_china, поэтому весь основной обзор построен на основе Flashtool_v3.0952.00.
- Сниффер СОМ-порта: Portmon.
Для начала решил выявить наиболее приемлемую скорость считывания прошивки. Прежде чем проводить тесты, изучим матчасть, так сказать

, и проверим какие скорости мы можем себе позволить.
Телефон: заходим в настройки (сразу замечу, что приведенные коды могут не пойти на Вашем телефоне): *#3333# -> Устройство -> Установка UART -> UART Setting -> Настройка PS: Можем выбрать следующие значения: Авто, 75, 150, 300, 600, 1200, 2400, 4800, 7200, 9600, 14400, 19200, 28800, 33900, 38400, 57600, 115200, 230400, 460800. Забегая вперед, скажу, что для основной части тестов здесь была выбрана скорость 115200, и лишь для проверки скорости 460800 выбирал здесь такую же скорость, но никакого ощутимого результата это не принесло.
Кабель: как я уже говорил, кабель на основе микросхемы PL2303HX, которая может поддерживать следующие скорости (
- здесь я не нашел, извиняюсь

, вот здесь
):
Table 8-2 Baud Rate Settings
Baud Rates
(bps) (bps) (bps) (bps) (bps)
6000000 614400 38400 7200 1200
3000000 460800 28800 4800 600
2457600 230400 19200 3600 300
1228800 115200 14400 2400 150
921600 57600 9600 1800 75
Драйвер USB -> COM. Пробовал ставить различный драйверы: драйвер, который шел вместе с кабелем (очень древний драйвер); пробовал ставить вот этот:
; пробовал и вот этот PL-2303_patched by Chaos
в описани которого говорится «This is a driver for PL-2303 data cables, patched by Chaos to support speeds up to 1625000 bps.», хотя я в настройках СОМ-порта с этими драйверами не видел скорости выше 128000 bps
Ну да ладно, дальше мы увидим как скорость СОМ-порта реально конфигурится софтом и, вроде бы, работает на заявленной скорости.
К сожалению, второй раз провести опыт на скорости 460800 не удалось, Флэштул упорно отказывался работать на этой скорости
Итак, суть тестов сводилась к следующему: запускался ФлэшТул на считывание прошивки с различными настройками скорости СОМ-порта и ФлэшТулом же оценивалась реальная скорость считывания, благо она выдает и количество байт реально скачанных и время скачивания.
Вот результаты измерения скорости:
Аккум до: 4.19 В Включал-питанием (питание не отключал во время чтения).
COM-Port 9600 FlashTool 38400 Средняя скорость = 3.616 кБ/сек
31578112 byte S_FT_READBACK_FAIL (4010)
94 % прочтено Время: 145:34 сек Аккум после: 4.03 В
COM-Port 9600 FlashTool 57600 Средняя скорость = 5.270 кБ/сек
Включал кнопкой а не питанием. Аккум. заряжен полностью (4.15 В)
31578112 byte S_FT_READBACK_FAIL (4010) 0.10130701
94% прочтено Время: 99:52 сек Аккум после: 4.04 В
Аккум до: 4.17 В
COM-Port 9600 FlashTool 115200 Средняя скорость = 8.746 кБ/сек
20368384 byte S_FT_READBACK_FAIL (4010)
60 % прочтено Время: 38:49 сек Аккум после: 4.11 В
50 таймаутов, затем прерывание связи:
0.10129025 Flash_tool.exe IRP_MJ_READ ProlificSerial2 TIMEOUT Length 0:
......
0.10129025 Flash_tool.exe IRP_MJ_READ ProlificSerial2 TIMEOUT Length 0:
0.10128634 Flash_tool.exe IRP_MJ_READ ProlificSerial2 TIMEOUT Length 0:
0.03009852 Flash_tool.exe IRP_MJ_CLEANUP ProlificSerial2 SUCCESS
0.03652196 Flash_tool.exe IRP_MJ_CLOSE ProlificSerial2 SUCCESS
Аккум до: 4.15 В
COM-Port 9600 FlashTool 230400 Средняя скорость = 14.797 кБ/сек
24311808 byte S_FT_READBACK_FAIL (4010)
72% прочтено Время: 27:23 сек Аккум после: 4.12 В
COM-Port 9600 FlashTool 460800 Средняя скорость = 11.262 кБ/сек
8187904 byte S_FT_READBACK_FAIL (4010)
24% за 12:07 сек
Кстати, заметил, что основная масса ошибок возникала при напряжении аккумулятора меньше 4,05 В. В самом же начале тестов пробовал считать прошивку с напряжением аккумулятора 3,89 В – Флэштул даже не мог установить соединение с телефоном и падал в ошибку. Так что – прошивка с полностью заряженным аккумулятором – залог успеха
В итоге мы получили вот такой график скоростей:
Анализируя логи Portmon можно сказать, что на скорости 57600 практически не наблюдалось таймаутов считывания прошивки, на скорости 115200 – небольшое их количество, при увеличении скорости до 230400 количество таймаутов выросло вдвое, при скорости же 460800 мы видим как из-за них резко падает скорость считывания.
Подводя итоги можно сказать что для данного телефона оптимальными скоростями считывания будет 230400 bps, для прошивки – 57600 или 115200 bps.