PS Wiki

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

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

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


nsw:man:boot

Это старая версия документа!


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

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

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

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

  • Файлы прошивки - обычно идут в виде архива с кучей файлов с расширением nca или двойным cnmt.nca. Имена файлов не ясны с первого взгляда и выглядят как мешанина из цифр от 0 до 9 и букв от a до f общей длиной 32 символа (без учёта расширения).
  • HEX-редактор - используйте свой любимый или, если такового не имеется, загрузите и установите бесплатный HxD
  • Утилита hactool от SciresM
  • Ваш файл 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 (v20210413)
echo Recreate boot partitions script by Yoti (v20210413)
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 %%~ni rd /s /q %%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=%%~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 %%~ni rd /s /q %%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=%%~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 %%~ni rd /s /q %%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=%%~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 %%~ni rd /s /q %%~ni
		hactool -x -k prod.keys --disablekeywarns -t nca --romfsdir=%%~ni %%i >nul
		goto thisistheend
	)
)

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

Создание BOOT0

  • Запустите HxD и создайте новый файл
  • Заполните файл нолями: число байт 400000, точка ниже на hex, значение 00
  • Перейдите по адресу: смещение 0, точка ниже на hex, от начала
  • Откройте файл <1> → nx → bct
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Откройте вкладку с новым файлом (Без названия1)
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 8000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Откройте файл <2> → nx → bct
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Откройте вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 4000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение C000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Откройте файл <1> → nx → package1
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Откройте вкладку с новым файлом (Без названия1)
  • Перейдите по адресу: смещение 100000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 140000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • РАБОТА С ОБЛАСТЬЮ KEYBLOB В ПРОЦЕССЕ НАПИСАНИЯ
    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, от начала
  • Откройте файл <2> → nx → package1
  • Выделите содержимое файла
  • Скопируйте содержимое файла
  • Откройте вкладку с новым файлом (Без названия1)
  • Вставьте содержимое файла
  • Перейдите по адресу: смещение 40000, точка ниже на hex, от начала
  • Вставьте содержимое файла
  • Сохраните файл: введите имя, например, BOOT1_NEW_CLEAN
  • Проверьте размер файла, он должен быть ровно 4,00 МБ (4 194 304 байт)

Источники

nsw/man/boot.1618341060.txt.gz · Последнее изменение: 2021.04.13 22:11:00 — admin