Восстановление Motorola телефоны с убитой Flash-память.
Бывает, с нашими моторолками случается такое, что им уже ничего не помогает. Это случается если у вас "сломалась" 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 F3 FF FF - 10 F6 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 блок ошибок) Адреса пишем так: 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, потом перезагружаем тел (мне пришлось делать это вручную, с помощью вытаскивания аккума и замыкания 4 и 5 контактов) Аналогично поступаем с ldr_part2.bin/part2.bin, а потом пытаемя включить телефон. Если убитый блок был некритичен, то все у нас заработает! Таким способом, повторюсь, уже был восстановлен (лучше сказать "воскрешен") мой телефон, и теперь он 100% рабочий, только он теперь работает ТОЛЬКО с ramldr'ом во флеш-режиме, т.к. официальнай софт вызовет стирание его памяти
Да, я возможно ошибся насчет своих адресов, но какое это имеет значение, у вас все равно они будут другие. Прикладываю сюда свою немного недоработанную программу Backup Codec Tool, которая хоть как-то, возможно, поможет вам в нашем нелегком МОТОРОЛЬНОМ деле. Если что непонятно в инструкции, задавайте вопросы. С ув., Fusion. YOMOTO! Качайте, восстанавливайте, радуйтесь жизни!