More actions
(Created page with "{{Infobox Switch Homebrews |title=Prodinfo gen |image=prodinfogenswitch.png |description=A Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files. |author=CaramelDunes |lastupdated=2022/04/02 |type=Payload (Binaries) |version=v1.1.0 |license=GPL-3.0 |download=https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch.7z |website=https://github.com/CaramelDunes/prodinfo_gen |source=https://github.com/CaramelDunes/prodinfo_gen |donation= }} {{#s...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=Prodinfo gen | |title=Prodinfo gen | ||
|image= | |image=prodinfogennx.png | ||
|description=A Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files. | |description=A Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files. | ||
|author=CaramelDunes | |author=CaramelDunes | ||
|lastupdated=2022/04/02 | |lastupdated=2022/04/02 | ||
|type=Payload (Binaries) | |type=Payload (Binaries) | ||
|version= | |version=1.1.0 | ||
|license=GPL- | |license=GPL-2.0 | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/ | |download=https://dlhb.gamebrew.org/switchhomebrews/prodinfogennx.7z | ||
|website=https://github.com/CaramelDunes/prodinfo_gen | |website=https://github.com/CaramelDunes/prodinfo_gen | ||
|source=https://github.com/CaramelDunes/prodinfo_gen | |source=https://github.com/CaramelDunes/prodinfo_gen | ||
|donation= | |donation= | ||
}} | }} | ||
prodinfo_gen is a Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files. | |||
| | |||
| | It can either build one from scratch or import parts of a donor PRODINFO. | ||
| | |||
| | It is primarily aimed at people without a backup of their PRODINFO or building a NAND from scratch. | ||
This tool is not meant to, and will not, unban a Switch console. | |||
'''Note:''' Use this tool at your own risk, do not overwrite a factory PRODINFO without making a backup first. | |||
==User guide== | |||
===Limitations=== | |||
Of course, as we do not have Nintendo's private keys, the generated files can't be perfect. | |||
Here's what works: | |||
{| class="wikitable" | |||
! ||Booting||Homebrews||Amiibos||GameCards||Online | |||
|- | |||
|from scratch||✓||✓||✓|| || | |||
|- | |||
|from donor||✓||✓||✓||✓|| | |||
|- | |||
| | |||
|} | |||
As such, a "from scratch" PRODINFO also acts as a more elaborate "Incognito". | |||
===How to use=== | |||
If you want to use a donor PRODINFO, place it at <code>sd:/switch/donor_prodinfo.bin</code>. | |||
(Note: If the donor is a patched or Mariko Switch, you will need to copy the donor's keys to <code>sd:/switch/donor.keys</code>.) | |||
Launch prodinfo_gen.bin using your favorite payload injector or chainloader. | |||
You should find <code>sd:/switch/generated_prodinfo_from_scratch.bin</code> or <code>sd:/switch/generated_prodinfo_from_donor.bin</code> depending on what you selected. | |||
You can now write that PRODINFO to your NAND using a tool such as HacDiskMount (it is recommended to make a backup of the current PRODINFO first). | |||
===Useful links=== | |||
[https://gbatemp.net/threads/switch-unbricking-guide-prodinfo-fix-pikafix.578026/ Switch Unbricking Guide - ProdInfo Fix (PikaFix)] (by Adran_Marit). | |||
==Screenshots== | ==Screenshots== | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/prodinfogennx4.png | ||
==Media== | |||
https:// | '''THE PRODINFO GEN TOOL''' ([https://www.youtube.com/watch?v=gpjkXtHR8Jk sthetix]) <br> | ||
<youtube>gpjkXtHR8Jk</youtube> | |||
==Changelog== | ==Changelog== | ||
''' | '''v1.1.0 2022/04/02''' | ||
* | *Adds support for 14.0.0. | ||
*What happened is that, until 14.0.0, on boot, the device id from fuses was compared against the one embedded in <code>Rsa2048DeviceCertificate</code> or <code>EccB233DeviceCertificate</code>. Now, <code>Rsa2048ETicketCertificate</code> is used instead, but prodinfo_gen didn't write the device id string there. | |||
*Not sure why this changed, it does make the logic simpler as Rsa2048ETicketCertificate is available on every console, whereas newer consoles lack an EccB233DeviceCertificate. | |||
*Thanks @xiaojiangGangGang, @stanz328, @lsp199308, and @laotoulyh for reporting/testing. | |||
*Closes [https://github.com/CaramelDunes/prodinfo_gen/issues/24 #24]. | |||
'''v1.0.1 2021/11/04''' | |||
*WARNING: This does not work with firmware 14+! Please use version 1.1.0 or higher if you plan to use the generated prodinfo with a 14+ firmware. | |||
*Based on latest [https://github.com/shchmue/Lockpick_RCM Lockpick_RCM]. | |||
**Adds support for OLED Switch (Aula). | |||
**Automatically dumps master keys, no need for prod.keys anymore. | |||
**Makes importing from donor simpler, simply copy the donor's keys to <code>sd:/switch/donor.keys</code>. | |||
*Correctly sets <code>ProductModel</code> for OLED Switch. | |||
*Thanks to @laotoulyh for testing and providing me with a sample. | |||
*Closes [https://github.com/CaramelDunes/prodinfo_gen/issues/20 #20]. | |||
'''v1.0.0 2021/11/02''' | |||
*Based on latest [https://github.com/shchmue/Lockpick_RCM Lockpick_RCM]. | |||
**Adds support for OLED Switch (Aula). | |||
**Automatically dumps master keys, no need for prod.keys anymore. | |||
**Makes importing from donor simpler, simply copy the donor's keys to <code>sd:/switch/donor.keys</code>.. | |||
*Correctly sets <code>ProductModel</code> for OLED Switch. | |||
*Thanks to @laotoulyh for the sample. | |||
*Closes [https://github.com/CaramelDunes/prodinfo_gen/issues/20 #20]. | |||
'''v0.3.4 2021/02/18''' | |||
*Fix the <code>ProductModel</code> field value ([https://github.com/CaramelDunes/prodinfo_gen/pull/11 #11]). | |||
**It could cause the "Connect Joycons" screen to appear on the Switch Lite. | |||
**Many thanks to @henryjmin | |||
*Personalize the console colors in the Controllers screen. | |||
'''v0.3.3 2021/01/11''' | |||
*Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add <code>donor_device_key_4x</code> to your prod.keys (see README). | |||
*"From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs. | |||
*Fix 2011-0301 error when using a "from scratch" PRODINFO. | |||
*Huge thanks to @laotoulyh, @Kronos2308, and Modificatorul for helping me test. | |||
'''v0.3.2 2021/01/11''' | |||
*Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add <code>donor_device_key_4x</code> to your prod.keys (see README). | |||
*"From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs. | |||
*Fix 2011-0301 error when using a "from scratch" PRODINFO. | |||
'''v0.3.1 2021/01/10''' | |||
*Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add <code>donor_device_key_4x</code> to your prod.keys (see README). | |||
*"From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs. | |||
'''v0.3.0 2021/01/10''' | |||
*Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add <code>donor_device_key_4x</code> to your prod.keys (see README). | |||
*"From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs. | |||
'''v0.2.1 2021/01/05''' | |||
*Thanks, @shchmue, for the Lotus kek sources. | |||
'''v0.2.0 2021/01/02''' | |||
*Add Mariko support by merging changes from https://github.com/shchmue/Lockpick_RCM. | |||
*Big thanks to Modificatorul for helping me test this version. | |||
'''v0.2.0 2020/12/31''' | |||
*Add Mariko support by merging changes from https://github.com/shchmue/Lockpick_RCM. | |||
'''v0.1.3 2020/10/27''' | |||
*Improve RandomNumber generation. | |||
'''v0.1.2 2020/10/25''' | |||
*Fix SslCertificateHash computation. | |||
'''v0.1.1 2020/10/23''' | |||
*Improve README. | |||
'''v0.1.0 2020/10/23''' | |||
* Feature/cal0 builder (#1) | |||
** Support broken eMMC. | |||
** Add CAL0 menu entry. | |||
** Working ghash and decryption of extended keys. | |||
** Added primitive personalization. | |||
** From scratch works. | |||
** From scratch works. | |||
** Cleanup. | |||
** Warning cleanup. | |||
** Read master_key_00 from prod.keys. | |||
==Credits== | |||
*This software is based on shchmue's [https://github.com/shchmue/Lockpick_RCM Lockpick_RCM]. | |||
*GCM encryption primitives from [https://github.com/Atmosphere-NX/Atmosphere Atmosphère]. | |||
*Most of the reverse engineering work comes from [https://github.com/shchmue shchmue], [https://github.com/PabloZaiden PabloZaide]n, [https://switchbrew.org/wiki/Calibration SwitchBrew]. | |||
== External links == | == External links == | ||
* | * GitHub - https://github.com/CaramelDunes/prodinfo_gen | ||
* | * GBAtemp - https://github.com/CaramelDunes/prodinfo_gen | ||
Latest revision as of 08:21, 13 February 2024
Prodinfo gen | |
---|---|
General | |
Author | CaramelDunes |
Type | Payload (Binaries) |
Version | 1.1.0 |
License | GPL-2.0 |
Last Updated | 2022/04/02 |
Links | |
Download | |
Website | |
Source | |
prodinfo_gen is a Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files.
It can either build one from scratch or import parts of a donor PRODINFO.
It is primarily aimed at people without a backup of their PRODINFO or building a NAND from scratch.
This tool is not meant to, and will not, unban a Switch console.
Note: Use this tool at your own risk, do not overwrite a factory PRODINFO without making a backup first.
User guide
Limitations
Of course, as we do not have Nintendo's private keys, the generated files can't be perfect.
Here's what works:
Booting | Homebrews | Amiibos | GameCards | Online | |
---|---|---|---|---|---|
from scratch | ✓ | ✓ | ✓ | ||
from donor | ✓ | ✓ | ✓ | ✓ | |
As such, a "from scratch" PRODINFO also acts as a more elaborate "Incognito".
How to use
If you want to use a donor PRODINFO, place it at sd:/switch/donor_prodinfo.bin
.
(Note: If the donor is a patched or Mariko Switch, you will need to copy the donor's keys to sd:/switch/donor.keys
.)
Launch prodinfo_gen.bin using your favorite payload injector or chainloader.
You should find sd:/switch/generated_prodinfo_from_scratch.bin
or sd:/switch/generated_prodinfo_from_donor.bin
depending on what you selected.
You can now write that PRODINFO to your NAND using a tool such as HacDiskMount (it is recommended to make a backup of the current PRODINFO first).
Useful links
Switch Unbricking Guide - ProdInfo Fix (PikaFix) (by Adran_Marit).
Screenshots
Media
THE PRODINFO GEN TOOL (sthetix)
Changelog
v1.1.0 2022/04/02
- Adds support for 14.0.0.
- What happened is that, until 14.0.0, on boot, the device id from fuses was compared against the one embedded in
Rsa2048DeviceCertificate
orEccB233DeviceCertificate
. Now,Rsa2048ETicketCertificate
is used instead, but prodinfo_gen didn't write the device id string there. - Not sure why this changed, it does make the logic simpler as Rsa2048ETicketCertificate is available on every console, whereas newer consoles lack an EccB233DeviceCertificate.
- Thanks @xiaojiangGangGang, @stanz328, @lsp199308, and @laotoulyh for reporting/testing.
- Closes #24.
v1.0.1 2021/11/04
- WARNING: This does not work with firmware 14+! Please use version 1.1.0 or higher if you plan to use the generated prodinfo with a 14+ firmware.
- Based on latest Lockpick_RCM.
- Adds support for OLED Switch (Aula).
- Automatically dumps master keys, no need for prod.keys anymore.
- Makes importing from donor simpler, simply copy the donor's keys to
sd:/switch/donor.keys
.
- Correctly sets
ProductModel
for OLED Switch. - Thanks to @laotoulyh for testing and providing me with a sample.
- Closes #20.
v1.0.0 2021/11/02
- Based on latest Lockpick_RCM.
- Adds support for OLED Switch (Aula).
- Automatically dumps master keys, no need for prod.keys anymore.
- Makes importing from donor simpler, simply copy the donor's keys to
sd:/switch/donor.keys
..
- Correctly sets
ProductModel
for OLED Switch. - Thanks to @laotoulyh for the sample.
- Closes #20.
v0.3.4 2021/02/18
- Fix the
ProductModel
field value (#11).- It could cause the "Connect Joycons" screen to appear on the Switch Lite.
- Many thanks to @henryjmin
- Personalize the console colors in the Controllers screen.
v0.3.3 2021/01/11
- Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add
donor_device_key_4x
to your prod.keys (see README). - "From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs.
- Fix 2011-0301 error when using a "from scratch" PRODINFO.
- Huge thanks to @laotoulyh, @Kronos2308, and Modificatorul for helping me test.
v0.3.2 2021/01/11
- Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add
donor_device_key_4x
to your prod.keys (see README). - "From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs.
- Fix 2011-0301 error when using a "from scratch" PRODINFO.
v0.3.1 2021/01/10
- Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add
donor_device_key_4x
to your prod.keys (see README). - "From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs.
v0.3.0 2021/01/10
- Allow importing from patched and Mariko Switch PRODINFOs. Do not forget to add
donor_device_key_4x
to your prod.keys (see README). - "From donor" PRODINFOs are now built like "from scratch" with additional certificate and key importing. It should lead to more reliable PRODINFOs.
v0.2.1 2021/01/05
- Thanks, @shchmue, for the Lotus kek sources.
v0.2.0 2021/01/02
- Add Mariko support by merging changes from https://github.com/shchmue/Lockpick_RCM.
- Big thanks to Modificatorul for helping me test this version.
v0.2.0 2020/12/31
- Add Mariko support by merging changes from https://github.com/shchmue/Lockpick_RCM.
v0.1.3 2020/10/27
- Improve RandomNumber generation.
v0.1.2 2020/10/25
- Fix SslCertificateHash computation.
v0.1.1 2020/10/23
- Improve README.
v0.1.0 2020/10/23
- Feature/cal0 builder (#1)
- Support broken eMMC.
- Add CAL0 menu entry.
- Working ghash and decryption of extended keys.
- Added primitive personalization.
- From scratch works.
- From scratch works.
- Cleanup.
- Warning cleanup.
- Read master_key_00 from prod.keys.
Credits
- This software is based on shchmue's Lockpick_RCM.
- GCM encryption primitives from Atmosphère.
- Most of the reverse engineering work comes from shchmue, PabloZaiden, SwitchBrew.