PS Wiki

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

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

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


nsw:man:boot

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
nsw:man:boot [2021.04.13 19:00:27] – создано adminnsw:man:boot [2021.07.03 13:21:18] (текущий) admin
Строка 3: Строка 3:
  
 ===== Предупреждение ===== ===== Предупреждение =====
-Данная инструкция написана для ознакомления. Не используйте полученные файлы без чёткого понимания что это такое и зачем нужно. И уж тем более предварительно сделайте резервную копию ваших BOOT0 и BOOT1 разделов, в каком бы они состоянии ни были.+Данная инструкция написана исключительно для ознакомления с процессом создания чистых BOOT0/1. Не используйте полученные файлы без чёткого понимания что это такое и зачем оно нужно. И уж тем более предварительно сделайте резервную копию ваших BOOT0 и BOOT1 разделов, в каком бы они состоянии ни были. На данный момент инструкция опирается на структуру файлов для процессоров под кодовым именем Erista. Дальнейшая доработка инструкции возможна при наличии свободного времени и желания.
  
  
 ===== Нам понадобится ===== ===== Нам понадобится =====
-  * Файлы прошивки\\ Обычно идут в виде архива с кучей файлов с расширением ''nca'' или двойным ''cnmt.nca''. Имена файлов не ясны с первого взгляда и выглядят как мешанина из цифр от 0 до 9 и букв от a до f общей длиной 32 символа (без учёта расширения). +  * Файлы прошивки - обычно идут в виде архива с кучей файлов с расширением ''nca'' или двойным ''cnmt.nca''. Имена файлов не ясны с первого взгляда и выглядят как мешанина из цифр от 0 до 9 и букв от a до f общей длиной 32 символа (без учёта расширения). 
-  * HEX-редактор\\ Используйте свой любимый или, если такового не имеется, загрузите и установите бесплатный [[https://mh-nexus.de/en/downloads.php?product=HxD20|HxD]] +  * HEX-редактор - используйте свой любимый или, если такового не имеется, загрузите и установите бесплатный [[https://mh-nexus.de/en/downloads.php?product=HxD20|HxD]] 
-  * Утилита [[https://github.com/SciresM/hactool/releases/latest|hactool]] от SciresM+  * Утилита [[https://github.com/Yoti/hactool/releases/latest|hactool]] от [[https://github.com/SciresM|SciresM]] (сборка актуальной версии из исходников за авторством [[https://github.com/Yoti|Yoti]])
   * Ваш файл ''keys.prod'' полученный, например, при помощи [[https://github.com/shchmue/Lockpick_RCM/releases/latest|Lockpick_RCM]]   * Ваш файл ''keys.prod'' полученный, например, при помощи [[https://github.com/shchmue/Lockpick_RCM/releases/latest|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'' в рабочую папку 
 +<file batch 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 
 +</file> 
 +  * Запустите скрипт-распаковщик в рабочей папке 
 +  * Дождитесь появления надписи ''Done!!!'' 
 +  * Если вы всё сделали правильно, в окне скрипта будет список из четырёх имён папок\\ Первая папка имеет имя, начинающееся на ''1_'' (далее ''<1>'') и так далее. 
 + 
 ===== Создание BOOT0 ===== ===== Создание 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'', от ''начала''
 +  * Вставьте содержимое файла
 +
 +  * <color #ed1c24>**РАБОТА С ОБЛАСТЬЮ KEYBLOB (ERISTA) В ПРОЦЕССЕ НАПИСАНИЯ**</color>\\ https://switchbrew.org/wiki/Flash_Filesystem#Keyblob
 +  * Откройте файл ''<KeyBlob>''
 +  * Выделите содержимое файла
 +  * Скопируйте содержимое файла
 +  * Перейдите на вкладку с новым файлом (Без названия1)
 +  * Перейдите по адресу: смещение ''180000'', точка ниже на ''hex'', от ''начала''
 +  * Вставьте содержимое файла
 +
 +  * <color #ed1c24>**РАБОТА С ОБЛАСТЬЮ NANDPATROL В ПРОЦЕССЕ НАПИСАНИЯ**</color>\\ https://switchbrew.org/wiki/Flash_Filesystem#NAND_Patrol
 +  * Откройте файл ''<NandPatrol>''
 +  * Выделите содержимое файла
 +  * Скопируйте содержимое файла
 +  * Перейдите на вкладку с новым файлом (Без названия1)
 +  * Перейдите по адресу: смещение ''184000'', точка ниже на ''hex'', от ''начала''
 +  * Вставьте содержимое файла
 +
 +  * Сохраните файл: введите имя, например, ''BOOT0_NEW_CLEAN''
 +  * Проверьте размер файла, он должен быть ровно 4,00 МБ (4 194 304 байт)
 +
 +
 ===== Создание BOOT1 ===== ===== Создание 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 байт)
 +
 +
 ===== Источники ===== ===== Источники =====
   * https://switchbrew.org/wiki/Flash_Filesystem#Boot_Partitions   * https://switchbrew.org/wiki/Flash_Filesystem#Boot_Partitions
 +  * https://gbatemp.net/threads/keyblob-0-to-5-corrupted.548659/
  
  
nsw/man/boot.1618329627.txt.gz · Последнее изменение: 2021.04.13 19:00:27 — admin