Главная Форум Статьи Файлы F.A.Q.

Последние активные темы форума

 
3G Modem Manager & Alcatel (2) 04.03.24 15:04 euvgagsdf
Huawei E3131 (11) 28.01.24 09:28 haidarsho_olimov
RE: Восстановление модемов с помощью Z_Flasher-Reanimator_modem v-05 «NEW_RAW_RELEASE». ч2 (149) 12.07.23 16:19 Pavel82
ZTE mf 190 (1052) 26.03.22 07:30 sergey67
   
Модемы Alcatel (178) 14.01.22 15:45 Konst
ZTE MF112 (617) 27.11.21 20:54 gaivor74
пробуем разобраться с j-link и модемами (134) 18.06.21 14:38 slav
Лаборатория по реанимации (207) 29.05.21 07:58 turon
 

Профиль

   
Логин: Пароль: Забыли пароль?Регистрация
Восстановление модемов с помощью Z_Flasher-Reanimator_modem v-05 «NEW_RAW_RELEASE»
Форум > Работа с JTAG > Восстановление модемов с помощью Z_Flasher-Reanimator_modem v-05 «NEW_RAW_RELEASE»

Страницы:
Автор Сообщение
 okt9i6pehok
Большая деревня
сообщений: 80
#901 Дата 03 июн 2014 12:29
sergey67, доброго времени суток
Пересчитываю, и переписываю.
Файл RawFull_E1550_Unlocked.bin, взят с Вашего сайта.
Модем Huawei E1550 128 mb. Мои битые блоки: C5, 19e.
C5 попадает в зону EFS2. Адрес начала блока C5: C5 x 20FFF + C5 = 1965000; адрес конца блока C5: 1965000 + 20FFF = 1985FFF.
Последний блок зоны EFS2 - блок F4, так как следующая зона MMC начинается с блока F5, см. X-Parser.
Адрес начала блока F4: F4 x 20FFF + F4 = 1F74000; адрес конца блока F4: 1F74000 + 20FFF = 1F94FFF.
Открываем RawFull_E1550_Unlocked.bin в Winhex, находим начальный адрес блока F4 ( 1F74000 ) - нажимаем иконку стрелки, вверху ( Go To Offset), вводим 1F74000 в окно New position, нажимаем Ok, переходим в начало блока F4, смотрим чтобы блок был пустой (везде должны стоять FF FF FF ...) до конечного адреса блока F4 ( 1F94FFF ), просто нажимаю стрелку на клавиатуре. Последний блок F4 зоны EFS2 оказался не пустым - заполнен всякими знаками, значениями, ищем пустые блоки после битого C5, я их нашел когда обратил внимание на экран при заливке в модем RawFull_E1550_Unlocked.bin (переименованного предварительно in_damp_raw.bin в папке с флешером zfrm-05a) командой C:\zfrm-05a\zfrm-05a.exe 0xc400 10 fss 0x0 0x3ff raw (запись быстрым способом с пропуском пустых блоков и raw методом). Пустыми блоками, в зоне EFS2 (с C5 до F4 включительно) были: EA; EB; EC.
Далее адреса этих блоков такие:
Адрес начала блока EA: EA x 20FFF + EA = 1E2A000; адрес конца блока EA: 1E2A000 + 20FFF = 1E4AFFF.
Адрес начала блока EB: EB x 20FFF + EB = 1E4B000; адрес конца блока EB: 1E4B000 + 20FFF = 1E6BFFF.
Адрес начала блока EC: EC x 20FFF + EC = 1E6C000; адрес конца блока EC: 1E6C000 + 20FFF = 1E8CFFF.
Извиняюсь, что поправил Вашу методику по моему должно быть так. Хотя начальные адреса можно считать и так ка Вы мне раньше показали (адрес начала блока EA: EA x 21000 = 1E2A000).
В качестве пустого блока выбираю например EA (Мало ли чего может еще понадобятся блоки EB и EC. Если я правильно понял, то этот блок EA удаляем, а на его место вставляем вновь созданный нулевой блок). Проверяю в Winhex на наличие пустоты (FF FF FF ...) в блоке EA (адреса от 1E2A000 до 1E4AFFF), а лучше от EA до EC включительно (адреса от 1E2A000 до 1E8CFFF). Сделал просмотр стрелками от EA до EC, а также Go To Offset (иконка стрелка) по адресам начала и конца каждого из блоков EA, EB, EC, и обнаружил, что блок EC не пустой (всякие значения, знаки) - сюрприз. Принимаю в качестве пустого EA (адреса от 1E2A000 до 1E4AFFF).
Отрезаю кусок RawFull_E1550_Unlocked.bin до блока C5 (адрес начального значения 1965000) в Winhex: Edit > Define Block > появляется окно, заполняю верхнюю строчку _ 0 _ нижнюю _ 1964FFF _ (где 1964FFF = 1965000-1) > жму Ok. Далее Edit > Copy Block > Into New File > окно Save File As > Do_c5.bin (вбиваю расширение bin) > сохранить (как Вы и предлагали чтобы не запутаться). Появилась вкладка Do_c5.bin. Далее создаю нулевой блок. Открываю вкладку RawFull_E1550_Unlocked.bin снова последовательно Edit > Define Block > появляется окно, заполняю верхнюю строчку _ 0 _ нижнюю _ 20FFF _ (где 20FFF конечный адрес нулевого блока) > жму Ok. Далее Edit > Copy Block > Into New File > окно Save File As > block 00_.bin (вбиваю расширение bin) > сохранить. Редактирую промежуточный нулевой блок, ставлю курсор на ноль в таблице, потом в menu Edit > Paste Zero Bytes > ввожу значение _ 135168 _ ( 21000 в HEX = 135168 в DEC на калькуляторе ), появляются везде нули и выделение до адреса 21000, далее Edit > Copy Block > Into New File > окно Save File As > block 00.bin (вбиваю расширение bin) > сохранить.
Вуаля все блок заполнен нулями, промежуточный файл с подчеркиванием просто потом удаляю, не знаю по научному ли это ))).
Или так menu File > New > 135168 bytes > File > Save As > block 00.bin > сохранить. Так наверное проще.

Отредактировано: sergey67 05 июн 2014 01:05
 okt9i6pehok
Большая деревня
сообщений: 80
#902 Дата 03 июн 2014 12:55
sergey67, Чего дальше делать я в Winhex - е ни бум бум
 sergey67
администратор
Санкт Петербург
сообщений: 2166
#903 Дата 03 июн 2014 13:30
okt9i6pehok, Теперь надо удалить пустой блок из зоны EFS2 ( я когда редактировал фулл для Е173 , то было проще .... пустые блоки были в конце и я просто отрезал последний блок ) ..... Можно сделать так :
Отрезать фулл до ЕА -1 ( сохранить с понятным названием ) ...... отрезать фулл от ЕВ до конца ( если не ошибаюсь 83FFFFF ) - сохранить ....
Сделайте пока это .... потом мы их склеим и получим фулл без блока ЕА .....
 okt9i6pehok
Большая деревня
сообщений: 80
#904 Дата 03 июн 2014 14:17
sergey67, Понятно, конечно было бы проще вырезать известную область, а потом вставить туда я так понимаю нулевой блок, наверное есть такая функция, потом разберусь может быть, значит так отрезаем в файле RawFull_E1550_Unlocked.bin все до блока EA, перед ним стоит блок E9, его конечный адрес будет 1E2A000 - 1 = 1E29FFF (где 1E2A000 = EA x 21000 - адрес начала блока EA), в Winhex: menu Edit > Define Block > появляется окно, заполняю верхнюю строчку _ 0 _ нижнюю _ 1E29FFF _ (где 1E29FFF = 1E2A000-1) > жму Ok. Далее Edit > Copy Block > Into New File > окно Save File As > Do_EA.bin (вбиваю расширение bin) > сохранить. Далее отрежем файл RawFull_E1550_Unlocked.bin с блока следующего за тем который мы хотим удалить, до конца, другими словами удалим потом пустой блок EA, а за ним следует блок EB, адрес начала блока EB: EB x 21000 = 1E4B000, адрес конца файла RawFull_E1550_Unlocked.bin (блок 3ff) 3ff x 21000 + 20FFF = 83FFFFF, в Winhex: menu Edit > Define Block > появляется окно, заполняю верхнюю строчку _ 1E4B000 _ нижнюю _ 83FFFFF _ > жму Ok. Далее Edit > Copy Block > Into New File > окно Save File As > EB_do_END.bin (вбиваю расширение bin) > сохранить. Получили 2 файла Do_EA.bin и EB_do_END.bin.

Отредактировано: okt9i6pehok 03 июн 2014 14:39
 okt9i6pehok
Большая деревня
сообщений: 80
#905 Дата 03 июн 2014 14:27
sergey67, Суть в чем заменить N битых блоков на N нулевых блоков, а также поставить N нулевых блоков на место N пустых, после N битых , (смотря как эти N битые блоки идут последовательно или через какие то интервалы), при чем эти N пустые блоки не должны выходить за сектор в котором находятся N битые блоки (т. е. количество битых блоков в секторе должно быть меньше или равно количеству пустых блоков), сектора определяет X-Parser, при этом необходимо убрать N пустых блоков в секторе, а не за сектором, чтобы сохранить общий flash (memory) файла и целостность секторов, я правильно понимаю?

По моему понял как действовать: сначала открываем файл Do_c5.bin потом в него вставляю block 00.bin потом из файла Do_EA.bin делаю C6 _do EA.bin, его вставляю в Do_c5.bin после вставленного block 00.bin, опять вставляю файл block 00.bin и в конце тоже последовательно прибавляю EB_do_END.bin, сохраняю, тем самым получаю файл в котором на месте битого блока стоит нулевой блок к тому же на месте пустого блока тоже стоит нулевой блок, так? И блок 19E с немного другими манипуляциями на десерт.

Отредактировано: okt9i6pehok 03 июн 2014 16:51
 sergey67
администратор
Санкт Петербург
сообщений: 2166
#906 Дата 03 июн 2014 16:48
okt9i6pehok, Не совсем понял .... вообще на руках нужно иметь кусок фулла до С5 , так же нужно иметь фулл без ЕА , от фулла без ЕА нужно отрезать кусок начиная с С5 и до конца ... затем склеиваем .... кусок до С5 ... после него добавляем блок с нулями и добавляем остаток с С5 и до конца ( тот , что без ЕА ) ... после склеивания фулл должен получится полный ( 83FFFFF ) ..... т.е. вместо битого блока у Вас будет нулевой блок ....
 okt9i6pehok
Большая деревня
сообщений: 80
#907 Дата 03 июн 2014 16:58
sergey67 ща разберусь про конечный адрес понятно в качестве проверки склеивания
 sergey67
администратор
Санкт Петербург
сообщений: 2166
#908 Дата 03 июн 2014 16:59
okt9i6pehok, Склеивать то знаете как ?
 okt9i6pehok
Большая деревня
сообщений: 80
#909 Дата 03 июн 2014 17:26
sergey67, неа но догадываюсь пока только теоретически CTRL+C, CTRL+V по крайней мере такие команды в Winhex есть, есть еще CTRL+B по ходу запись на выделенное, а CTRL+V со сдвигом вправо.
Короче делаю так файл Do_EA.bin переделываю в C5_Do_EA.bin, потом склейка:
Do_c5.bin + block 00.bin + C5_Do_EA.bin + EB_do_END.bin (последовательно все через CTRL+C, CTRL+V)
в файле Do_c5.bin блока с5 нет;
в файле C5_Do_EA.bin блока EA нет;
в файле EB_do_END.bin последний блок 3ff есть;

Отредактировано: okt9i6pehok 03 июн 2014 17:27
 sergey67
администратор
Санкт Петербург
сообщений: 2166
#910 Дата 03 июн 2014 17:38
okt9i6pehok, Ну основу Вы знаете .... с начала откройте нулевой блок .... Ctrl + A ( выделение ) .... Ctrl + C ( копирование в буфер обмена ) .... переходите к Do_C5.bin .... жмёте Ctrl + End ( курсор переместиться в низ ) .... жмём Ctrl + V .... отвечаем = ОК = ( если спросит ) - два кусочка склеились .... с остальными аналогично .... если всё правильно то получите полный фулл .... в конце нужно будет сохранить фулл через Seve As ( желательно в отдельной папке ) .... потом проверьте ... на месте С5 должен стоять нулевой блок ....
Страницы:
Перейти на другой форум:
Сайт управляется SiNG cms © 2010-2015