ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Atmosphere 定制固件上手:从源码构建到上机启动的 5 个关键点

Atmosphere 定制固件上手:从源码构建到上机启动的 5 个关键点 Atmosphere 定制固件上手从源码构建到上机启动的 5 个关键点【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere给 Switch 装完一次系统更新后你可能发现老游戏开始闪退或者你一直想玩金手指、跑 homebrew又不想动真机 eMMC 里的存档。AtmosphereAtmosphère就是做这件事的 Switch 定制固件它逐层替换系统组件让你可以在 SD 卡上运行虚拟系统、注入自定义系统模块、管理金手指。这篇文章带你把它从源码构建成可运行的产物并解释几个真正影响日常使用的配置。 它解决什么问题Atmosphere 的设计思路是分层替换Switch 固件每一层引导加载、安全监视器、NAND、内核、系统模块、应用层都被对应组件替换或修改任何一层出问题都只影响那一层。核心组件共六个按大气层命名Fusée— 一级引导加载器负责加载、校验并修补后续阶段的 TrustZone 和内核包Exosphère— 自定义安全监视器运行在最高特权模式Thermosphère— EL2 层 EmuNAND 支持实现 NAND 镜像的虚拟化与重定向Mesosphère— 内核实现Stratosphère— 自定义系统模块扩展内核能力并 hook 关键系统行为Troposphère— 应用层的 Horizon OS 补丁实现具体 CFW 功能 五分钟构建出来构建依赖几乎全部来自 devkitPro 生态先按 devkitPro 官方指南装好 devkitA64 和 devkitARM 工具链然后执行下面三组命令# 用 dkp-pacman 安装 Switch 目标工具链和构建依赖 dkp-pacman -S switch-dev switch-glm switch-libjpeg-turbo devkitARM devkitarm-rules hactool # 安装 LZ4 Python 库exosphere 构建脚本需要 pip install lz4 # 克隆仓库并在根目录执行 make 完成全部组件构建 git clone https://gitcode.com/GitHub_Trending/at/Atmosphere cd Atmosphere make可选依赖PyCryptodome部分加密步骤用到。Python 2 或 3 均可官方未保证 Python 3 全兼容。构建产物按组件散落在各子目录部署到 SD 卡的目录结构可参考 docs/features/configurations.md 中对各配置文件位置的描述。 核心能力速览虚拟系统emuMMC把整个 NAND 重定向到 SD 卡上的镜像系统更新、存档、密钥都发生在镜像里真机 eMMC 保持不动。配置入口是/emuMMC/下的emummc.ini进程能力定义见 emummc/emummc.json。金手指支持 Action-Replay 风格代码且自带一套重写过的虚拟机——修复了原版条件指令的多个 bug、支持嵌套条件块还新增了浮点运算指令。代码文件放在/atmosphere/contents/program_id/cheats/下按 build_id 命名。系统模块替换stratosphere/下每个子目录都是一个可独立编译的系统模块loader、pm、fs、sm等同名替换系统自带模块这是 Atmosphere 能 hook 系统行为的基础。调试与日志串口日志exosphere 可配 UART 端口和波特率、SD 卡日志LogManager 模块、cheat VM 调试日志三种通道。⚙️ 按需调整配置所有默认模板在 config_templates/SD 卡上的实际位置exosphere.ini放 SD 卡根目录其余放/atmosphere/config/。下面四个是最常被动的; exosphere.ini — 开启用户态调试模式默认 0 ; 什么时候改调试 homebrew 或抓用户进程崩溃时 [exosphere] debugmode_user 1注意debugmode 1是硬依赖注释里写明了关掉会直接破坏 Atmosphere。; stratosphere.ini — 强制禁用游戏卡读卡器nogc 保护 ; 什么时候改想防止系统更新时读卡器固件被烧写、又不想烧 fuse 时 [stratosphere] nogc 1; system_settings.ini — 禁止向任天堂上报错误报告 ; 什么时候改在意隐私、不希望 fatal 信息上传时 [eupld] upload_enabled u8!0x0; override_config.ini — 按住 R 启动游戏时进入 homebrew 菜单 ; 什么时候改需要常驻 homebrew 入口、或改金手指启用按键cheat_enable_key 同理 [hbl_config] pathatmosphere/hbl.nsp override_any_app_keyR其余项blank_prodinfo_*、log_port、enable_log_manager等含义都写在模板注释里建议对着 config_templates/exosphere.ini 逐个看其中 PRODINFO 空白功能的注释明确提示不鼓励使用。❓ 高频问题速查现象最可能原因快速处理make报工具链相关错误devkitA64/devkitARM 未装或 dkp-pacman 包缺失对照 docs/building.md 的依赖清单逐项安装开机直接 fatal 退出system_settings.ini值格式错误文档明确malformed 值会直接 fatal与 config_templates/ 逐项比对注意type!value格式金手指不生效cheat 路径或 build_id 不对或没按启用键文件须为/atmosphere/contents/program_id/cheats/build_id.txt参考 docs/features/cheats.md系统更新后卡带读卡器仍被更新未开启 nogc 保护stratosphere.ini中设nogc 1如果改完配置反而开不了机优先怀疑system_settings.ini它的取值是类型!值的强解析如u8!0x0一个字符写错就会在启动阶段 fatal而不是静默忽略。 进阶玩法自定义启动画面替换 1280x720 的开机图源码树里有现成脚本 utilities/insert_splash_screen.py用法见 docs/features/configurations.md。写自己的系统模块stratosphere/下每个模块都是源文件 system_module.mk*.json三件套照着stratosphere/erpt/这种最小模块抄结构即可。深入 emuMMC 配置多镜像、多系统切换的细节看 emummc/ 目录下的实现与 docs/features/configurations.md 的 emummc.ini 章节。 生态与社区随仓库分发的四个库是二次开发的主要入口libexosphere安全监视器 API、libmesosphere内核层、libstratosphere系统模块开发、libvapours工具库全部位于 libraries/。项目由 SciresM、TuxSH、hexkyz 和 fincs 维护社区入口Discord 邀请写在 README.md 里。先把config_templates/的模板原样拷进 SD 卡对应位置别凭记忆改配置。动nogc、debugmode_user之前确认你知道默认值改坏了删掉该行即可恢复默认。构建产物和文档一起看docs/changelog.md 记录了每个版本的变动。下一步把产物部署到 SD 卡用全默认配置冷启动一遍确认无误后再逐项加配置。【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表