Дата 04.06.2007,Время 14:46 |
Сообщение № 1 |
Caporegime
Группа:Администратор
Телефон:
Прошивка:Walkman 49r
Кол-во сообщений: 1001
Уровень репутации: 20
Бывает, с нашими моторолками случается такое, что им уже ничего не помогает. Это случается если у вас "сломалась" flash-память, в которой хранится прошивка и вся остальная "программная начинка" телефона. Против этого не помогает ПРАКТИЧЕСКИ НИЧЕГО - ни один из описанных на Мотофане способов не помог мне, ВКЛЮЧАЯ ТЕСТПОИНТ! Но, однако, я придумал один прием, с помощью которого можно поднять телефон ДАЖЕ С УБИТОЙ flash-памятью(дальше просто флешкой)! И с помощью этого приема был поднят мой телефон с убитой флешкой. Симптомы: - Ramldr при стирании выкидывает ERR Г - MFF и PST не прошивают ничего, а только сообщают об ошибках и частично очищают память тела Для того, чтобы восстановить телефон, нам понадобится следующее: - Труп телефона с убитой флешкой - 1 шт. - Бэкап этого же телефона в рабочем состоянии - 1 шт. - Заряженная батарейка - чем больше, тем лучше или питание от USB - датакабеля - Программа Ramldr by Vilko (ramldr.exe) - 1 шт. - Загрузчик к проге Ramldr (ldr_*.bin) - 1 шт. - Любой нормальнай HEX-редактор (я пользуюсь XVI32) - 1 шт. - Руки - чем прямее, тем лучше - 2 шт. На самом деле, сама починка не так уж трудна, но тут есть одно противопоказание: Если ячейки убитой флешки приходятся на критические для прошивки участки, то у нас ничего не выйдет У меня, к счастью, запоролся только ДРМ Итак, план наших действий: п0. ТП (можно без него, это на всякий случай: есть гарантия - не делайте) п1. Поиск сломанных ячеек п2. Деление бэкапа на куски п3. Финальнай этап восстановления п3а. Создание своих ldr_part*.bin'ов п3б. Стирание и восстановление кусков бэкапа п0. Как сделать ТП я объяснять не буду, думаю, вы без труда найдете соответствующие статьи на Мотофане. п1. Поиск сломанных ячеек. Берем ldr_*.bin, открываем его hex редактором, "прыгаем" (в XVI32 - [Ctrl]+[G]) на адрес F8 (это начало стираемой памяти), ставим значение 10 00 00 00 (4 байта подряд) То же самое проделываем с адресом FC, только байты там будут: 12 00 00 00. Сохраняем файл. Коннектим телефон, загоняем в бут, в ramldr нажимаем send ramldr -> и выбираем наш измененный ldr_*.bin(далее просто ldr) Когда увидите err: берете и делите область стирания (10 00 00 00 - 12 00 00 00) на два равных участка, и изменяете ldr в соответствии с полученными адресами, чтоб было понятнее, вот пример: Исходная область: 10 00 00 00 - 12 00 00 00 1 участок: 10 00 00 00 - 10 FF FF FF 2 участок: 11 00 00 00 - 12 00 00 00 И таким образом, можно найти "сломанные адреса", для этого нужно довольно много раз делить ошибочную область пополам и пропускать области где все стирается как надо. п2. Деление бэкапа на куски. Так, с ячейками мы разобрались, теперь пора "порвать" бэкап. Подсказка: адрес 10 00 00 00 в телефоне соответствует адресу 00 00 00 00 в бэкапе, и и так для всего бэкапа. (Прим.: "начало ошибок" - начало сбойного блока памяти, "конец ошибок" - соответственно, конец такого блока). Резать его надо так: 1 часть - от адреса 00 00 00 00 (10 00 00 00) до адреса ([начало ошибок] - 10 00 00 00), называем файл part1.bin 2 часть - от адреса ([конец ошибок] - 10 00 00 00) до адреса 02 00 00 00 (12 00 00 00), называем файл part2.bin Все вычисления с hex - числами можете проводить в стандартнои виндовом калькуляторе calc.exe, только поставьте "Вид"->"Инженерный" и "Режим"->"HEX" Я не исключаю, что частей может быть больше (все зависит от того, как вы сломали вашу флешку ) п3. Финальнай этап восстановления п3а. Создание своих ldr_part*.bin'ов Теперь мы должны создать ldr'ы, с помощью которых мы будем лить наш бэкап "кусками" Делаем несколько копий нашего файла ldr и теперь называем их так (это надо только для удобства): ldr_part1.bin ldr_part2.bin и если надо делайте еще ldr'ы, мне же надо было только 2 Адреса пишем так: 1). В ldr_part1.bin по адресу F8 пишем 10 00 00 00, а по FC - [начало ошибок] 2). В ldr_part2.bin по F8 - [конец ошибок], а по FC - 12 00 00 00 п3б. Стирание и восстановление кусков бэкапа. Мы имеем на руках несколько ldr_part'ов, теперь запускаем ramldr, подключаем наш труп, загоняем его во флешмод, отправляем ("Send Ramldr") файл ldr_part1.bin, нажимаем "erase", ждем ACK ERASE, вводим в "base addr" число "10000000", нажимаем "send binary" и отправляем в телефон part1.bin, потом перезагружаем тел Аналогично поступаем с ldr_part2.bin/part2.bin, а потом пытаемя включить телефон. Если убитый блок был некритичен, то все у нас заработает! Создатель этого Фака писал что после воскрешения его тел работает ТОЛЬКО с ramldr'ом во флеш-режиме, т.к. официальнай софт вызовет стирание его памяти
MotOAdmiN | |
|
| |