Сообщение от Kosachoff
|
Если я правильно понял, существует возможность
разбудить выключенный телефон SIEMENS по
COM - соединению. Скажите пожалуйста, как
это делается (AT-команды или что-то другое)
и где про это посмотреть
|
Я этой ценной информацией разжился на "телесистемах". Где-то рядом с этим:
http://www.telesys.ru/wwwboards/mobi...ges/3836.shtml
============= Цитата оттуда: ===================
Три рабочих варианта включения 55-ой серии Siemens:
1. Для обычного включения можно и не пользовать “загрузчик”, а просто послать пять байт “0x05,0x02,0x07,0x06,0x0C” на 57600 Baud после подачи “сигнала зарядки” или в “выключенном режиме” во время “индикации зарядки”. Эти байты в протоколе BFB обозначают “нажатие кнопки ON/OFF”. Но данный протокол не имеет подтверждений выполнения и синхронизации и потому не всегда стабилен.
2. После подачи “сигнала зарядки” Siemens телефоны запускают кусок кода из Flash именуемый “загрузчиком”. Код встроенного “загрузчика” не очень большой и достаточно простой для дизассемблирования. В нем CPU, перебирая все возможные обозначенные скорости приема последовательного порта, ожидает приема кода 0x55. Приняв и распознав код 0x55, телефон передает “OK”= 0xA0 и некоторое время ожидает прием блока кода (Boot-а) начиная с байта размера этого блока. Принимая этот код, 55-ая серия телефонов сверяет его с одной из двух таблиц в зависимости от типа Boot блока, побайтно, кроме пары байт шифрующих саму команду. И если все байты загрузчика совпадают с таблицей – только тогда и происходит запуск этого загруженного кода. Такую дополнительную защиту Siemens применил только с 55-ой серии, тем самым доступ к чтению/записи Flash и другие фичи в этих телефонах долго не поддавались “хакерам-кракерам” и были не доступны общественности в Инет. Но загрузчик имеет ошибку – при указании длины принимаемого блока равной нулю происходит неограниченная в размере загрузка блока в банке памяти. А через 512 байт с адреса начала заливки блока в памяти (0x00FA00) отображены регистры процессора (0x00FC00 - туда торчит указатель CP). Для загрузки любого собственного boot кода используют метод непосредственного перехвата – т.е. создают свой начальный блок кода до 512 байт (внимание в конце стек CPU !) ( добивают его любым дерьмом до 512), а далее подставляют коды для регистров процессора при которых он выходит из процедуры загрузки с выставленными флагами проверки на оригинальность и СRC блока. К примеру (возможны и другие комбинации) в последовательности подгрузки “r0= 0xFС00; r1= 0; r2= 0xFC10; r3= 0; r4= 4, CRC = 4” (далее не треба). Т.е. при загрузке такого блока, после 512 байт, процессор непосредственно и последовательно прописывает свои регистры кодами из последовательного порта и после 529-го ему становиться хорошо и он передает “OK” = 0xA0 и запускает ваш код
![Ну ты даешь](images/smilies/icon_wink2.gif)
Это свойство и стали использовать (и я это тоже альтернативно нашел, но был уже не первым
![Ну ты даешь](images/smilies/icon_wink2.gif)
) Исследуя далее прошиву, я нашел минимальный (полностью совместимый с стандартными) код для “Обычного” запуска 55-ой серии: “mov r0,#0202h mov word_F600,r0 srst “.
В бинарном виде:
0000: E6 F0 02 02 F6 F0 00 F6 B7 48 B7 B7
Далее любая чешуя до 512 байтной границы…
0200: 00 FC 00 00 00 00 00 00 10 FC 00 00 00 00 04 00
0210: 04 .
3. Но можно использовать и “стандартный” Boot, для загрузки в режим BFB протокола, а далее переключайте как кому больше нравится
![Ну ты даешь](images/smilies/icon_wink2.gif)
“Стандартных” Boot-ов у Siemens 2 шт: – один имеет код длиной 104 байта, второй содержит надпись “SIEMENS BOOT PARAMETER:” Лежат в прошиве S55V20 по адресам 0x802C80 и 0x802CE4 …
Данные протоколы запуска ‘2’ и ‘3’, через “загрузчик”, имеет запросно-ответный интерфейс и работают наиболее стабильно.
===============================================
И там же был ответ:
›› Кстати по 1-му варианту: в ответ на 0x05,0x02,0x07,0x06,0x0C телефон все-таки отвечает 0x05,0x01,0x04,0x06
===============================================
Если ссылка, которую я дал, протухла, то, думаю, стоит поискать "телесисовским" поиском какую-нибудь фразу из этого текста.