ouncebrew/kaihen
游戏为 Switch 2 提供自制程序运行环境和最小化自定义固件,面向自制程序开发者与进阶用户。
项目介绍
kaiHEN 改変 为 Switch 2 提供自制程序运行环境和一套最小化自定义固件。它由多个协作组件构成:ldr:ro 服务(ro/)负责把 NRO 映射进客户端进程、为其发布 JIT 代码,并给已初始化的客户端一个与 HEN 的会话;启动程序(bootstrap/)启动 HEN 和插件、把会话交给它们,并连接 RO 与 HEN;HEN 服务(hen/)在用户按住 R 打开原生游戏时启动自制程序加载器,为每个程序提供独立的 SM 代理会话,并承载自制程序界面;libkaihen/ 是带 JIT 支持的自制程序 API;common/ 存放公共代码与协议定义。项目面向在 Switch 2 上开发或运行自制程序的人。
快速使用
HEN 通过 Switch 2 上可用的获取工具启动。启动后按住 R 打开一个原生游戏即可进入自制程序加载器,从第二次启动起会直接进入 hbmenu。
要构建各组件,先按 ounce-devkit 仓库 的说明在 devkitPro 中安装 Switch 2 devkit,然后在仓库根目录运行:
make
产物包括 RO(ro/build/main)、HEN(hen/build/main)、bootstrap(bootstrap/build/bootstrap.bin)以及 libkaihen/build/ 下的库。make LIBOUNCE=DIR 可以针对另一份 libounce 构建。
使用 Docker 或 Podman 时,在 devkit 镜像内运行:
docker build --output out .
会写出 out/ro/main、out/hen/main、out/bootstrap.bin 和 out/libkaihen/。加上 --build-arg RELEASE=1 则生成发布包 out/kaiHEN.zip,其中包含上述二进制、nx-hbloader、nx-hbmenu、OunceShell(带 FTP 服务器的文件管理器)以及 Dockerfile 所指定提交处构建的这些组件和各自的许可证。
主机测试用 sh hen/test.sh 和 sh ro/test.sh 运行,它们使用主机编译器并从 LIBOUNCE 读取 libounce 头文件。
开发自制程序
使用 libnx 和 OpenGL 或 Vulkan 的现有 Switch 1 自制程序可以通过 ounce-devkit 编译到 Switch 2。自制程序和插件被允许访问 fs 能访问的所有系统模块。
使用约束与风险
项目仍在开发中,可能存在 bug。它允许对系统(包括系统 NAND)的完全访问,恶意自制程序可能写入 Switch 2 并使其永久变砖。项目采用 GPL-2.0-only 许可证并对 Nintendo 设有豁免,libkaihen/ 使用 ISC 许可证,每个文件在 SPDX 头中声明自己的许可证。
HotRepo 点评
kaiHEN 改変 在 2026-11-14 的 HotRepo 新项目榜 C++ 语言记录中出现,从 2026-11-13 起的约 14 小时窗口内新增 100 星和 9 个 fork。这只有一条早期快照,也没有记录到 GitHub 日榜名次,说明的是初期关注度而非已经形成的趋势。仓库的实质内容在于按 RO、HEN、bootstrap、libkaihen 拆分组件,并给出可执行的构建路径,因此它是一个可以具体评估的实现,而不只是分发包的包装。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。
相关推荐
- Atmosphere-NX/Atmosphere为 Nintendo Switch 提供自定义固件,替换启动链与系统组件,以支持自制程序和系统修改。
- ravensclawx/HBLauncher在 Switch 2 上通过 SmileBASIC 浏览并启动 GPU 自制程序,并提供用于开发的 SDK。
- heydemoura/EglantinePS5面向已破解 PS5 的实验性 Switch 2 模拟器移植,需自备合法导出的游戏文件。
- aydencharles/onionHEN给已越狱 PS5 提供一体化 HEN 与工具箱,集中管理插件、覆盖层、作弊和用户 payload。
- itsPLK/ps5-payload-manager面向 PS5 自制软件用户的网页仪表盘,用于管理、导入和自动加载 payload。