Files
OmniNX-Installer-Payload/DEBUG_INI.md
T
niklascfw 702cce7d3e Drop newlib printf: log via BDK s_vprintf, add debug.ini log switch
log_write was the only vsnprintf user and pulled in newlib's printf,
dtoa, malloc and soft-float code (~44 KB). The payload now fits the
RCM limit again (146800 -> 102801 bytes); the build fails if it grows
past it. debug.ini log=1 writes sd:/config/omninx/install.log.
2026-11-12 22:50:20 +01:00

3.4 KiB

Debug configuration (debug.ini)

Optional file to skip parts of the install for testing (e.g. run only deletion and inspect the SD card). If the file is missing, the installer ignores debug entirely and runs the full flow.

Location

sd:/config/omninx/debug.ini

Create the folder sd:/config/omninx/ on the SD card if it does not exist. Same parent directory as manifest.ini and config.ini.

Format

  • Section name must be exactly [Debug] (case-sensitive in the parser).
  • One key per line: name=value.
  • Enabling a skip: set the value so it starts with one of: 1, t, T, y, Y
    Examples: 1, true, yes, True — all enable that skip.
  • Disabling: 0, false, no, or omit the key.

Parameters

Clean install mode (INSTALL_MODE_CLEAN)

Key What is skipped
skip_clean_backup Step 1 — backup of sd:/switch/DBI/dbi.config, sd:/switch/prod.keys to sd:/temp_backup
skip_clean_wipe Step 2 — all cleanup from deletion_lists_clean.h (deletion / wipe)
skip_clean_restore Step 3 — restore from sd:/temp_backup and post-restore paths (e.g. delete sd:/switch/tinfoil/db)
skip_clean_install Step 4 — copy files from the OmniNX staging folder to the SD root
skip_clean_staging_cleanup After install: do not remove the staging directory or other variant staging folders

Update mode (INSTALL_MODE_UPDATE)

Key What is skipped
skip_update_cleanup Step 1 — selective deletion from deletion_lists_update.h
skip_update_install Step 2 — copy from staging to SD
skip_update_staging_cleanup End: do not remove staging / other variant folders
skip_update_horizon_oc OC variant only: HorizonOC config backup before update, restore and cleanup after (entire HorizonOC update side path)

Both modes

Key What is skipped
skip_hekate_8gb_post_copy After a successful copy: the optional hekate_8GB / RAM menu and related file moves (see install_hekate_8gb_post_copy in install.c)

Logging

Key Effect
log Writes sd:/config/omninx/install.log with every deleted path, every copied file and the final result. Nothing is skipped. Slower on large packs; meant for test runs.

Behaviour

  • On startup, if debug.ini exists and parses successfully, the payload prints a DEBUG-MODUS banner listing which skips are active.
  • If the file is absent, unreadable, or has no [Debug] section, no skips apply — behaviour matches a release install.
  • Skipping steps can leave the SD in an inconsistent state; this is for developers/testers only.

Examples

Wipe only (test deletion, no backup/restore/copy)

Inspect leftovers after the clean-install wipe, without backing up, restoring, installing, or cleaning staging:

[Debug]
skip_clean_backup=1
skip_clean_restore=1
skip_clean_install=1
skip_clean_staging_cleanup=1
skip_hekate_8gb_post_copy=1

Do not set skip_clean_wipe (leave unset or 0).

Update: deletion only

[Debug]
skip_update_install=1
skip_update_staging_cleanup=1
skip_hekate_8gb_post_copy=1

OC update without touching HorizonOC backup/restore

[Debug]
skip_update_horizon_oc=1

Implementation

  • Parsed in install.c: install_debug_load(), perform_installation().
  • Uses the same INI parser as config.ini (ini_parse from BDK).