PS Wiki

Живее всех живых

Инструменты пользователя

Инструменты сайта


nsw:man:boot

Создание чистых BOOT0/1

Предупреждение

Данная инструкция написана исключительно для ознакомления с процессом создания чистых BOOT0/1. Не используйте полученные файлы без чёткого понимания что это такое и зачем оно нужно. И уж тем более предварительно сделайте резервную копию ваших BOOT0 и BOOT1 разделов, в каком бы они состоянии ни были. На данный момент инструкция опирается на структуру файлов для процессоров под кодовым именем Erista. Дальнейшая доработка инструкции возможна при наличии свободного времени и желания.

Нам понадобится

  • Файлы прошивки - обычно идут в виде архива с кучей файлов с расширением nca или двойным cnmt.nca. Имена файлов не ясны с первого взгляда и выглядят как мешанина из цифр от 0 до 9 и букв от a до f общей длиной 32 символа (без учёта расширения).
  • HEX-редактор - используйте свой любимый или, если такового не имеется, загрузите и установите бесплатный HxD
  • Утилита hactool от SciresM (сборка актуальной версии из исходников за авторством Yoti)
  • Ваш файл keys.prod полученный, например, при помощи Lockpick_RCM

Основные команды HxD

  • Создайте новый файл - выберите Файл → Новый или нажмите Ctrl + N
  • Заполните файл нолями - выберите Правка → Вставить байты… и укажите число
  • Перейдите по адресу - выберите Поиск → Перейти к… или нажмите Ctrl + G
  • Откройте файл - выберите Файл → Открыть… или нажмите Ctrl + O
  • Выделите содержимое файла - выберите Правка → Выделить всё или нажмите Ctrl + A
  • Скопируйте содержимое файла - выберите Правка → Копировать или нажмите Ctrl + C
  • Вставьте содержимое файла - выберите Правка → Вставить с заменой или нажмите Ctrl + B
  • Сохраните файл - выберите Файл → Сохранить или нажмите Ctrl + S

Получение нужных файлов

  • Скачайте и распакуйте архив с прошивкой (далее - рабочая папка)
  • В рабочую папку поместите hactool.exe из архива с программой
  • В рабочую папку поместите ваш файл keys.prod
  • Загрузите скрипт-распаковщик recreate_boot_by_yoti.bat в рабочую папку
recreate_boot_by_yoti.bat
@echo off
title Recreate boot partitions script by Yoti (v20210414)
echo Recreate boot partitions script by Yoti (v20210414)
if not exist hactool.exe goto thisistheend
if not exist prod.keys goto thisistheend
 
echo Wait...
for %%i in (????????????????????????????????.nca) do (
	hactool -i -k prod.keys --disablekeywarns -t nca %%i | find "0100000000000819" >nul && (
		echo 1_%%~ni [FAT32 Normal]
		if exist 1_%%~ni rd /s /q 1_%%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=1_%%~ni %%i >nul
		goto 081a
	)
)

:081a
for %%i in (????????????????????????????????.nca) do (
	hactool -i -k prod.keys --disablekeywarns -t nca %%i | find "010000000000081a" >nul && (
		echo 2_%%~ni [FAT32 SafeMode]
		if exist 2_%%~ni rd /s /q 2_%%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=2_%%~ni %%i >nul
		goto 081b
	)
)

:081b
for %%i in (????????????????????????????????.nca) do (
	hactool -i -k prod.keys --disablekeywarns -t nca %%i | find "010000000000081b" >nul && (
		echo 3_%%~ni [exFAT Normal]
		if exist 3_%%~ni rd /s /q 3_%%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=3_%%~ni %%i >nul
		goto 081c
	)
)

:081c
for %%i in (????????????????????????????????.nca) do (
	hactool -i -k prod.keys --disablekeywarns -t nca %%i | find "010000000000081c" >nul && (
		echo 4_%%~ni [exFAT SafeMode]
		if exist 4_%%~ni rd /s /q 4_%%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=4_%%~ni %%i >nul
		goto thisistheend
	)
)

:thisistheend
echo Done!!!
pause
  • Запустите скрипт-распаковщик в рабочей папке
  • Дождитесь появления надписи Done!!!
  • Если вы всё сделали правильно, в окне скрипта будет список из четырёх имён папок
    Первая папка имеет имя, начинающееся на 1_ (далее <1>) и так далее.

Создание BOOT0

  • Запустите HxD и создайте новый файл
  • Заполните файл нолями: число байт 400000, точка ниже на hex, значение 00
  • Перейдите по адресу: смещение 0, точка ниже на hex, от начала
  • Откройте файл согласно модели:
    • Erista: <1> или <3> → nx → bct
    • Mariko: <1> или <3> → a → bct
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 8000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Откройте файл согласно модели:
    • Erista: <2> или <4> → nx → bct
    • Mariko: <2> или <4> → a → bct
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 4000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение C000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Откройте файл согласно модели:
    • Erista: <1> или <3> → nx → package1
    • Mariko: <1> или <3> → a → package1
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 100000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 140000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • РАБОТА С ОБЛАСТЬЮ KEYBLOB (ERISTA) В ПРОЦЕССЕ НАПИСАНИЯ
    https://switchbrew.org/wiki/Flash_Filesystem#Keyblob
  • Откройте файл <KeyBlob>
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 180000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • РАБОТА С ОБЛАСТЬЮ NANDPATROL В ПРОЦЕССЕ НАПИСАНИЯ
    https://switchbrew.org/wiki/Flash_Filesystem#NAND_Patrol
  • Откройте файл <NandPatrol>
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 184000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Сохраните файл: введите имя, например, BOOT0_NEW_CLEAN
  • Проверьте размер файла, он должен быть ровно 4,00 МБ (4 194 304 байт)

Создание BOOT1

  • Запустите HxD и создайте новый файл
  • Заполните файл нолями: число байт 400000, точка ниже на hex, значение 00
  • Перейдите по адресу: смещение 0, точка ниже на hex, от начала
  • Откройте файл согласно модели:
    • Erista: <2> или <4> → nx → package1
    • Mariko: <2> или <4> → a → package1
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Перейдите на вкладку с новым файлом (Без названия1)
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 40000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Сохраните файл: введите имя, например, BOOT1_NEW_CLEAN
  • Проверьте размер файла, он должен быть ровно 4,00 МБ (4 194 304 байт)

Источники

nsw/man/boot.txt · Последнее изменение: 2021.07.03 13:21:18 — admin