I've ended up making some adjustments to my scripts, and now have added the means to generate regular "sigpatches".
usage instructions:
git clone https://github.com/borntohonk/Switch-Ghidra-Guides.git sgg
cd sgg
requirements: python3 with the following pip modules lz4, pycryptodome)
( python -m pip install lz4 pycryptodome )
(optional unless making NEW patches - put new firmware .ncas in folder "firmware" (ex: firmware/*.nca and firmware /*.cnmt.nca))
python scripts/process_firmware.py
(optional unless making NEW patches, should be run - as it fetches the latest version of atmosphere and makes the loader and erpt patch)
(it also checks if patches are valid for new firmware files if processed with previous command)
python scripts/find_patterns.py --ams
(makes hekate patches.ini, and exefs_patches, then makes a .zip archive such as "Hekate+AMS-package3-sigpatches-1.10.1-cfw-21.1.0.zip")
python scripts/make_patches.py
exefs_patches included:
nfim_ctest (force network enable)
nim_ctest (includes both crashfix from 17+ for blanking prodinfo, and blocking automated firmware updates)
olsc_patches (spinning icon fix)
es_patches (es-certificate patch, the one letting you install things)
erpt_patches (for atmosphere's ERPT module, makes logging not happen - currently only latest atmosphere included)
kip_patches included:
fs down to 1.0.0 to latest (21.1.0)
loader only latest atmosphere (1.10.1)
hekate patches.ini included:
.nosigchk and loader (only atmosphere versions down to 1.9.3 - not worth time investment adding the rest)
(fs down to 1.0.0, up to latest of 21.1.0)
it automatically bundles these as:
"Hekate+AMS-package3-sigpatches-1.10.1-cfw-21.1.0.zip"
or
"Hekate+AMS-package3-sigpatches-1.10.1p-cfw-21.1.0.zip"
with the "p" signaling atmosphere pre-release, and atmosphere versions it supports, and the final value is the highest firmware version of patches included
edit: i have updated it to also generate kip_patches, after being asked to:
.zip uploaded has been updated to include them, and the scripts will generate them from now on.
edit2:
the .zip was reuploaded yet another time, because the hashes for old patches in patches.ini were wrong. (my source was the release from this https://gbatemp.net/threads/sigpatc...-fusee-package3.571543/page-275#post-10692213 which has the wrong hashes for all exfat before 10.0.0, potentially after as well. I only generate brand new from 10.0.0+ myself, so i haven't checked if the exfat hashes for 10.0.0 to 21.1.0 are incorrect in that release.
(i now generate from 1.0.0 to 21.1.0 for FS, even for noacidsigchk which in 10.0.0 moved to loader)
(my .zip archive does not have the incorrect hashes for FS.)
usage instructions:
git clone https://github.com/borntohonk/Switch-Ghidra-Guides.git sgg
cd sgg
requirements: python3 with the following pip modules lz4, pycryptodome)
( python -m pip install lz4 pycryptodome )
(optional unless making NEW patches - put new firmware .ncas in folder "firmware" (ex: firmware/*.nca and firmware /*.cnmt.nca))
python scripts/process_firmware.py
(optional unless making NEW patches, should be run - as it fetches the latest version of atmosphere and makes the loader and erpt patch)
(it also checks if patches are valid for new firmware files if processed with previous command)
python scripts/find_patterns.py --ams
(makes hekate patches.ini, and exefs_patches, then makes a .zip archive such as "Hekate+AMS-package3-sigpatches-1.10.1-cfw-21.1.0.zip")
python scripts/make_patches.py
exefs_patches included:
nfim_ctest (force network enable)
nim_ctest (includes both crashfix from 17+ for blanking prodinfo, and blocking automated firmware updates)
olsc_patches (spinning icon fix)
es_patches (es-certificate patch, the one letting you install things)
erpt_patches (for atmosphere's ERPT module, makes logging not happen - currently only latest atmosphere included)
kip_patches included:
fs down to 1.0.0 to latest (21.1.0)
loader only latest atmosphere (1.10.1)
hekate patches.ini included:
.nosigchk and loader (only atmosphere versions down to 1.9.3 - not worth time investment adding the rest)
(fs down to 1.0.0, up to latest of 21.1.0)
it automatically bundles these as:
"Hekate+AMS-package3-sigpatches-1.10.1-cfw-21.1.0.zip"
or
"Hekate+AMS-package3-sigpatches-1.10.1p-cfw-21.1.0.zip"
with the "p" signaling atmosphere pre-release, and atmosphere versions it supports, and the final value is the highest firmware version of patches included
edit: i have updated it to also generate kip_patches, after being asked to:
.zip uploaded has been updated to include them, and the scripts will generate them from now on.
edit2:
the .zip was reuploaded yet another time, because the hashes for old patches in patches.ini were wrong. (my source was the release from this https://gbatemp.net/threads/sigpatc...-fusee-package3.571543/page-275#post-10692213 which has the wrong hashes for all exfat before 10.0.0, potentially after as well. I only generate brand new from 10.0.0+ myself, so i haven't checked if the exfat hashes for 10.0.0 to 21.1.0 are incorrect in that release.
(i now generate from 1.0.0 to 21.1.0 for FS, even for noacidsigchk which in 10.0.0 moved to loader)
(my .zip archive does not have the incorrect hashes for FS.)
Attachments
Last edited by bth,









