Sys-patch Switch

From GameBrew
Revision as of 02:22, 5 June 2023 by HydeWing (talk | contribs) (Created page with "{{Infobox Switch Homebrews |title=sys-patch |image=syspatchswitch.png |description=A script-like system module that patches fs, es and ldr on boot. |author=TotalJustice |lastupdated=2023/05/28 |type=System Tools |version=1.4.2 |license=MIT |download=https://dlhb.gamebrew.org/switchhomebrews/syspatchswitch.7z |website=https://gbatemp.net/threads/sys-patch-sysmod-that-patches-on-boot.633517/ |source=https://github.com/ITotalJustice/sys-patch |donation= }} {{#seo: |title=Sw...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
sys-patch
File:Syspatchswitch.png
General
AuthorTotalJustice
TypeSystem Tools
Version1.4.2
LicenseMIT License
Last Updated2023/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.

syspatchswitch-01.jpg

syspatchswitch-02.jpg

syspatchswitch-03.jpg

syspatchswitch-04.jpg

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.

  1. 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.
  2. 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.
  3. 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:

External links

Advertising: