Files
OmniNX-Installer-Payload/DEBUG_INI.md
niklascfw 0ad2c63123 feat: optional debug.ini to skip install steps
Read sd:/config/omninx/debug.ini [Debug] with skip_* flags for clean/update
modes and hekate post-copy. Documented in DEBUG_INI.md.

Made-with: Cursor
2026-04-12 16:22:41 +02:00

3.2 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 ram_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)

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 ram_config.ini (ini_parse from BDK).