# 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: ```ini [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 ```ini [Debug] skip_update_install=1 skip_update_staging_cleanup=1 skip_hekate_8gb_post_copy=1 ``` ### OC update without touching HorizonOC backup/restore ```ini [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).