Avoid writing garbage to a file by checking string pointer passed to f_puts and f_printf.
Important on many embedded platforms that do not abort on NULL dereference.
This will now properly identify many more manufacturers.
As a reminder, it shows who made the sd card, even if the SD card has another vendor name.
In that case, it's normally because the manufacturing is outsourced and vendor only puts a label on it.
For example, now lexar, transcend and sony do not exist in the list as they don't manufacture sd card nands and microcontrollers
This checks if bootloader/payloads/Lockpick_RCM.bin exists and if found it allows to launch it directly from there.
Only works with Lockpick RCM copied there and is version 1.9.5 or newer.
- 13.0.0 master key support
- Derive proper keys per mkey revision instead of the latest for Erista devices
This allows to identify issues with Pkg1/Pkg2 mismatch and also allows using old Exosphere/Atmosphere versions.
- Simplify pkg2 decryption because of proper keys
7.0.0 is still done via 8.1.0 mkey because of an Exosphere bug.
- Add nogc patches
Normally that can only happen if atmosphere is updated and config uses fusee-secondary instead of package3. In that case boot2 sysmodule (0100000000000008) will fatal.
On used eMMCs, the usage size might exceed the new resized size.
In such cases if the nand patrol points there, it will cause the sd card to timeout because of out of bounds access.
Clearing that allows resized emuMMC to always have the same speed as full sized emuMMC.
- remove any reference to sept and parsing of it
- completely refactor and simplify keygen
- use new Atmo tsec keygen for 7.0.0 and up
- simplify all info/tools that depend on hos keygen and bis keys
On XUSB do not allow multiple requests for CBW to be done.
This avoids an issue with some XHCI controllers and OS combos (e.g. ASMedia and Linux/Mac OS) which confuse that and concatenate an old CBW request with another write request (SCSI Write) and create a babble error (transmit overflow).