Freeboot [JTAG/RGH]

Автор: | Опубликовано в Xbox 360 No comments

В обновленной версии статьи я постараюсь описать большую часть информации по теме установки Freeboot на консоль от Microsoft.

Взлому JTAG поддаются следующие виды консолей:
Xenon, Zephyr, Opus, Falcon, Jasper (дата выпуска до 15 июня 2009)
Основное условие — версия дашборда 2.0.7371, либо ниже. Версии 2.0.8498 — 2.0.15574 не подходят!

Взлому RGH (Reset Glitch Hack) поддаются:
Xenon, Zephyr, Opus, Falcon, Jasper, Trinity
Условие — версия дашборда 2.0.8498 — 2.0.14699. Версии 2.0.14717 — 2.0.15574 не подходят!

Взлому RGH2 поддаются
Zephyr, Opus, Falcon, Jasper, Trinity
Нужна версия дашборда 2.0.14717 — 2.0.14719.
Для установки Freeboot этим методом на приставки с дашбордом 2.0.15572-2.0.15574 необходимы заранее снятые ключ процессора и дамп памяти с версией дашборда 2.0.14717-2.0.14719!

Внимание. В процессе установки, требуются хорошие навыки пайки! К тому же, приставки Jasper часто выходят из строя при установке RGH. Я не рекомендую браться за установку RGH на чужую консоль. Свою — терзайте на здоровье.  

Ну и да, я ни разу не устанавливал Freeboot на Xbox 360, так что инструкция больше затрагивает программную часть, чем пайку и оптимизацию (колдовство всякое). Удачи!

Модель материнской платы Phat приставки можно узнать по разъему питания и наличию HDMI выхода:


Модель материнской платы Slim приставки легко распознается по наклейке сзади, несущей информацию об энергопотреблении приставки:

Версию Dashboard приставки можно посмотреть в настройке консоли — сведения о системе:

В любом случае, перед началом действий, необходимо считать содержимое NAND приставки.

Это можно сделать несколькими способами. Если у вас уже стоит Freeboot (или XeLL), можно считать программно. Если консоль не подвергалась модификациям, можно считать по LPT или через специальное устройство — флешер.

Сначала опишу программные методы:
1. Nand Flasher 360.
Если у вас установлен Freeboot, вы должны уметь запускать .xex программы.
Программа крайне проста в использовании. Всего две кнопки — Dump NAND и Write NAND

Нужно нажать Dump NAND и выбрать папку для сохранения кнопкой Y. После окончания процесса, файл будет в указанном месте.

2. XeLL
Новые версии XeLL позволяют считывать NAND по HTML. Чтобы запустить XeLL на freeboot приставках, нужно запустить приставку с кнопки лотка (иногда — запустить с открытым или полуоткрытым лотком).
Перед запуском, подключите приставку к роутеру (или компьютеру).
Если приставка была подключена к роутеру, на экране покажется полученный от него IP адрес. Если была подключена к компьютеру — необходимо будет указать в настройках сети компьютера IP и маску подсети (IP должен отличаться от указанного на экране последним значением).

В итоге, после настройки сети, вбив адреc в браузер, попадаем на страницу, где можно «скачать» содержимое NAND.

Но почти всегда приходится считывать память напрямик, с припаиванием проводов.

3. Чтение через компьютер

Паяльник и припой с флюсом нужны обязательно
   

Самый простой вариант — LPT порт

Надёжнее и быстрее будет использование SPI Flasher, но ради одного раза его покупать накладно.

Как собрать SPI USB флешер
Также, можно приобрести ещё более быстрый Super NAND Flasher


Схема пайки флешера к Phat приставке:


Для Slim всё точно так же, схема расположения контактов:


В итоге, должно получиться нечто вроде этого:


Итак. Все припаяли, можно начинать.

Для LPT и SPI Flasher, нужно использовать NandPro 2.0e, для Super NAND Flasher, нужен NandPro 3.0 (обязательно нужно установить PortIO 95)
Для тех, у кого 64 битная система, можно попробовать закинуть в папку с программой данный файл
Но работоспособность данного варианта я не проверял.

Подключаем питание к приставке, но не включаем её, подключаем LPT или USB к компьютеру.
Запускаем компьютер, запускаем командную строку (Win+R — cmd), переходим в папку с Nandpro командой cd (например, cd C:/NandPro)

Далее, нужно считать содержимое NAND приставки. Можно считать полностью, а можно только первые 50 блоков. Это намного быстрее, но потом нужно будет считать оставшуюся часть через XeLL.

Размер памяти на всех приставках, кроме Jasper — 16 мегабайт (128 мегабит).

На Jasper Arcade (без HDD в комплекте) — 256 или 512 мегабайт. На элитках с HDD, опять же, 16 мегабайт.

Для чтения, нужно ввести команду
nandpro lpt: -r16 nanddump.bin — для 16мб NAND при чтении через LPT
nandpro usb: -r16 nanddump.bin — для 16мб NAND при чтении через флешер

Аналогично, для чтения больших NAND на джасперах, нужно вводить -r64 (системная информация находится только в первых 64 мегабайтах)

Если вы решили сэкономить время и считать только первые 0х50 блоков, нужна команда

nandpro usb: -r16 nanddump.bin 0 50


Если в случае с LPT выдало

То, возможно, у вас плохо (или неверно) припаяны провода.
Если не хочет действовать, перепаивайте, укорачивайте и утолщайте провода, либо ищите USB SPI Flasher. Важно, чтоб провода имели одинаковую длину.
Если же все нормально, программа начнет читать Nand. На 16 мегабайтных флешках этот процесс длится около 40 минут (по USB — 5 минут). На 256 и 512 (где мы снимаем только 64 мб) — около  двух с половиной часов (по USB — минут 20).

В процессе чтения возможны ошибки. Зачастую, это так называемые бэд блоки — ошибочные сектора памяти. Это нормально, данные с этих блоков находятся в конце памяти. Но если вы считываете только первые 50 блоков, перенесенные данные не будут считаны! Поэтому, лучше точно проверять дамп на корректность.

Для проверки считанного дампа, можно использовать мою программу — NandCheck
Для проверки, достаточно перетащить файл дампа на иконку файла программы.


В отчете будут показаны все ошибки, ошибочные блоки, заремаплены они или нет. Ну и в конце, показывает общий статус дампа, корректный или нет. В случае ошибки, будет выдан результат ERROR. В таком случае, нужно будет считать дамп заново. Вполне вероятно, что в программе есть баги — если найдете, сообщите.
Если выдало статус ОК, повторно считывать не нужно. Так вы сэкономите время и нервы.

Дальше, для разных случаев, нужно действовать по-разному.

Для JTAG XeLLous один — его можно скачать здесь 

А вот для RGH/RGH2 его нужно собирать отдельно.

Будем пользоваться программой 360 Multi Builder 0.94, потому что в 0.95 кривой сборщик -_-
Дамп NAND копируем в папку Data/_my_Images (там, где разархивирован Multi Builder) под именем nanddump.bin
Если там есть cpukey.txt, удалите его.

Затем запускаем сам 360 Multi Builder (Run.exe)

Следуем указаниям программы:

Сначала подтверждаем выбор nanddump.bin в папке

Затем выбираем модель материнской платы

Потом подтверждаем желание собрать XeLL

В процессе программа может предупредить о замене CB из-за того, что текущий загрузчик не подходит для RGH — это нормально. Также возможны предупреждения о сборке XeLL для RGH2, т.к. текущий загрузчик не подходит для RGH

После сборки, XeLL будет находиться в папке Data/_my_Images. Осталось записать его в приставку.

Если в начале NAND (блоки 0-4F в 16мб и 0-A в 64мб) были бэд блоки, перед записью, нужно перенести данные, попадающие на них, в конец дампа.
Для этого, создайте копию дампа приставки и запишите в него полученный ecc файл командой
nandpro nand.bin: +w16 image_00000000.ecc, где nand.bin — имя копии дампа, image_00000000.ecc — название файла с XeLL.
Затем, перенесите данные в конец дампа командами:
В случае с 16мб дампом:
nandpro nand.bin: -r16 bad.bin 35 1, где bad.bin — временный файл для сохранения данных, 35 — номер поврежденного блока.
nandpro nand.bin: -w16 bad.bin 3FF 1, где 3FF — последний блок дампа.
Аналогично, если бэд блоков несколько, повторяем процедуру, перенося блок на этот раз в 3FE (предпоследний) и так далее.
В случае с 64мб дампом:
nandpro nand.bin: -r64 bad.bin 28 8, где 28 — номер бэд блока, умноженный на 8 в шестнадцатеричном калькуляторе
nandpro nand.bin: -w64 bad.bin FF8 8
В 64мб дампах, блоки имеют величину в 8 обычных, потому читаем по 8 блоков сразу и пишем в конец тоже по 8. Следующий бэд блок пойдет в FF0 и так далее.

Записывать в приставку XeLL нужно через NandPro:

Если XeLL в виде .ecc файла, нужно записывать командой
nandpro lpt: +w16 image_00000000.ecc (для 64мб и USB соответственно)

Если XeLL ремаплен и записан в nand.bin, нужно записывать следующим образом:
nandpro lpt: -w16 nand.bin
XeLLous для JTAG записывается таким же образом.


Остается лишь вопрос о CPLD и его модификации.

Со времен разработки первой версии Reset Glitch Hack, использовался чип от Xilinx. Но некоторые умельцы портировали его на другие чипы, такие как Actel. Судя по отзывам, они действительно зачастую (но не всегда) шустрее. К сожалению, команда, занимающаяся взломом консолей на данный момент, Team Xecuter, стремится к монополии и не выкладывает исходные коды прошивок, поэтому, гличи на Actel не подходят для Phat RGH2 и Xenon.

Итого, сейчас самые универсальные платы для глича — Matrix Glitcher I (от 5$) и Xecuter Coolrunner (от 9$)



Для Trinity есть ещё X360Pro на Actel. А его третья и четвертая версии еще и содержат функционал DualNAND

Есть и отечественные разработки:
Слева — глич от Freeplex, справа — от kim095


В версии от kim095 есть очень много возможностей для точной подстройки.

Также, можно купить заготовки вроде таких:


Но их необходимо «допиливать» до нужного состояния, потому они уже не популярны.

Также, можно собрать самостоятельно:


Для тех, кто хочет собрать самостоятельно, прилагаю простейшие схемки для плат

Slim (Phat RGH2) версия             /                  Phat RGH1 версия

Конденсаторы, выделенные пунктиром, необязательны.
Для улучшения запуска, многие прибегают к различным модификациям — ставят конденсаторы куда ни попадя, резисторы и прочее. К примеру, для RGH2 на Phat ставят резистор 10Ком, соединенный параллельно с конденсатором на 470pf, в разрыв провода CPU_RST.
Как я понял, всё это колдовство с конденсаторами, длиной проводов и диодами означает лишь нестабильность и ненадежность любых Glitch устройств.

1.8v можно взять с платы приставки (грейфрутовый цвет на рисунке – на всякий случай, проверьте мультиметром).

А можно и прикрутить на свою плату стабилизатор питания на 1.8v
Для программирования CPLD через LPT, понадобится 360gcprog 1.5
Для программирования через Super NAND Flasher сойдёт и NandPro 3.0
Отдельно прошивки для программирования можно скачать здесь

Для RGH используются прошивки xenon, zephyr, opus, falcon, jasper, trinity1.1 и slimpluspost (последняя — как альтернатива)

Для RGH2 используются trinity1.1, slimpluspost и набор прошивок для Phat:
Falcon/Opus — B, C и E версии
Jasper — A и D версии
Zephyr — D и C версии

Вот схема для подключения CPLD к компьютеру по LPT:

Внимание! В некоторых случаях, для корректной работы, приходилось уменьшать резистор до 3 КОм.
Вместо батареек можно использовать 3.3в с матплаты компьютера. VCC – это вывод 3.3в на схеме платы CPLD.

Подключив по LPT к компьютеру, смотрим номер порта:

Теперь запускаем 360gcProg и вписываем порт в настройки:


Теперь нажимаем Connect и подключаемся к устройству


Выбираем из списка нужный тип прошивки и записываем его в Glitch

Через NandPro 3.0 всё делается командой
nandpro xsvf: firmware.xsvf, где firmware.xsvf — имя прошивки для чипа

Ну теперь осталось припаять CPLD к приставке. Расположение точек на Slim приставке:

Распайка для Phat, RGH 1



Распайка для Xenon, RGH 1. Немного поменял формат исходной картинки

Как написано на картинке, для улучшения запуска, нужно добавить конденсатор на 47нф.

Распайка для Phat RGH2 похожа на распайку для Slim:

Рекомендуется добавление резистора 10 Ом на CPU_RST.

Распайка для JTAG намного проще. Понадобятся диоды.

Схема для Xenon:

Схема для остальных:

После всего этого, приставка может запускаться от 5 секунд до 50 минут (да, бывало и такое) и показывать XeLL (XeLL для JTAG не будет показывать по HDMI).
Если приставка не запускается или вас не устраивает время ожидания, попробуйте удлиннить проводок на CPU_RST (для Slim), по-другому уложить проводки (по краю платы), добавить конденсаторов или взять GND с другой точки платы… Колдовство приветствуется.
Также, можно попробовать перепрошить Glitch чип прошивками с другими таймингами (только для RGH1). Сборник прошивок тут.
После запуска приставки, XeLL покажет ключ CPU. Сфотографируйте его.

Так. Если вы считывали только 0х50 блоков, не забываем дочитать оставшееся через XeLL! (см начало статьи)

После считывания полного дампа, в него нужно записать те самые считанные 0х50 блоков через NandPro командой
nandpro fullnand.bin: -w16 nand50.bin, где fullnand — только что считанный полный дамп, а nand50 — считанные первые 0х50 блоков. В результате, получится полный оригинал.

Ну что, осталось лишь собрать фрибут.

Собрать сначала попробуем через 360 Multi Builder 0.95, потому что он собирает фрибут на ядре 15574, что актуальнее 14719.
В папке my360 рядом с nanddump.bin создаем cpukey.txt и вписываем туда ключ процессора, подсмотренный в XeLL.
Опять запускаем Run.exe, но на этот раз выбираем сборку фрибута

Если собранный фрибут не запустится, используйте 360 Multi Builder 0.94 (последний xebuild почему — то некорректно собирает некоторые дампы, да и в самой версии 0.95 имеются косяки)
Скриншоты оставлю старые, в сборке фрибута ничего сложного нет. В процессе сборки, будет вопрос про отключение FCRT — если у вас привод родной, делать этого не нужно. Также это лишь помешает на приставках с приводами 1071 и 1125.


Выбираем сборку Glitch Hack Image (или JTAG Image)

Можно и с дашланчем, не помешает

Программа сообщает, что всё собрано. Готовый файл nandflash.bin находится в папке Data

Рекомендуют писать через XeLL. Так и поступим

Для записи, понадобится rawflash4

Полученный файл nandflash.bin кидаем на USB флешку вместе с содержимым архива rawflash4.
Запускаем XeLL с вставленной флешкой – прошивка запишется в приставку

После перезагрузки приставки появится Freeboot. Если не запустился — пробуйте собрать через предыдущий мультибилдер.
На этом всё.

Если возникли ошибки при записи через rawflash (он не особо хорошо работает при бэд блоках), запишите через nandpro командой
nandpro usb: -w64 nandflash.bin 

Для установки аватар, необходимо вставить флешку с обновлением той же версии, что и фрибут в приставку. Если вы выбирали установку DashLaunch при сборке Freeboot, папку с обновлением необходимо переименовать из $SystemUpdate в $$ystemUpdatea href=»http://www.hackfaq.net/wp-content/uploads/clp10.jpg»