Atmosphere:Switch 定制固件上手指南
【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere
Atmosphere 是一个为 Nintendo Switch 提供定制化固件的开源项目,采用分层替换系统各组件的设计思路。本文涵盖编译部署、核心配置与典型使用场景,帮助你在 5 分钟内了解它的安装与用法。
项目定位
Atmosphere 解决的 Switch 官方固件无法自定义的问题:从底层安全监控器到上层系统模块,允许你替换或修改系统中的不同组件。与同类定制固件方案相比,它的差异点在于按"大气层"分层组织,每一层对应替换一个独立系统组件,边界清晰、便于单独维护。整体分为六层,从启动加载(fusée)一路覆盖到应用层(troposphère)。
环境准备与快速部署
前置依赖(以 Linux 为例):
- devkitA64 / devkitARM 工具链
- Python 2(Python 3 未保证可用)
- hactool 与 LZ4、PyCryptodome 等 Python 包
编译步骤:
- 按 devkitPro 官方指南安装并配置基础工具链。
# 参考 devkitpro.org/wiki/Getting_Started- 通过 (dkp-)pacman 安装构建所需包。
sudo dkp-pacman -S switch-dev switch-glm switch-libjpeg-turbo devkitARM devkitarm-rules hactool- 安装 exosphere 组件所需的 Python 依赖。
pip install lz4- 克隆仓库并在根目录执行 make。
git clone https://gitcode.com/GitHub_Trending/at/Atmosphere cd Atmosphere && make -j8验证部署成功:构建完成后在根目录生成/atmosphere/产物,将其复制到 SD 卡根目录即可在真机上启动。
核心功能
分层启动流程
Atmosphere 按大气层分层组织,每层替换一个系统组件。fusée 通过 RCM 漏洞注入,负责硬件初始化、挂载 eMMC 并引导下一层;exosphère 接管最高权限的 TrustZone(EL3);stratosphère 以系统模块形式扩展内核能力。各层职责可在 组件文档 中逐层查阅,启动主入口位于 fusée 加载器。
配置文件体系
Atmosphere 的行为由 SD 卡上的一组 ini 文件驱动,模板位于 config_templates/。以 exosphere.ini 为例,关键项控制调试模式与日志端口:
[exosphere] debugmode=1 ; 内核调试模式,关闭会导致 Atmosphere 无法工作 debugmode_user=0 ; 用户态调试模式 log_port=0 ; 0=UART-A ... 3=UART-D log_baud_rate=115200 ; 日志波特率按键覆盖与 Homebrew 跳转
override_config.ini 允许你把某个按键绑定到特定行为,例如启动 Homebrew 菜单。修改该文件中的override_key即可改变默认行为,配置解析逻辑位于 配置文件文档:
[default_config] override_key=!L ; 按住 L 启动 Homebrew 菜单 cheat_enable_key=!L ; 作弊码启用按键实战场景
场景一:为特定游戏设置 39 位地址空间。需求是为某款内存布局特殊的游戏单独开启 39-bit 地址空间,而不影响其他程序。在 SD 卡的override_config.ini中添加程序专属配置段:
[hbl_config] program_id_0=010000000000100D ; 目标游戏的 Program ID override_address_space_0=39_bit ; 仅对该游戏开启 39 位 override_key_0=!R ; 仅在该游戏上生效的覆盖按键保存后重新插入 SD 卡并正常启动,该游戏会按 39-bit 空间加载,其余程序保持默认。
场景二:自定义启动画面。替换默认开机 Splash,图像需为 1280x720 分辨率。仓库提供了注入脚本,对本地 release 产物操作即可,不改动仓库源码:
python utilities/insert_splash_screen.py <你的图片路径> <SD卡/atmosphere/package3>预期效果:开机显示你提供的画面,脚本位于 utilities/。
常见问题
Q:编译时 make 报工具链缺失或版本错误。 A:先确认已按 devkitPro 指南安装,再执行sudo dkp-pacman -S switch-dev switch-glm switch-libjpeg-turbo devkitARM devkitarm-rules hactool补齐构建包。
Q:修改 exosphere.ini 后无法启动。 A:将debugmode恢复为1(该值关闭会导致 Atmosphere 无法工作),配置模板见 exosphere.ini。
Q:启动后想进 Homebrew 菜单但按键无反应。 A:在override_config.ini的default_config段设置override_key=!L,按键名称对照表见 配置文档。
Q:某游戏作弊码不生效。 A:确认作弊码文件位于/atmosphere/contents/<program_id>/cheats/<build_id>.txt,且启用按键配置cheat_enable_key未被按住,加载规则见 cheats 文档。
更多疑问可查阅 官方 FAQ 或在项目 Issue 中提交日志与复现步骤。
遇到兼容性问题优先查阅 docs/faq.md,配置模板以 config_templates/ 为基准。
【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考