ConsoleFiX
Администратор
![maxresdefault.jpg maxresdefault.jpg](https://consolefix.ru/forum/data/attachments/0/547-0120e6ccfa86f8b152be7ec1e5c0ecac.jpg?hash=ASDmzPqG-L)
Этот способ позволит узнать на каком этапе загрузки зависла приставка в BLOD.
Здесь также будем обсуждать ошибки загрузки и их решения.
Примерная инструкция, кто шарит быстро поймет.
Всё делается на свой страх и риск!
Требования:
1) Отладочная плата Teensy++ 2.0 или берите другой считыватель например CH341A Programmer
2) каретка под QFN8
3) Программа
BwE PS4 NOR Validator для активации UART
4) Терминал типа HyperTerminal или Arduino IDE
![cxd90042gg.jpg cxd90042gg.jpg](https://consolefix.ru/forum/data/attachments/1/1250-bfa951a77a106b1143d9086647affc39.jpg?hash=v6lRp3oQax)
1) Отладочная плата Teensy++ 2.0 или берите другой считыватель например CH341A Programmer
2) каретка под QFN8
3) Программа
![download :download: :download:](/forum/data/assets/smilies/downloads.gif)
4) Терминал типа HyperTerminal или Arduino IDE
![cxd90042gg.jpg cxd90042gg.jpg](https://consolefix.ru/forum/data/attachments/1/1250-bfa951a77a106b1143d9086647affc39.jpg?hash=v6lRp3oQax)
1. Отпаиваем SPI flash и подключаем к своему сокету. Подключаем это чудо к Teensy++ 2.0 или CH341, как обычную флешку
2. Считываем дамп прошивки 2 раза!
в програме HxD сверяем дампы на идентичность и сохраняем в надежное место!
3. в программе BwE проверяем дамп с помощью Validate. если присутствуют сектора WARNING, не продолжаем, криво считалось.
![2081383027.png 2081383027.png](https://consolefix.ru/forum/data/attachments/0/545-6a15621319488e24c07cd12ac509dfc7.jpg?hash=ahViExlIji)
пример нормального дампа
![123.png 123.png](https://consolefix.ru/forum/data/attachments/0/546-61d993ca349f8d1a50905638b81689f4.jpg?hash=YdmTyjSfjR)
4. Активируем Uart. Enable\Disabled UART or IDU Mode > Enable\Disable UART > Enable\1
5. Дамп с активированым uart "uart_disabled.bin" зашиваем во флешку с проверкой
6. Возвращаем SPI память обратно в приставку и подключаемся к UART
(два провода RX и GND).
TX – режим передатчика
RX – режим приемника
GND — Земля, минус.
На каждых рисунках по разному рисуют RX/TX.
Вот пример для СЛИМ.
Здесь надо подключить к RX вашему USB-UART
Вот пример для ФАТ.
![300px-Nvg-002-triangle.jpg 300px-Nvg-002-triangle.jpg](https://consolefix.ru/forum/data/attachments/1/1594-e00c92e53c9dc63a6a8c99e219dbd19e.jpg?hash=4AyS5Tydxj)
![uart.jpg uart.jpg](https://consolefix.ru/forum/data/attachments/0/592-dffb74ebd73b72af026195ecc38d2402.jpg?hash=3_t069c7cq)
![67c3d05faf625e47a548746f47d79382.png 67c3d05faf625e47a548746f47d79382.png](https://consolefix.ru/forum/data/attachments/1/1595-b6150f63353d95d53c57ab8e0fd348bd.jpg?hash=thUPYzU9ld)
а здесь нарисован TX0 к вашему RX (приставка передает — TX, а преобразователь принимает — RX)
Именно по этой линии будут идти информационные сообщения загрузки secure loader-a.
9. Настройки терминала:
Скорость: 115200, Биты 8, Без четности, Стоповые 1, Без управления потока
Включаем приставку, и видим сообщение на котором встал BLOD,
если у вас сразу тухнет приставка и нет сообщений, значит надо :
1)проверить процессор на короткое замыкание
для фат ~16ом
для слим ~1.2ом
для про ~0.7ом
2)подключаться к Mediacon-у у него другая линия (обычно рядом), смотреть через JaiBrute2 командами errlog 0 , errlog 1 и т.д. но расшифровки этих цифр нет нигде, только у меня несколько экспериментальных , например проблема с питанием 80810011
3) сделать реболл процессора так как, либо процессор неисправен, либо отвал /дефект в пайке.
Если: приставка включается, но нет никакой информации в терминале, - либо неисправен хаб либо плохо припаян, делайте реболл.
https://cloud.mail.ru/public/TAcs/Q2vFCwEa8![mail :mail: :mail:](/forum/data/assets/smilies/mail.png)
Примеры ошибок
secure loader build: Mar 19 2019 05:31:18 (r9884:release_branches/release_06.510) [711MHz]
AGESA: KG&CN.BDK W8C24
ERROR: DCT[0] is disabled
ERROR: DCT[1] is disabled
ERROR: DCT[2] is disabled
ERROR: DCT[3] is disabled
ERROR: DCT[4] is disabled
ERROR: DCT[5] is disabled
ERROR: DCT[6] is disabled
ERROR: DCT[7] is disabled
![SAA-001-small.jpg SAA-001-small.jpg](https://consolefix.ru/forum/data/attachments/0/235-aab5211e413bbb0f942d1c204609e2cf.jpg?hash=qrUhHkE7uw)
1) при отвале проца по линиям озу, решается реболом проца
2) При физическом отвале оперативной памяти
Моё мнение: Память работает парами, чтобы узнать какая именно отвалилась, можно попробовать ее прогреть до 150с, или сразу снять пару. сразу скажу SAMSUNG то еще говно, отваливается и сдыхает очень часто, а вот Micron намного лучше. Обычно, меняют сразу все банки. т.к. из за разности времени обновления HC-28 или HC-25 и тем более фирм могут быть проблемы с загрузкой системы (выхода из BLOD).
Запуск фатки до прогрева
[ERROR]: AmdInitSecure 0x5 и сразу отрубается или повисает в BLOD при замыкании информационной линии от Mediacon до APU.
также само ,ребол проца
А после прогрева
ERROR: main.c:ecdsaVeriP224(1509) EcDsaVeri -1 -
ERROR: main.c:main(3196) Invalid idpsCert
или ошибка как выше
то нужно менять память
ERROR: getManufacturingMode(1627) sceSblSnvsRecvSector -36
ERROR: main(3724) getManufacturingMode -36
Здесь очень просто, чужой SYSCON
ERROR: sceSblSlLoadSelfWithVerifiedHeader(171) sceSblCfVeriLoadSegment -36
ERROR: loadBios(2174) sceSblSlLoadSelf -8
ERROR: main(4065) loadBios -8 (здесь 4065 меняется в зависимости от версии ПО)
1) такая ошибка появилась при сгоревшем южном мосте ,а его смерти был виноват Panasonic, что был в коротком замыкании
2)Очень страшная ошибка говорящая скорее всего о повреждении раздела CoreOS, (приставку вырубили во время записи или обновления) если у вас нет рабочего дампа, скорее всего труп. Пока сам решаю данную проблему.
Даже перенос связки на другую плату НЕ ПОМОЖЕТ. Проблема именно в связке.
надо проверить SPI флешку с помощью BwE_PS4_NOR_Validator, может что покажет.
3)После считывания SYSCON-а через SYSGLITCH (Teensy++ 2.0)
выяснил следующее:
Прошивка SYSCON-а расположена по адресам 0x00000 - 0x5ffff для разных ревизий своя прошивка.
Уникальные данные расположены по адресам 0x60000 - 0x7ffff
Сравнивая рабочую SAE-004 и дохлую SAF-003 данной ошибкой.
адреса 0x00000 - 0x5ffff - идентичны
0x60000 - 0x7ffff - расхождения
на SAE-004 много уникальной информации, а на дохлой SAF-003 почти всё забито FF
есть информация для анализа.
GET_HDMI_STATE FAILED
нет связи гнезда с Panasonic. при этом будет белый огонь.
Еслим меняли панасоник - непропай
Или обрыв дросселей, или нет 5V hdmi на предохранителе
или обломан порт
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/S5OauRNF_oY.jpg?resize=506%2C600)
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/SPIway.jpg?resize=800%2C436)
2. Считываем дамп прошивки 2 раза!
в програме HxD сверяем дампы на идентичность и сохраняем в надежное место!
3. в программе BwE проверяем дамп с помощью Validate. если присутствуют сектора WARNING, не продолжаем, криво считалось.
![2081383027.png 2081383027.png](https://consolefix.ru/forum/data/attachments/0/545-6a15621319488e24c07cd12ac509dfc7.jpg?hash=ahViExlIji)
пример нормального дампа
![123.png 123.png](https://consolefix.ru/forum/data/attachments/0/546-61d993ca349f8d1a50905638b81689f4.jpg?hash=YdmTyjSfjR)
4. Активируем Uart. Enable\Disabled UART or IDU Mode > Enable\Disable UART > Enable\1
5. Дамп с активированым uart "uart_disabled.bin" зашиваем во флешку с проверкой
6. Возвращаем SPI память обратно в приставку и подключаемся к UART
(два провода RX и GND).
TX – режим передатчика
RX – режим приемника
GND — Земля, минус.
На каждых рисунках по разному рисуют RX/TX.
Вот пример для СЛИМ.
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/D5vpITuW0AEkzWu.jpg?resize=800%2C470)
Здесь надо подключить к RX вашему USB-UART
Вот пример для ФАТ.
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/uarts12.jpg?resize=710%2C357)
![300px-Nvg-002-triangle.jpg 300px-Nvg-002-triangle.jpg](https://consolefix.ru/forum/data/attachments/1/1594-e00c92e53c9dc63a6a8c99e219dbd19e.jpg?hash=4AyS5Tydxj)
![uart.jpg uart.jpg](https://consolefix.ru/forum/data/attachments/0/592-dffb74ebd73b72af026195ecc38d2402.jpg?hash=3_t069c7cq)
![67c3d05faf625e47a548746f47d79382.png 67c3d05faf625e47a548746f47d79382.png](https://consolefix.ru/forum/data/attachments/1/1595-b6150f63353d95d53c57ab8e0fd348bd.jpg?hash=thUPYzU9ld)
а здесь нарисован TX0 к вашему RX (приставка передает — TX, а преобразователь принимает — RX)
Именно по этой линии будут идти информационные сообщения загрузки secure loader-a.
9. Настройки терминала:
Скорость: 115200, Биты 8, Без четности, Стоповые 1, Без управления потока
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/1-1-1.jpg?resize=673%2C600)
Включаем приставку, и видим сообщение на котором встал BLOD,
если у вас сразу тухнет приставка и нет сообщений, значит надо :
1)проверить процессор на короткое замыкание
для фат ~16ом
для слим ~1.2ом
для про ~0.7ом
2)подключаться к Mediacon-у у него другая линия (обычно рядом), смотреть через JaiBrute2 командами errlog 0 , errlog 1 и т.д. но расшифровки этих цифр нет нигде, только у меня несколько экспериментальных , например проблема с питанием 80810011
3) сделать реболл процессора так как, либо процессор неисправен, либо отвал /дефект в пайке.
Если: приставка включается, но нет никакой информации в терминале, - либо неисправен хаб либо плохо припаян, делайте реболл.
https://cloud.mail.ru/public/TAcs/Q2vFCwEa8
![mail :mail: :mail:](/forum/data/assets/smilies/mail.png)
![PS4: Активация UART для диагностики BLOD PS4: Активация UART для диагностики BLOD](https://consolefix.ru/wp-content/uploads/2021/01/SAD-001-1-981-279-21-bottom2-1.jpg?resize=800%2C600)
Примеры ошибок
secure loader build: Mar 19 2019 05:31:18 (r9884:release_branches/release_06.510) [711MHz]
AGESA: KG&CN.BDK W8C24
ERROR: DCT[0] is disabled
ERROR: DCT[1] is disabled
ERROR: DCT[2] is disabled
ERROR: DCT[3] is disabled
ERROR: DCT[4] is disabled
ERROR: DCT[5] is disabled
ERROR: DCT[6] is disabled
ERROR: DCT[7] is disabled
![SAA-001-small.jpg SAA-001-small.jpg](https://consolefix.ru/forum/data/attachments/0/235-aab5211e413bbb0f942d1c204609e2cf.jpg?hash=qrUhHkE7uw)
1) при отвале проца по линиям озу, решается реболом проца
2) При физическом отвале оперативной памяти
Моё мнение: Память работает парами, чтобы узнать какая именно отвалилась, можно попробовать ее прогреть до 150с, или сразу снять пару. сразу скажу SAMSUNG то еще говно, отваливается и сдыхает очень часто, а вот Micron намного лучше. Обычно, меняют сразу все банки. т.к. из за разности времени обновления HC-28 или HC-25 и тем более фирм могут быть проблемы с загрузкой системы (выхода из BLOD).
Запуск фатки до прогрева
[ERROR]: AmdInitSecure 0x5 и сразу отрубается или повисает в BLOD при замыкании информационной линии от Mediacon до APU.
также само ,ребол проца
А после прогрева
ERROR: main.c:ecdsaVeriP224(1509) EcDsaVeri -1 -
ERROR: main.c:main(3196) Invalid idpsCert
или ошибка как выше
то нужно менять память
ERROR: getManufacturingMode(1627) sceSblSnvsRecvSector -36
ERROR: main(3724) getManufacturingMode -36
Здесь очень просто, чужой SYSCON
ERROR: sceSblSlLoadSelfWithVerifiedHeader(171) sceSblCfVeriLoadSegment -36
ERROR: loadBios(2174) sceSblSlLoadSelf -8
ERROR: main(4065) loadBios -8 (здесь 4065 меняется в зависимости от версии ПО)
1) такая ошибка появилась при сгоревшем южном мосте ,а его смерти был виноват Panasonic, что был в коротком замыкании
2)Очень страшная ошибка говорящая скорее всего о повреждении раздела CoreOS, (приставку вырубили во время записи или обновления) если у вас нет рабочего дампа, скорее всего труп. Пока сам решаю данную проблему.
Даже перенос связки на другую плату НЕ ПОМОЖЕТ. Проблема именно в связке.
надо проверить SPI флешку с помощью BwE_PS4_NOR_Validator, может что покажет.
3)После считывания SYSCON-а через SYSGLITCH (Teensy++ 2.0)
выяснил следующее:
Прошивка SYSCON-а расположена по адресам 0x00000 - 0x5ffff для разных ревизий своя прошивка.
Уникальные данные расположены по адресам 0x60000 - 0x7ffff
Сравнивая рабочую SAE-004 и дохлую SAF-003 данной ошибкой.
адреса 0x00000 - 0x5ffff - идентичны
0x60000 - 0x7ffff - расхождения
на SAE-004 много уникальной информации, а на дохлой SAF-003 почти всё забито FF
есть информация для анализа.
GET_HDMI_STATE FAILED
нет связи гнезда с Panasonic. при этом будет белый огонь.
Еслим меняли панасоник - непропай
Или обрыв дросселей, или нет 5V hdmi на предохранителе
или обломан порт
Okas43
Недавно была пс4 про в ремонте после предыдущего сервиса. Изначальный симптом включалась на пару секунд и выключалось. оказалось ,что грели процессор и на нем полное короткое замыкание. Отреболил процессор, после стала уже по логам проходить инициализацию ,но стопорилось наERROR: sceSblSlLoadSelfWithVerifiedHeader(171) sceSblCfVeriLoadSegment -36
ERROR: loadBios(2174) sceSblSlLoadSelf -8
ERROR: main(4065) loadBios -8
диагностировав дальше ,оказалось что панасоник в полном коротком замыкании, прозванивая конденсаторы под ним. сняв панасоник ,ситуация не изменилась. эта ошибка ушла после замены южного моста. панасоник тоже заменил. в итоге, консоль стопорилась по логу GET_HDMI_STATE FAILED. решилось заменой предохранителя 5в возле панасоника, пропайки дросселей между портом и чипом и замены HDMI гнезда
Если при проверке дампа высянилось,что много блоков [DANGER] или [WARNING], то вот гайд по правке дампа:
1) Считанный дамп
2) Дамп такой же версии, но с рабочей приставки. Если дампа той же версии нет, то шансы резко падают
3)
BwE NOR Validator
4) Hex-редактор. Я предпочитаю
Hex Editor Neo или
Hex Editor HxD
Предыстория: в ремонт пришла приставка CUH-1003A, с симптомом – не включается. Диагностика показала отсутствие поступления напряжений ядра и графики на APU приставки. После снятия дампа и анализа с помощью BwE NOR Validator стало понятно, что с дампом не все так здорово и придется испытывать судьбу по ее восстановлению. Ситуацию осложняло то, что версия прошивки приставки была 1.62, в то время как уже повсеместно была доступна 9.03.
Анализ исходной ситуации.
В исходном состоянии было 2 критические ошибки (Danger), 8 предупреждений (Warning) и 1 несовпадение контрольной суммы в блоке с файловой системой с неопределенным содержимым (Unlisted). Что же проблема со стартом налицо, будем пробовать восстанавливать. Для перехода к дальнейшим шагам вам потребуется дамп такой же версии, но с рабочей приставки. Если дампа той же версии нет, то шансы резко падают, хоть и остаются ненулевыми.
В моем случае ситуацию осложняло то, что найти редкий и древний дамп версии 1.62 мне так и не удалось. Единственное, что было найдено более-менее близким, была версия 1.61Е. На основе работы с этими двумя дампами и будет строиться данный гайд.
NB! Следует запомнить, что наличие несколько Warning без непосредственно ошибок, вполне себе допустимо и не влияет на работоспособность консоли. Большинство проанализированных мной дампов прошивок имели по 2-3 предупреждения и прекрасно работали.
![1.png 1.png](https://consolefix.ru/forum/data/attachments/0/612-d27e4ed3e46ffdceba55a8a7b1b2dc7d.jpg?hash=0n5O0-Rv_c)
Перед разбором дампа, следует снять дамп несколько раз и проверить на различие по MD5, если различия есть, нужно снять так, чтобы различий не было (проверить контакты и прочее)
Понимание того, как устроена прошивка
Прежде чем идти дальше, рекомендую ознакомиться с главным источником информации о том, как устроено содержимое прошивки. Для этого лучше всего подойдет англоязычный ресурс www.psdevwiki.com и статься на нем Flash-Main (https://www.psdevwiki.com/ps4/Flash-Main). Для тех, кому не нужны подробности я опишу основные виды блоков в прошивке (согласно BwE NOR Validator):
- Static Section. Статическое содержимое, повторяющееся на всех консолях и их прошивках
- Dynamic Section. Изменяемое содержимое, в зависимости от версии прошивки, но не привязанное к конкретному экземпляру консоли
- Dynamic Section (Per console). Изменяемое содержимое, в зависимости от версии прошивки, и привязанное к конкретному экземпляру консоли. Иногда может повторяться в разных консолях, но с вероятностью 1 к 100, а то и меньше. Одна из самых паршивых ситуаций, если у вашей прошивки поврежден именно этот блок.
- SKU Ident. Идентификатор серии консоли (например, CUH-1xxx).
- Filler. Просто серия повторяющихся байтов, служащая заполнителем текущего блока до начала следующего. Как правило забито 0xFF.
- Прочие… их мы особо не рассматриваем, поскольку интерес они представляют в меньшей степени.
Также обратите внимание, что перед типом блока указывается его класс:
- SCE (SONY Computer Entertainment)
- SLB (область загрузчика)
- CID (область Сonsole ID, специфичная для каждой приставки и крайне критическая, тут же находится микрокод для различных устройств, того же BT или WiFi)
- UNK (область пока неизвестного назначения)
- VTRM (Virtual Table Rights Management). Этот блок отвечает за работу с защищенным контентом и за шифрование. Содержит счетчик активаций консоли. Тоже крайне критическая область.
- CoreOS (ядро системы). Уязвимая часть, содержит в себе уникальные для определённой версии прошивки блоки, поддается восстановлению, в т.ч. автоматическому через программу BwE NOR Validator.
Как несложно догадаться из описания выше, статические блоки, просто динамические а так же уникальные для конкретной версии прошивки можно брать с прошивок-образцов практически безболезненно. Филлеры можно просто самому заполнить значением 0xFF, а вот все, что связано с уникальными блоками на уровне экземпляра консоли, блока прав и шифрования вызовет у вас легкий зуд в районе пятой точки.
Исправление:
Первым в логе валидатора нам попадается блок со статусом [Unlisted]. Конкретно не сходится контрольная сумма по MD5 файла C0018001.bin:
C0010001.bin MD5: 6FCA0436441A1BCBFF497DC306EE8ADD [UNLISTED]
![2.png 2.png](https://consolefix.ru/forum/data/attachments/0/613-c5f707b48d4d92f9252033299283e17a.jpg?hash=xfcHtI1Nkv)
Поскольку он пока не сильно информативен и не понятна степень влияния на запуск, решено было пропустить данный блок и заняться остальными.
Следующим на пути у нас появляется рассадник, состоящий из критической ошибки и тройки предупреждений.
![3.png 3.png](https://consolefix.ru/forum/data/attachments/0/614-347e3fd3ea77344fc96d3c3cd7cbb6a4.jpg?hash=NH4_0-p3NE)
Повреждены блоки SKU Ident, CID Dynamic Filler, CID Filler, а также CID Dynamic Section. Самое время открыть Hex-редактор и приступить к сравнению обоих дампов. Используем для этого режим Tools – File Comparison – Compare Files…, после чего выбираем оригинальный битый дамп с приставки и дамп-образец. Дальше ставим синхронизацию окон и вертикальное разбиение:
![4.png 4.png](https://consolefix.ru/forum/data/attachments/0/615-acc25a58b59269426a11f883db11d4d9.jpg?hash=rMJaWLWSaU)
![5.png 5.png](https://consolefix.ru/forum/data/attachments/0/616-ff0611185f742b2255756ae87a0c660b.jpg?hash=_wYRGF90Ky)
В результате откроется такой вид окна и можно приступать дальше.
![6.png 6.png](https://consolefix.ru/forum/data/attachments/0/617-095dbeb4c7f0a8ed54a306d2107574b8.jpg?hash=CV2-tMfwqO)
Копируем из лога первый сбойный фрагмент: (B9290007FF070007FF0700030C040000000450DE) и ищем его в нашем битом дампе:
![7.png 7.png](https://consolefix.ru/forum/data/attachments/0/618-b28cc913e13ee6ac7f603158f90a4a93.jpg?hash=sozJE-E-5q)
Поиск привел нас к первому сбойному блоку, а HEX-редактор сразу подсвечивает разницу в содержимом дампов, делая процесс наглядным:
![8.png 8.png](https://consolefix.ru/forum/data/attachments/0/619-f3097bf5110650bd78ebe4444cef245f.jpg?hash=8wl79REGUL)
Тут же откроем лог обоих дампов чтобы понимать, какое содержимое должно было быть на месте ошибок и предупреждений (слева наш многострадальный дамп, справа – образец).
![9.png 9.png](https://consolefix.ru/forum/data/attachments/0/620-46830b662270a756eaa11bbc9dfd8764.jpg?hash=RoMLZiJwp1)
1. Обращаем внимание на то, что в нашем битом дампе повторяются циклично значения
50 de 2c bb, а первым вхождением данного мусора является блок
CID SKU Ident 25: B9290007FF070007FF0700030C040000000450DE [WARNING]
В первоисточнике же видно, что должно стоять 00 00 на конце SKU Ident 25, а потом должен идти Dynamic Filler 3.
Воспользуемся копированием и приведем блоки в идентичное состояние, поскольку они не являются уникальными.
![10.png 10.png](https://consolefix.ru/forum/data/attachments/0/621-b1951d884f68af427d033e8a5af4ecf0.jpg?hash=sZUdiE9or0)
2. Дальше идет динамическая секция с пометкой уникальности для конкретной консоли, но раз у нас блок поврежден и взять его неоткуда, то просто копируем с первоисточника (вдруг повезет?) и заодно «добиваем» очередной филлер с помощью 0xFF.
![11.png 11.png](https://consolefix.ru/forum/data/attachments/0/622-2e8f1af25edbb0d860d0f4bbc02326ad.jpg?hash=Lo8a8l7bsN)
Если на этом этапе все сохранить и сделать повторную валидацию битого дампа, то можно будет увидеть, что у нас ушел 1 Danger и Warning’и, а значит пока движемся в правильном направлении.
![12.png 12.png](https://consolefix.ru/forum/data/attachments/0/623-471e0d4fb72c10da930302817cebb292.jpg?hash=Rx4NT7csEN)
3. Следующим у нас идет битый блок CID Dynamic section 6. К сожалению, у нас он забит 0xFF и что туда писать – не понятно.
![13.png 13.png](https://consolefix.ru/forum/data/attachments/0/624-3e6e243015eba1b36fe55e2ef3febb5e.jpg?hash=Pm4kMBXrob)
Но тут нам на помощь приходит смекалка и можно попробовать найти такой же блок в дампе-образце, вдруг где-то есть повтор.
![14.png 14.png](https://consolefix.ru/forum/data/attachments/0/625-ab15078cdc4dee2f96b83e0b44be72c4.jpg?hash=qxUHjNxN7i)
Ищем по данной сигнатуре в дампе-образце возможное второе вхождение и натыкаемся на еще один такой же блок по адресу 0x001ce220 (первый был по 0x001c5220).
Бинго!
![15.png 15.png](https://consolefix.ru/forum/data/attachments/0/626-7c2fa2d10775a25161c700836b9015a5.jpg?hash=fC-i0Qd1ol)
Копируем указанный блок, начинающийся с 04 00 из этой секции в верхнюю по адресу 0x001c5220 и сохраняем. Еще один блок восстановлен!
![16.png 16.png](https://consolefix.ru/forum/data/attachments/0/627-6b9f577d64ec5488db2123c8a1cd3f4b.jpg?hash=a59XfWTsVI)
Смотрим в дамп-образец, а там всё забито 0xFF-ками. Недолго думая, делаем привычное дело – копируем блок.
![17.png 17.png](https://consolefix.ru/forum/data/attachments/0/628-2d4365f3334caf0abfdea4059f56e339.jpg?hash=LUNl8zNMrw)
5. И вот мы добрались до финальной ошибки и пары предупреждений.
![18.png 18.png](https://consolefix.ru/forum/data/attachments/0/629-434ef5c92a193f8f687c0287762f77e0.jpg?hash=Q071ySoZP4)
Снова повреждена динамическая секция, филлеры и еще одна динамическая секция. Но нам это уже чем-то знакомо. Точно! Нечто подобное было при восстановлении SKU из п.1! Меняем тут последние 2 байта с 50 DE на 00 00, копируем секцию, начинающуюся с 6b 00 и забиваем остатки филлером по образцу.
6. Делаем финальную валидацию, и смотрим на результат….
![19.png 19.png](https://consolefix.ru/forum/data/attachments/0/630-01461d40a91fdc41cd365fb40a97d3cf.jpg?hash=AUYdQKkf3E)
Отлично, пробуем прошиться! После прошивки нашего восстановленного дампа консоль ожила, дала старт и картинку.
Надеюсь, мой опыт будет кому-то полезен. Всем удачных ремонтов!
1) Считанный дамп
2) Дамп такой же версии, но с рабочей приставки. Если дампа той же версии нет, то шансы резко падают
3)
![download :download: :download:](/forum/data/assets/smilies/downloads.gif)
4) Hex-редактор. Я предпочитаю
![download :download: :download:](/forum/data/assets/smilies/downloads.gif)
![download :download: :download:](/forum/data/assets/smilies/downloads.gif)
Предыстория: в ремонт пришла приставка CUH-1003A, с симптомом – не включается. Диагностика показала отсутствие поступления напряжений ядра и графики на APU приставки. После снятия дампа и анализа с помощью BwE NOR Validator стало понятно, что с дампом не все так здорово и придется испытывать судьбу по ее восстановлению. Ситуацию осложняло то, что версия прошивки приставки была 1.62, в то время как уже повсеместно была доступна 9.03.
Анализ исходной ситуации.
В исходном состоянии было 2 критические ошибки (Danger), 8 предупреждений (Warning) и 1 несовпадение контрольной суммы в блоке с файловой системой с неопределенным содержимым (Unlisted). Что же проблема со стартом налицо, будем пробовать восстанавливать. Для перехода к дальнейшим шагам вам потребуется дамп такой же версии, но с рабочей приставки. Если дампа той же версии нет, то шансы резко падают, хоть и остаются ненулевыми.
В моем случае ситуацию осложняло то, что найти редкий и древний дамп версии 1.62 мне так и не удалось. Единственное, что было найдено более-менее близким, была версия 1.61Е. На основе работы с этими двумя дампами и будет строиться данный гайд.
NB! Следует запомнить, что наличие несколько Warning без непосредственно ошибок, вполне себе допустимо и не влияет на работоспособность консоли. Большинство проанализированных мной дампов прошивок имели по 2-3 предупреждения и прекрасно работали.
![1.png 1.png](https://consolefix.ru/forum/data/attachments/0/612-d27e4ed3e46ffdceba55a8a7b1b2dc7d.jpg?hash=0n5O0-Rv_c)
Перед разбором дампа, следует снять дамп несколько раз и проверить на различие по MD5, если различия есть, нужно снять так, чтобы различий не было (проверить контакты и прочее)
Понимание того, как устроена прошивка
Прежде чем идти дальше, рекомендую ознакомиться с главным источником информации о том, как устроено содержимое прошивки. Для этого лучше всего подойдет англоязычный ресурс www.psdevwiki.com и статься на нем Flash-Main (https://www.psdevwiki.com/ps4/Flash-Main). Для тех, кому не нужны подробности я опишу основные виды блоков в прошивке (согласно BwE NOR Validator):
- Static Section. Статическое содержимое, повторяющееся на всех консолях и их прошивках
- Dynamic Section. Изменяемое содержимое, в зависимости от версии прошивки, но не привязанное к конкретному экземпляру консоли
- Dynamic Section (Per console). Изменяемое содержимое, в зависимости от версии прошивки, и привязанное к конкретному экземпляру консоли. Иногда может повторяться в разных консолях, но с вероятностью 1 к 100, а то и меньше. Одна из самых паршивых ситуаций, если у вашей прошивки поврежден именно этот блок.
- SKU Ident. Идентификатор серии консоли (например, CUH-1xxx).
- Filler. Просто серия повторяющихся байтов, служащая заполнителем текущего блока до начала следующего. Как правило забито 0xFF.
- Прочие… их мы особо не рассматриваем, поскольку интерес они представляют в меньшей степени.
Также обратите внимание, что перед типом блока указывается его класс:
- SCE (SONY Computer Entertainment)
- SLB (область загрузчика)
- CID (область Сonsole ID, специфичная для каждой приставки и крайне критическая, тут же находится микрокод для различных устройств, того же BT или WiFi)
- UNK (область пока неизвестного назначения)
- VTRM (Virtual Table Rights Management). Этот блок отвечает за работу с защищенным контентом и за шифрование. Содержит счетчик активаций консоли. Тоже крайне критическая область.
- CoreOS (ядро системы). Уязвимая часть, содержит в себе уникальные для определённой версии прошивки блоки, поддается восстановлению, в т.ч. автоматическому через программу BwE NOR Validator.
Как несложно догадаться из описания выше, статические блоки, просто динамические а так же уникальные для конкретной версии прошивки можно брать с прошивок-образцов практически безболезненно. Филлеры можно просто самому заполнить значением 0xFF, а вот все, что связано с уникальными блоками на уровне экземпляра консоли, блока прав и шифрования вызовет у вас легкий зуд в районе пятой точки.
Исправление:
Первым в логе валидатора нам попадается блок со статусом [Unlisted]. Конкретно не сходится контрольная сумма по MD5 файла C0018001.bin:
C0010001.bin MD5: 6FCA0436441A1BCBFF497DC306EE8ADD [UNLISTED]
![2.png 2.png](https://consolefix.ru/forum/data/attachments/0/613-c5f707b48d4d92f9252033299283e17a.jpg?hash=xfcHtI1Nkv)
Поскольку он пока не сильно информативен и не понятна степень влияния на запуск, решено было пропустить данный блок и заняться остальными.
Следующим на пути у нас появляется рассадник, состоящий из критической ошибки и тройки предупреждений.
![3.png 3.png](https://consolefix.ru/forum/data/attachments/0/614-347e3fd3ea77344fc96d3c3cd7cbb6a4.jpg?hash=NH4_0-p3NE)
Повреждены блоки SKU Ident, CID Dynamic Filler, CID Filler, а также CID Dynamic Section. Самое время открыть Hex-редактор и приступить к сравнению обоих дампов. Используем для этого режим Tools – File Comparison – Compare Files…, после чего выбираем оригинальный битый дамп с приставки и дамп-образец. Дальше ставим синхронизацию окон и вертикальное разбиение:
![4.png 4.png](https://consolefix.ru/forum/data/attachments/0/615-acc25a58b59269426a11f883db11d4d9.jpg?hash=rMJaWLWSaU)
![5.png 5.png](https://consolefix.ru/forum/data/attachments/0/616-ff0611185f742b2255756ae87a0c660b.jpg?hash=_wYRGF90Ky)
В результате откроется такой вид окна и можно приступать дальше.
![6.png 6.png](https://consolefix.ru/forum/data/attachments/0/617-095dbeb4c7f0a8ed54a306d2107574b8.jpg?hash=CV2-tMfwqO)
Копируем из лога первый сбойный фрагмент: (B9290007FF070007FF0700030C040000000450DE) и ищем его в нашем битом дампе:
![7.png 7.png](https://consolefix.ru/forum/data/attachments/0/618-b28cc913e13ee6ac7f603158f90a4a93.jpg?hash=sozJE-E-5q)
Поиск привел нас к первому сбойному блоку, а HEX-редактор сразу подсвечивает разницу в содержимом дампов, делая процесс наглядным:
![8.png 8.png](https://consolefix.ru/forum/data/attachments/0/619-f3097bf5110650bd78ebe4444cef245f.jpg?hash=8wl79REGUL)
Тут же откроем лог обоих дампов чтобы понимать, какое содержимое должно было быть на месте ошибок и предупреждений (слева наш многострадальный дамп, справа – образец).
![9.png 9.png](https://consolefix.ru/forum/data/attachments/0/620-46830b662270a756eaa11bbc9dfd8764.jpg?hash=RoMLZiJwp1)
1. Обращаем внимание на то, что в нашем битом дампе повторяются циклично значения
50 de 2c bb, а первым вхождением данного мусора является блок
CID SKU Ident 25: B9290007FF070007FF0700030C040000000450DE [WARNING]
В первоисточнике же видно, что должно стоять 00 00 на конце SKU Ident 25, а потом должен идти Dynamic Filler 3.
Воспользуемся копированием и приведем блоки в идентичное состояние, поскольку они не являются уникальными.
![10.png 10.png](https://consolefix.ru/forum/data/attachments/0/621-b1951d884f68af427d033e8a5af4ecf0.jpg?hash=sZUdiE9or0)
2. Дальше идет динамическая секция с пометкой уникальности для конкретной консоли, но раз у нас блок поврежден и взять его неоткуда, то просто копируем с первоисточника (вдруг повезет?) и заодно «добиваем» очередной филлер с помощью 0xFF.
![11.png 11.png](https://consolefix.ru/forum/data/attachments/0/622-2e8f1af25edbb0d860d0f4bbc02326ad.jpg?hash=Lo8a8l7bsN)
Если на этом этапе все сохранить и сделать повторную валидацию битого дампа, то можно будет увидеть, что у нас ушел 1 Danger и Warning’и, а значит пока движемся в правильном направлении.
![12.png 12.png](https://consolefix.ru/forum/data/attachments/0/623-471e0d4fb72c10da930302817cebb292.jpg?hash=Rx4NT7csEN)
3. Следующим у нас идет битый блок CID Dynamic section 6. К сожалению, у нас он забит 0xFF и что туда писать – не понятно.
![13.png 13.png](https://consolefix.ru/forum/data/attachments/0/624-3e6e243015eba1b36fe55e2ef3febb5e.jpg?hash=Pm4kMBXrob)
Но тут нам на помощь приходит смекалка и можно попробовать найти такой же блок в дампе-образце, вдруг где-то есть повтор.
![14.png 14.png](https://consolefix.ru/forum/data/attachments/0/625-ab15078cdc4dee2f96b83e0b44be72c4.jpg?hash=qxUHjNxN7i)
Ищем по данной сигнатуре в дампе-образце возможное второе вхождение и натыкаемся на еще один такой же блок по адресу 0x001ce220 (первый был по 0x001c5220).
Бинго!
![15.png 15.png](https://consolefix.ru/forum/data/attachments/0/626-7c2fa2d10775a25161c700836b9015a5.jpg?hash=fC-i0Qd1ol)
Копируем указанный блок, начинающийся с 04 00 из этой секции в верхнюю по адресу 0x001c5220 и сохраняем. Еще один блок восстановлен!
![16.png 16.png](https://consolefix.ru/forum/data/attachments/0/627-6b9f577d64ec5488db2123c8a1cd3f4b.jpg?hash=a59XfWTsVI)
Смотрим в дамп-образец, а там всё забито 0xFF-ками. Недолго думая, делаем привычное дело – копируем блок.
![17.png 17.png](https://consolefix.ru/forum/data/attachments/0/628-2d4365f3334caf0abfdea4059f56e339.jpg?hash=LUNl8zNMrw)
5. И вот мы добрались до финальной ошибки и пары предупреждений.
![18.png 18.png](https://consolefix.ru/forum/data/attachments/0/629-434ef5c92a193f8f687c0287762f77e0.jpg?hash=Q071ySoZP4)
Снова повреждена динамическая секция, филлеры и еще одна динамическая секция. Но нам это уже чем-то знакомо. Точно! Нечто подобное было при восстановлении SKU из п.1! Меняем тут последние 2 байта с 50 DE на 00 00, копируем секцию, начинающуюся с 6b 00 и забиваем остатки филлером по образцу.
6. Делаем финальную валидацию, и смотрим на результат….
![19.png 19.png](https://consolefix.ru/forum/data/attachments/0/630-01461d40a91fdc41cd365fb40a97d3cf.jpg?hash=AUYdQKkf3E)
Отлично, пробуем прошиться! После прошивки нашего восстановленного дампа консоль ожила, дала старт и картинку.
Надеюсь, мой опыт будет кому-то полезен. Всем удачных ремонтов!
Автор инструкции: Alexey Bogdanov, оформил: Okas43
![PS4_NOR_Validator.png PS4_NOR_Validator.png](https://consolefix.ru/forum/data/attachments/0/548-ae8b40a4170f70fc41f553c77b1d53d9.jpg?hash=rotApBcPcP)
Сайт проекта:
![offsite :offsite: :offsite:](/forum/data/assets/smilies/offsite.png)
Github проекта:
![github :github: :github:](/forum/data/assets/smilies/github-logo.png)
Описание:
Программа для проверки каждого байта NOR (а это более 2100 конкретных областей) - позволяя вам увидеть, где он поврежден. Наиболее распространенной областью повреждения, вызывающей BLOD, является CID. Он в основном заполнен данными о консоли и, следовательно, не может быть восстановлен. НО! Эта программа покажет вам области, которые заполнены и области, которые являются статическими (которые неизменны в разных консолях). Вам может повезти!
Скачать:
![download :download: :download:](/forum/data/assets/smilies/downloads.gif)
![loading :loading: :loading:](/forum/data/assets/smilies/loading.gif)
Вложения
Последнее редактирование: