The update list deleted ~80 apps the pack never shipped (Goldleaf,
linkalho, Moonlight, NX-Shell, ...), Downloader sysmodules (SysDVR,
MissionControl, ldn_mitm, Fizeau), game title ID folders (mods/cheats),
and user folders like "Patched Apps" or "games". Anything a user
installed via OmniNX Downloader was wiped on every update.
Update mode only runs on an existing OmniNX install, so the list now
keeps only what the pack ships, components OmniNX dropped, and
boot-relevant housekeeping. Foreign-pack leftovers stay in the clean
list. Also drops 15 entries nested in deleted folders, a case-duplicate
(themezernx) and a trailing-space path.
tools/audit_update_list.py checks the list against the OmniNX repo.
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.
This lets mass deployments and modchip setups apply the same install/update flow from a PC, with generated deletion lists kept in sync with the payload headers.
Copy sd:/extras from the pack, prompt for RAM and Hekate/AMS choices, persist them in config.ini, apply Pro/8GB payloads, then remove extras/. Use safe config.ini I/O and Joy-Con input clearing between menus.
- Load sd:/config/omninx/preserve.ini during update mode cleanup to skip
delete paths that overlap user-preserved prefixes (heap-backed path list).
- Document preserve.ini in PRESERVE_INI.md, README, and INSTALLATION_PROCESS.
- Prefer Hekate wording in main.c user messages for bootloader launch/errors.
- Extend update deletion list for exefs_patches (audio_mastervolume, SaltyNX_Fixes, logo).
- Remove entire sd:/atmosphere and sd:/switch (lists simplified)
- Add sd:/SaltySD/patches; drop nyx.ini and config/quickntp to match script
- Delete sd:/switch/tinfoil/db after backup restore via clean_post_restore_dirs_to_delete
Made-with: Cursor
The vendored tree under source/TegraExplorer is optional reference-only;
building it fails without extra usb/ headers. The payload uses bdk/ at repo
root instead.
Made-with: Cursor
- Copy sd:/config/horizon-oc/config.ini to sd:/.omninx_oc_update before
update cleanup/copy; restore after Hekate step, then remove the scratch dir.
- Only when INSTALL_MODE_UPDATE and VARIANT_OC.
Made-with: Cursor
- Read sd:/config/omninx/ram_config.ini [Ram] 8gb=0|1 when present;
otherwise show 4 GB / 8 GB menu, write ini, same input as variant menu.
- Replace fuse-based DRAM autodetect for hekate_8gb.bin handling.
- Reprint installer top bar after RAM menu confirm.
Made-with: Cursor
- Add dram_fuse.c/h for shared fuse-to-MiB mapping
- After successful update/clean install copy: if hekate_8gb.bin exists and
fuse reports more than 4 GiB, copy to sd:/payload.bin and
sd:/bootloader/update.bin, then remove source; otherwise remove helper only
- Makefile: make ram-test builds output/RAM-Test.bin (tools/ram_test_main.c)
Made-with: Cursor