CTCaer/hekate

GitHub: CTCaer/hekate

一个功能强大的Nintendo Switch图形化引导加载程序及工具箱,支持自定义固件引导、emuMMC管理、系统备份与多系统启动。

Stars: 8110 | Forks: 638

# hekate - Nyx ![Hekate 图片](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/407a1ce819123229.png) 自定义图形化 Nintendo Switch 引导加载程序、固件补丁工具及更多功能。 - [功能特性](#features) - [引导加载程序文件夹和文件](#bootloader-folders-and-files) - [引导加载程序配置](#bootloader-configuration) * [hekate 全局配置键/值](#hekate-global-configuration-keysvalues-when-entry-is-config) * [启动项键/值组合](#boot-entry-keyvalue-combinations) * [Exosphère 启动项键/值组合](#boot-entry-keyvalue-combinations-for-exosphère) * [Payload 存储](#payload-storage) * [Nyx 配置键/值](#nyx-configuration-keysvalues-nyxini) ## 功能特性 - **完全可配置且图形化**,支持触摸屏和 Joycon 输入 - **启动器风格、背景和颜色主题** - **HOS (Switch OS) 引导加载程序** -- 用于 CFW Sys/Emu、OFW Sys 和 Stock Sys - **Android & Linux 引导加载程序** - **Payload 启动器** - **eMMC/emuMMC 备份/恢复工具** - **SD 卡分区管理器** -- 为 HOS (Sys/emuMMC)、Android 和 Linux 的任意组合准备和格式化 SD 卡 - **emuMMC 创建与管理器** -- 还可以迁移和修复现有的 emuMMC - **Switch Android & Linux 刷写工具** - **SD/eMMC/emuMMC 的 USB 大容量存储 (UMS)** -- 将 Switch 变为 SD 卡读卡器 - **USB 手柄** -- 将带有 Joycon 的 Switch 变为 USB HID 手柄 - **硬件和外设信息** (SoC、熔丝、RAM、显示屏、触摸、eMMC、SD、电池、PSU、充电器) - **许多其他工具**,如归档位修复器、触摸校准、SD/eMMC 基准测试、AutoRCM 启用器等 ## 引导加载程序文件夹和文件 | 文件夹/文件 | 描述 | | ------------------------ | --------------------------------------------------------------------- | | bootloader | 主文件夹。 | | \|__ bootlogo.bmp | 如果未找到 `logopath` 键,则使用此项。由用户提供。可以跳过。 | | \|__ hekate_ipl.ini | 主引导加载程序配置和 `Launch` 菜单中的启动项。 | | \|__ nyx.ini | Nyx GUI 配置 | | \|__ patches.ini | 添加外部补丁。可以跳过。可在 [此处](./res/patches_template.ini) 找到模板 | | \|__ update.bin | 如果版本较新,则在启动时加载。通常用于芯片。首次启动时自动更新并创建。 | | bootloader/ini/ | 用于单个 ini 文件。`More configs` 菜单。支持 Autoboot。 | | bootloader/res/ | Nyx 用户资源。图标等。 | | \|__ background.bmp | Nyx - 自定义背景。由用户提供。 | | \|__ icon_switch.bmp | Nyx - CFW 的默认图标。 | | \|__ icon_payload.bmp | Nyx - Payload 的默认图标。 | | bootloader/sys/ | hekate 和 Nyx 系统模块文件夹。!重要! | | \|__ emummc.kipm | emuMMC KIP1 模块。 | | \|__ libsys_lp0.bso | LP0 (休眠模式) 模块。 | | \|__ libsys_minerva.bso | Minerva 训练单元。用于 DRAM 频率训练。 | | \|__ nyx.bin | Nyx - hekate 的 GUI。 | | \|__ res.pak | Nyx 资源包。 | | \|__ thk.bin | Atmosphère Tsec Hovi Keygen。 | | \|__ /l4t/ | 与 L4T (Linux/Android) 相关固件的文件夹。 | | bootloader/screenshots/ | Nyx 截图保存的文件夹 | | bootloader/payloads/ | 用于 `Payloads` 菜单。支持所有 CFW 引导加载程序、工具、Linux payload。仅当包含在 ini 中时才支持 Autoboot。 | | bootloader/libtools/ | 保留 | ## 引导加载程序配置 引导加载程序可以通过 'bootloader/hekate_ipl.ini' 进行配置(如果 SD 卡上存在该文件)。每个 ini 节代表一个启动项,但控制全局配置的特殊节 'config' 除外。 有四种可能的条目类型。"**[ ]**":启动项,"**{ }**":标题,"**#**":注释,"*换行符*":.ini 格式换行。 **你可以在 [这里](./res/hekate_ipl_template.ini) 找到一个模板** ### hekate 全局配置键/值 (当条目为 *[config]* 时): | 配置选项 | 描述 | | ------------------ | -------------------------------------------------------------- | | autoboot=0 | 0:禁用,#:自动启动的启动项编号。 | | autoboot_list=0 | 0:从 hekate_ipl.ini 读取 `autoboot` 启动项,1:从 ini 文件夹读取(ini 文件按 ASCII 顺序排列)。 | | bootwait=3 | 0:禁用(同时也禁用启动图标。如果在注入后一直按住 **VOL-** 可进入菜单。),#:等待 **VOL-** 以进入菜单的时间。最大值:20s。 | | noticker=0 | 0:在自定义启动图标期间绘制动画线条,表示跳转到菜单的剩余时间。1:禁用。 | | autohosoff=1 | 0:禁用,1:如果是通过 RTC 闹钟从 HOS 唤醒,显示图标,然后完全关机,2:无图标,立即关机。| | autonogc=1 | 0:禁用,1:如果发现未熔断的熔丝且启动 >= 4.0.0 的 HOS,自动应用 nogc 补丁。 | | bootprotect=0 | 0:禁用,1:通过禁止在 HOS 中读取或编辑来保护 bootloader 文件夹免受损坏。 | | updater2p=0 | 0:禁用,1:强制更新(如果需要)reboot2payload 二进制文件为 hekate。 | | backlight=100 | 屏幕背光亮度等级。0-255。 | ### 启动项键/值组合: | 配置选项 | 描述 | | ---------------------- | ---------------------------------------------------------- | | warmboot={FILE path} | 替换 warmboot 二进制文件 | | secmon={FILE path} | 替换 security monitor 二进制文件 | | kernel={FILE path} | 替换内核二进制文件 | | kip1={FILE path} | 替换/添加内核初始进程。可设置多个。 | | kip1={FOLDER path}/* | 加载文件夹内的每个 .kip/.kip1。兼容单个 kip1 键。 | | pkg3={FILE path} | 获取 Atmosphere `package3` 二进制文件并从中 `提取` 所有需要的部分。kips、exosphere、warmboot 和 mesophere。 | | fss0={FILE path} | 同上。!已弃用! | | pkg3ex=1 | 启用从 PKG3/FSS0 存储加载实验性内容 | | pkg3kip1skip={KIP name} | 跳过从 `pkg3`/`fss0` 加载某个 kip。允许多个,使用 `,` 作为分隔符。名称必须与 `PKG3` 中的名称完全匹配。 | | exofatal={FILE path} | 替换 Mariko 的 exosphere fatal 二进制文件 | | ---------------------- | ---------------------------------------------------------- | | kip1patch=patchname | 启用 kip1 补丁。允许多个,使用 `,` 作为分隔符。如果未找到实际补丁,将显示警告。 | | emupath={FOLDER path} | 强制 emuMMC 使用选定的路径。(=emuMMC/RAW1, =emuMMC/SD00, 等)。emuMMC 必须由 hekate 创建,因为它使用 raw_based/file_based 文件。 | | emummcforce=1 | 强制使用 emuMMC。如果 emummc.ini 被禁用或未找到,则会导致错误。 | | emummc_force_disable=1 | 禁用 emuMMC(如果已启用)。 | | stock=1 | 通过 hekate 引导加载程序启动 OFW。运行 stock 时禁用不需要的内核补丁和 CFW kips。`如果启用了 emuMMC,则需要 emummc_force_disable=1`。stock 不支持 emuMMC。如果除了 OFW 之外还需要额外的 KIP,可以使用 `kip1` 键定义它们。不应使用依赖于 Atmosphère 补丁的 kip,因为它会挂起。如果需要 `NOGC`,请使用 `kip1patch=nogc`。 | | fullsvcperm=1 | 禁用 SVC 验证(完全服务权限)。不适用于以 Mesosphere 为内核的情况。 | | debugmode=1 | 启用调试模式。与 exosphere 作为 secmon 一起使用时已过时。 | | kernelprocid=1 | 启用 stock 内核进程 id 发送/接收补丁。使用 `pkg3`/`fss0` 时不需要。 | | ---------------------- | ---------------------------------------------------------- | | payload={FILE path} | Payload 启动。工具、Android/Linux、CFW 引导加载程序等。与此一起使用时,上述任何键都不予考虑。 | | ---------------------- | ---------------------------------------------------------- | | l4t=1 | L4T Linux/Android 原生启动。 | | boot_prefixes={FOLDER path} | L4T 启动堆栈目录。 | | ram_oc=0 | L4T RAM 超频。查看 README_CONFIG.txt 获取更多信息。 | | ram_oc_vdd2=1100 | L4T RAM VDD2 电压。设置 VDD2 (T210B01) 或 VDD2/VDDQ (T210) 电压。1050-1175。 | | ram_oc_vddq=600 | L4T RAM VDDQ 电压。设置 VDDQ (T210B01)。550-650。 | | uart_port=0 | 启用 L4T uboot/kernel 的串口日志记录。 | | sld_type=0x31444C53 | 控制无缝显示支持的类型。0x0:禁用,0x31444C53:L4T 无缝显示。 | | Additional keys | 每个发行版支持更多键。查看 README_CONFIG.txt 获取更多信息。 | | ---------------------- | ---------------------------------------------------------- | | bootwait=3 | 覆盖 `[config]` 中的全局 bootwait。 | | id=IDNAME | 标识启动项以通过 id 强制启动。最多 7 个字符。 | | logopath={FILE path} | 如果存在,将加载指定的位图。否则,如果存在 `bootloader/bootlogo.bmp` 将使用该文件 | | icon={FILE path} | 强制 Nyx 使用此处定义的图标。如果未找到,将检查名为启动项的 bmp([Test 2] -> `bootloader/res/Test 2.bmp`)。否则将使用默认值。 | **注意1**:当在 `kip1` 中使用通配符 (`/*`) 时,你仍然可以在之后使用普通的 `kip1` 来加载额外的单个 kip。 **注意2**:使用 PKG3/FSS0 时,它会解析 exosphere、warmboot 和所有核心 kip。你可以通过在定义 `pkg3`/`fss0` 之后使用 `secmon`/`warmboot` 来覆盖前两者。 你可以定义 `kip1` 来加载额外的 kip,或通过通配符 (`/*`) 加载多个。 **警告**:使用 `kip1` 覆盖 *pkg3/fss 核心* kip 时请小心。 这是因为 kip 之间可能不兼容。如果兼容,你可以毫无问题地覆盖 `pkg3`/`fss0` kip(对于中间 kip 更改的测试很有用)。在这种情况下,`kip1` 行必须位于 `pkg3`/`fss0` 行**之后**。 ### Exosphère 启动项键/值组合: | 配置选项 | 描述 | | ---------------------- | ---------------------------------------------------------- | | nouserexceptions=1 | 与 Exosphère 配对时禁用用户模式异常处理程序。 | | userpmu=1 | 与 Exère 配对时启用用户对 PMU 的访问。 | | cal0blank=1 | 覆盖 Exosphère 配置 `blank_prodinfo_{sys/emu}mmc`。如果该键不存在,将使用 `exosphere.ini`。 | | cal0writesys=1 | 覆盖 Exosphère 配置 `allow_writing_to_cal_sysmmc`。如果该键不存在,将使用 `exosphere.ini`。 | | usb3force=1 | 覆盖系统设置 mitm 配置 `usb30_force_enabled`。如果该键不存在,将使用 `system_settings.ini`。 | **注意**:`cal0blank`、`cal0writesys`、`usb3force` 如上所述会覆盖 `exosphere.ini` 或 `system_settings.ini`。0:禁用,1:启用,键缺失:使用原始值。 **注意2**:`exosphere.ini` 和 `system_settings.ini` 中的 `blank_prodinfo_{sys/emu}mmc`、`allow_writing_to_cal_sysmmc` 和 `usb30_force_enabled` 分别是唯一可以外部影响 hekate 启动配置的 atmosphere 配置键,**如果** hekate 配置中缺少等效的键。 ### Payload 存储: hekate 在二进制文件中有一个启动存储,帮助其在 BPMP 环境之外进行配置: | 偏移量 / 名称 | 描述 | | ----------------------- | ----------------------------------------------------------------- | | '0x94' boot_cfg | bit0:`强制自动启动`,bit1:`显示启动日志`,bit2:`从 ID 启动`,bit3:`启动到 emuMMC`。 | | '0x95' autoboot | 如果 `强制自动启动`,0:强制进入菜单,否则启动该项。 | | '0x96' autoboot_list | 如果 `强制自动启动` 且 `autoboot`,则从 ini 文件夹启动。 | | '0x97' extra_cfg | 当菜单被强制时:bit5:`运行 UMS`。 | | '0x98' xt_str[128] | 取决于设置的配置位。 | | '0x98' ums[1] | 当设置 `运行 UMS` 时,将启动选定的 UMS。0:SD,1:eMMC BOOT0,2:eMMC BOOT1,3:eMMC GPP,4:emuMMC BOOT0,5:emuMMC BOOT1,6:emuMMC GPP, | | '0x98' id[8] | 当设置 `从 ID 启动` 时,它将自动搜索所有 ini 并找到具有该 id 的启动项并启动。必须以 NULL 终止。 | | '0xA0' emummc_path[120] | 当设置 `启动到 emuMMC` 时,它将覆盖当前的 emuMMC(启动项或 emummc.ini)。必须以 NULL 终止。 | ### Nyx 配置键/值 (nyx.ini): | 配置选项 | 描述 | | ------------------ | ---------------------------------------------------------- | | themebg=2d2d2d | 以 HEX 格式设置 Nyx 背景颜色。实验性。 | | themecolor=167 | 设置 Nyx 文本高亮颜色。 | | entries5col=0 | 1:将 Launch 启动项列数从每行 4 个设置为 5 个。总共 10 个条目。 | | timeoffset=100 | 以 HEX 格式设置时间偏移量。必须是 epoch 格式 | | timedst=0 | 启用自动夏令时调整 | | homescreen=0 | 设置主屏幕。0:主菜单,1:所有配置(合并 Launch 和 More configs),2:Launch,3:More Configs。 | | verification=1 | 0:禁用备份/恢复验证,1:稀疏(基于块,快速且基本可靠),2:完整(基于 sha256,慢速且 100% 可靠)。 | | ------------------ | ------- 以下选项只能在 nyx.ini 中编辑 ------- | | umsemmcrw=0 | 1:eMMC/emuMMC UMS 默认将以可写方式挂载。 | | jcdisable=0 | 1:完全禁用 Joycon 驱动程序。 | | jcforceright=0 | 1:强制使用右 Joycon 作为主鼠标控制。 | | bpmpclock=1 | 0:自动,1:589 MHz,2:576 MHz,3:563 MHz,4:544 MHz,5:408 MHz。如果 Nyx 挂起或某些功能(如 UMS/备份验证)失败,请使用 2 到 5。 | ``` hekate (c) 2018, naehrwert, st4rk. (c) 2018-2026, CTCaer. Nyx GUI (c) 2019-2026, CTCaer. Thanks to: derrek, nedwill, plutoo, shuffle2, smea, thexyz, yellows8. Greetings to: fincs, hexkyz, SciresM, Shiny Quagsire, WinterMute. Open source and free packages used: - Littlev Graphics Library, Copyright (c) 2016-2018 Gabor Kiss-Vamosi - FatFs R0.13c, Copyright (c) 2006-2018, ChaN Copyright (c) 2018-2022, CTCaer - bcl-1.2.0, Copyright (c) 2003-2006, Marcus Geelnard - blz, Copyright (c) 2018, SciresM - elfload, Copyright (c) 2014 Owen Shepherd, Copyright (c) 2018 M4xw ___ .-' `'. / \ | ; | | ___.--, _.._ |0) = (0) | _.---'`__.-( (_. __.--'`_.. '.__.\ '--. \_.-' ,.--'` `""` ( ,.--'` ',__ /./; ;, '.__.'` __ _`) ) .---.__.' / | |\ \__..--"" """--.,_ `---' .'.''-._.-'`_./ /\ '. \ _.--''````'''--._`-.__.' | | .' _.-' | | \ \ '. `----` \ \/ .' \ \ '. '-._) \/ / \ \ `=.__`'-. / /\ `) ) / / `"".`\ , _.-'.'\ \ / / ( ( / / `--'` ) ) .-'.' '.'. | ( (/` ( (` ) ) '-; [switchbrew] ```
标签:Android启动, Bootloader, CFW, emuMMC, GUI, hekate, Linux启动, Nintendo Switch, Nyx, Payload, Switch破解, USB大容量存储, 分区管理, 固件补丁, 图形化界面, 客户端加密, 嵌入式系统, 引导程序, 数据备份, 游戏主机, 硬件检测, 硬件黑客, 系统破解, 自动回退, 自定义固件