Prodinfo Gen Switch: Difference between revisions

From GameBrew
(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...")
 
No edit summary
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=Prodinfo gen
|title=Prodinfo gen
|image=prodinfogenswitch.png
|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=v1.1.0
|version=1.1.0
|license=GPL-3.0
|license=GPL-2.0
|download=https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch.7z
|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=
}}
}}
{{#seo:
prodinfo_gen is a Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files.
|title=Switch Payloads (Payload (Binaries)) - GameBrew
 
|title_mode=append
It can either build one from scratch or import parts of a donor PRODINFO.
|image=prodinfogenswitch.png
 
|image_alt=Prodinfo gen
It is primarily aimed at people without a backup of their PRODINFO or building a NAND from scratch.
}}
 
{{cleanup|article|Needs cleanup}}
This tool is not meant to, and will not, unban a Switch console.
A Nintendo Switch payload that can generate minimal, console-unique, PRODINFO files.
 
'''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.


==Media==
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).
<youtube></youtube>


===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/prodinfogenswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/prodinfogennx4.png
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-02.png
 
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-03.png
==Media==
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-04.png
'''THE PRODINFO GEN TOOL''' ([https://www.youtube.com/watch?v=gpjkXtHR8Jk sthetix]) <br>
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-05.png
<youtube>gpjkXtHR8Jk</youtube>
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-06.png
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-07.png
https://dlhb.gamebrew.org/switchhomebrews/prodinfogenswitch-08.png


==Changelog==
==Changelog==
'''v.1.0'''
'''v1.1.0 2022/04/02'''
* First Release.
*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 ==
* Gbatemp - https://github.com/CaramelDunes/prodinfo_gen
* GitHub - https://github.com/CaramelDunes/prodinfo_gen
* Github - https://github.com/CaramelDunes/prodinfo_gen
* GBAtemp - https://github.com/CaramelDunes/prodinfo_gen
* Reddit -

Revision as of 04:05, 30 April 2023

Prodinfo gen
Prodinfogennx.png
General
AuthorCaramelDunes
TypePayload (Binaries)
Version1.1.0
LicenseGPL-2.0
Last Updated2022/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

prodinfogennx4.png

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 or EccB233DeviceCertificate. 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

v0.2.0 2020/12/31

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

External links

Advertising: