nsw:man:boot
Содержание
Создание чистых BOOT0/1
Предупреждение
Данная инструкция написана исключительно для ознакомления с процессом создания чистых BOOT0/1. Не используйте полученные файлы без чёткого понимания что это такое и зачем оно нужно. И уж тем более предварительно сделайте резервную копию ваших BOOT0 и BOOT1 разделов, в каком бы они состоянии ни были. На данный момент инструкция опирается на структуру файлов для процессоров под кодовым именем Erista. Дальнейшая доработка инструкции возможна при наличии свободного времени и желания.
Нам понадобится
- Файлы прошивки - обычно идут в виде архива с кучей файлов с расширением
nca
или двойнымcnmt.nca
. Имена файлов не ясны с первого взгляда и выглядят как мешанина из цифр от 0 до 9 и букв от a до f общей длиной 32 символа (без учёта расширения). - HEX-редактор - используйте свой любимый или, если такового не имеется, загрузите и установите бесплатный HxD
- Ваш файл
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