sys-patch | |
---|---|
File:Syspatchswitch.png | |
General | |
Author | TotalJustice |
Type | System Tools |
Version | 1.4.2 |
License | MIT License |
Last Updated | 2023/05/28 |
Links | |
Download | |
Website | |
Source | |
Sys-patch is a system module designed to patch fs, es, ldr, and nifm during boot on the Nintendo Switch. Developed by ITotalJustice, sys-patch serves as a script-like utility that effectively replaces sigpatches.
Sys-patch can be used alongside sigpatches, but the developer recommends continuing to use sigpatches. If sys-patch ever breaks, it may not be fixed quickly, so sigpatches can serve as a backup.
Features
The main features of sys-patch include:
- A simple configuration file for customizing patch options, located at /config/sys-patch/config.ini.
- An overlay that allows you to change the configuration options and see the applied patches.
- A minimal memory footprint (16 KiB) and binary size (~50 KiB).
Config
sys-patch features a simple config. This can be manually edited or updated using the overlay.
The configuration file can be found in /config/sys-patch/config.ini
. The file is generated once the module is ran for the first time.
[options] patch_sysmmc=1 ; 1=(default) patch sysmmc, 0=don't patch sysmmc patch_emummc=1 ; 1=(default) patch emummc, 0=don't patch emummc enable_logging=1 ; 1=(default) output /config/sys-patch/log.ini 0=no log version_skip=1 ; 1=(default) skips out of date patterns, 0=search all patterns
Overlay
The overlay can be used to change the config options and to see what patches are applied.
- Unpatched means the patch wasn't applied (likely not found).
- Patched (green) means it was patched by sys-patch.
- Patched (yellow) means it was already patched, likely by sigpatches or a custom Atmosphere build.
What is being patched?
sys-patch is designed to patch the following components:
fs and es: Require new patches after every new firmware version. ldr: Requires new patches after every new Atmosphere release. nifm: The ctest patch allows the device to connect to a network without needing to make a connection to a server.
These patches are applied on boot, and once they are done, the sys-module stops running.
FAQ:
If I am using sigpatches already, is there any point in using this?
Yes, in 3 situations.
- A new ldr patch needs to be created after every Atmosphere update. Sometimes, a new silent Atmosphere update is released. This tool will always patch ldr without having to update patches.
- Building Atmosphere from src will require you to generate a new ldr patch for that custom built Atmosphere. This is easy enough due to the public scripts / tools that exist out there, however this will always be able to patch ldr.
- If you forget to update your patches when you update your firmware / Atmosphere, this sys-module should be able to patch everything. So it can be used as a fall back.
Does this mean that I should stop downloading / using sigpatches?
No, I would personally recommend continuing to use sigpatches. Reason being is that should this tool ever break, i likely wont be quick to fix it.
Changelog
v1.4.2
- fix options "logging" key missmatch between sysmod and overlay
v1.4.1
- the patch itself always worked, however it failed to detect if the patch was already applied.
- this isn't a big issue, and the only one to notice was probably me ;)
v1.4.0
- add ctest patch, add per patch toggle, made overlay more organised
v1.3
- add more logging, pattern version skipping, min/max fs pattern versions
v1.2
- todo: document changes
v1.1.1
- whilst the previous release worked, it did so out of sheer luck.
- the path size passed to the fs set of functions was way too small. this is now fixed :)
v1.1.0
- config can be found in /config/sys-patch/config.ini
- if no config file is found, a default one is created.
- [options]
- patch_sysmmc=1
- patch_emummc=1
- change either of the above to disable sys-patch from running when booted as sys/emu.
v1.0
- First Release.
Credits / Thanks
Software is built on the shoulders of giants. This tool wouldn't be possible without these people:
- MrDude
- BornToHonk (farni)
- TeJay
- ArchBox
- Switchbrew (libnx, switch-examples)
- DevkitPro (toolchain)
- minIni
- libtesla
- Shoutout to the best switch cfw setup guide