majsky Признанный телефонист В миру: Максим Откуда: Kharkiv, UA, djuice С нами с: 26.02.2004 Плодовитость: 525
Предупреждения: Рейтинг
Подано 58 (48/10) голосов
|
С55:восстановление ОРИГИНАЛЬНОГО 71го блока!
|
Так как ниже изложенная информация была размещена не в соответствующей теме и найти её без наводки весьма проблематично - я решил открыть для неё отдельную тему. Полезной я её считаю не только из-за того, что она просвещает, но и потому, что лично я "пропатчил" стой телефон ява энаблером еще до того как узнал о сименс-клубе и оригинального 71го блока у меня не осталось, как я думал ранее (а неоригинальный 71й блок может вызывать различные глюки...). По инструкции я восстановил СВОЙ ОРИГИНАЛЬНЫЙ 71й блок из СВОЕГО ЕЕПРОМа и далее уже внёс соответствующие изменения программой Siemens Service Profiler (SSP) для оператора "Any operator". ИМХО, это самый оптимальный (быстрый и безопасный) вариант патчения 71го блока!
Если кто не согласен или имеет свои способы/идеи - высказывайтесь здесь!
Собственно, ниже инструкция (2 поста с другой темы):
Однажды, а именно 20/12/2003 в 19:35 0xFEDF написал здесь следующее:
Цитата:
Для экспериментов с 71-м блоком рекомендую заглянуть сюда. Если потом останутся вопросы, могу помочь восстановить твой самый что ни на есть ОРИГИНАЛЬНЫЙ 71-й блок из твоего же EEPROM
И пост немного позже:
Значит, смотри. Сливаешь через Freia свой EEPROM, для C55 ровно 393216 байт, или 128кб*3 (кстати, Freia пишет и читает из телефона именно блоками по 128кб, а то вот на днях заливал туда кое-какие патчи через нее (почему именно так - не скажу), и размерчик заливаемого куска флэша оказался кратен 64кб. Так вот, последний-то блок 128кб в телефоне она стерла, а вот залить - ни-ни.. Ладно, лирическое отступление окончено). В EEPROM от C55 с адреса 0x20000, в M55 - c 0x10000 (здесь и далее - адреса в HEX) лежит таблица дескрипторов блоков EELITE, к которым и относится искомый 71-й блок. Но расположена она в сторону УМЕНЬШЕНИЯ адресов. Каждый ее элемент равен 12 (0x0C в hex) байтам. Возьмем первый элемент моего EEPROM от C55, по адресу 0x1FFF4 видим следующее:
FC 03 40 00 20 00 FA 00 03 00 00 FC
FC - признак начала дескриптора
03 - версия описываемого дескриптором блока
40 00 = 0x0040 - размер блока, здесь 64 байт
20 00 = 0x0020 - смещение блока от начала файла EEPROM
FA 00 - вроде одинаково во всех блоках, в M55-м здесь FC 00
03 00 = 0x0003 = 3 (десятичный) - номер блока
00 - пока не знаю, не удивлюсь, если здесь выставляется признак запрета записи блока
FC - признак конца дескриптора, всегда равен первому байту - признаку начала дескриптора
К чему это все? А вот к чему: оказывается, в телефоне блоки EEPROM при перезаписи их, например, через программу Siemens Quick EEPROM Features НЕ СТИРАЮТСЯ(!!!) Просто в соответствующем дескрипторе этого блока первый и последний байты (которые FC) заменяются на F0, после чего в конец таблицы дескрипторов блоков вновится запись о новом блоке, а сам блок записывается в свободное место, не занятое никакими другими, ПУСТЬ ДАЖЕ СТЕРТЫМИ(!!!) блоками, которое начинается для C55 с адреса 0x0020 (практически с начала файла, полученного при сохранении EEPROM через Freia). Поэтому твой телефон хранит ВСЕ копии 71-го блока, которые в него были записаны с момента его изготовления. То есть, переходим на адрес 0x20000 для C55 или 0x10000 для M55 (начало таблицы дескрипторов блоков), устанавливаем направление поиска "назад" и ищем цепочку байтов FA 00 47 00 (FC 00 - для M55), где 0x0047=71 - номер блока. Их будет несколько, самая первая, а также, по всей видимости, и вторая, будут принадлежать дескрипторам, указывающим на оригинальные 71-е блоки. Далее, два байта перед найденными будут указывать на блок, а еще два байта перед ними - это его размер. Размер оригинального 71-го блока - 250=0xFA байт, SQEF пишет в телефон на 2 нулевых байта больше, так что длина такого блока будет равна 252=0xFC байт. По утверждению самого SkyLord'а, так не было задумано, а просто это ошибка используемого им компилятора (надо бы, конечно, это как-то исправить). Так вот, только что сравнил через Siemens Service Profiler 1.1 свой оригинальный и записываемый через SQEF блоки: побайтово они, конечно, различаются, а вот для оператора FFF-FF различий НЕТ! (Что наводит на вполне определенные мысли по поводу различных сообщений о глюках с телефонами после применения к ним SQEF).
P.S. Для снятия EEPROM с M55 использовал M55 Tool.
P.P.S. Все, больше не буду это сообщение переделывать! |
____________________________
Везет - смелым!.. |
|