资讯动态

大气层stratosphère系统模块全景解读:17个模块重实现与IPC服务扩展原理

发布时间:2026/10/25 9:09:09 来源:尧图企业网站定制
固件嵌入式【免费下载链接】Atmosphere-Stable大气层整合包系统稳定版项目地址https://gitcode.com/gh_mirrors/atm/Atmosphere-Stable点击查看免费下载Atmosphère大气层是 Nintendo Switch 上最流行的自制固件之一其stratosphère平流层层正是负责系统级定制的核心它重实现了原厂 Horizon OS 的 17 个系统模块并通过一系列自定义IPC 服务扩展命令支撑起 LayeredFS 分层文件系统、金手指管理、自制软件启动等经典功能。本文将带你用最短的时间搞懂 stratosphère 的全部 17 个模块、它们各自的改造点以及大气层是如何通过扩展 IPC 服务来注入新功能的。一、stratosphère 在大气层架构中的位置大气层采用多层大气式设计每一层替换或修改 Switch 系统的一个组件官方文档中概括为stratosphère provides customization of the Horizon OS at the system level. This includes a reimplementation of several system modules and additional, custom system modules.stratosphère 在系统层面对 Horizon OS 进行定制包括对多个系统模块的重实现以及额外的自定义系统模块。完整架构说明见 docs/main.mdstratosphère 的官方介绍在 docs/components/stratosphere.md。所有模块源码集中在 stratosphere/ 目录下每个模块一个子目录配套一份独立的 JSON 权限描述文件如 stratosphere/loader/loader.json用于声明该进程的 title id、可访问的服务与系统调用能力。二、17 个系统模块全景清单 下表汇总了 stratosphère 提供的 17 个核心系统模块以及大气层对每个模块做的关键改动细节文档均在 docs/components/modules/ 下模块原厂职责大气层的重实现亮点ams_mitm大气层自有服务拦截拦截 bpc/fs/ns/set/dns 等服务实现 LayeredFS、DNS 重定向、固件版本伪装boot硬件初始化与配置替换为黑白定制启动画面与电池图标boot2启动其余系统模块支持从 SD 卡启动用户自定义系统模块creport崩溃报告管理报告重定向到/atmosphere/crash_reports/并禁止自动上传cs卡带服务轻量重实现dmnt调试监视器新增金手指服务dmnt:cht支持内存冻结、条件指令eclct.stub错误报告收集做成空壳stub完全移除收集功能erpt错误报告管理报告重定向到/atmosphere/erpt_reports/fatal致命错误处理自定义报错界面寄存器 backtrace报告存到/atmosphere/fatal_reports/jpegdecJPEG 解码支持双会话让自制软件也能做软件解码loader从 NSO 创建进程exefs 替换、NSO 补丁、nx-hbloader 启动支持重头戏ncm内容管理仅 opt-in 启用pgl程序启动10.0.0不向低固件回退pm进程追踪与资源限额从 APPLET 池划 24 MiB 给 SYSTEM 池扩展pm:info/pm:dmnt命令ro动态库加载3.0.0回退到 3.0.0 以下固件并支持 NRO 补丁sm服务管理新增 Mitm 安装/查询接口与sm:dmnt调试接口spl安全平台服务加密等重实现加密、随机数等平台服务 补充源码树中还有 dmnt.gen2/新内核下 dmnt 的变体、轻量的 fs/htc 实现以及 LogManager/、TioServer/ 两个纯自定义系统模块它们不重实现原厂模块而是提供日志与文件服务。三、重点模块深度解析 ⚡1. loader整个大气层的进程之门loader 重实现了原厂的ldr模块stratosphere/loader/source/ldr_main.cpp负责从可执行 NSO 镜像创建进程并注册访问控制。它最核心的扩展是内容重定向创建进程时按rtld → main → subsdk0~9 → sdk的顺序查找 NSO并且优先检查 SD 卡整分区替换用 PFS0 文件/atmosphere/contents/程序 ID/exefs.nsp一次性替换整个 exefs 分区单文件替换在/atmosphere/contents/程序 ID/exefs/下找到同名文件即优先使用配合main.stub之类的空壳文件可以剔除某个 NSONSO 补丁加载时自动在/atmosphere/exefs_patches/补丁集/NSO build id.ips查找 IPS/IPS32 补丁按 build id 精确匹配多个补丁集还能叠加。这套机制让用自制软件版本替换 applet、系统模块甚至游戏本体成为可能。完整技术语义见 docs/components/modules/loader.md。2. ams_mitm服务拦截MITM的艺术ams_mitm 是大气层最有攻击性的模块——它拦截其他系统模块对外提供的 IPC 服务请求可以拒绝、延迟、替换或重定向任意请求子模块包括fs_mitm拦截文件系统操作是 LayeredFS替换游戏资源文件的底层基础set_mitm拦截系统设置服务支持覆盖游戏语言、修改固件调试设置并拦截GetFirmwareVersion把设置页版本号伪装成#.#.#|AMS #.#.#|S/ES系统 eMMCEemulated eMMCbpc_mitm拦截电源服务简化重启/关机按钮逻辑dns_mitm拦截 DNS 解析把指定域名重定向到自定义地址。入口源码见 stratosphere/ams_mitm/source/amsmitm_main.cpp各子模块文档见 docs/components/modules/ams_mitm.md。3. pm 与 sm资源管控和服务中枢pm重实现了进程管理模块除常规功能外还做了一件很实用的事默认把 APPLET 内存池缩 24 MiB 划给 SYSTEM 池让自定义系统模块拥有更大内存空间。sm重实现了服务管理模块stratosphere/sm/source/sm_main.cpp它是所有模块间通信的总机大气层在其中注入了 Mitm 的安装/卸载/等待接口使 ams_mitm 能动态接管任意服务。4. boot 与 boot2定制化的第一眼boot负责硬件初始化大气层在这里替换了原厂启动画面就是上文那张经典深蓝星空图和电池图标boot2stratosphere/boot2/source/boot2_main.cpp负责拉起其余系统模块大气层让它可以从 SD 卡加载用户提供的自定义模块。5. dmnt金手指的幕后推手dmnt 提供了金手指管理器的 HIPC 服务dmnt:cht支持内存读写、冻结地址、条件分支等指令集且完全向后兼容旧格式并修复了原版的多处 bug条件块结束判断错误、越界读取等。格式与加载流程详见 docs/features/cheats.md。四、IPC 服务扩展原理65000 号命令的隐藏空间 大气层扩展功能的通用手法非常统一保留原厂 IPC 命令的全部功能然后在命令 ID 650000xFF08 附近之后追加自定义命令。因为原厂协议不会用到这么大的命令号所以不会冲突普通程序也感知不到差异。举几个真实例子SwIPC 定义见 docs/components/modules/sm.mdsm 服务新增AtmosphereInstallMitm、AtmosphereHasService、AtmosphereWaitService等命令用于安装拦截器与查询服务状态pm:info新增AtmosphereGetProcessId、AtmosphereGetProcessInfo供金手指程序定位目标进程ldr:pm / ldr:shel新增AtmospherePinProgram、AtmosphereRegisterExternalCode等命令支撑程序固定与外部内容注册。这些扩展命令让第三方自制软件如金手指管理器、HBL 启动器能够官方级地查询和控制系统状态而不必直接读内存或 hack 文件——这正是大气层 IPC 扩展优雅的地方。五、相关配置与源码导航 资料路径stratosphère 官方文档docs/components/stratosphere.md17 个模块文档合集docs/components/modules/模块源码总目录stratosphere/配置模板stratosphere.ini 等config_templates/stratosphere.ini、config_templates/override_config.ini配置项说明docs/features/configurations.md金手指功能文档docs/features/cheats.md编译指南docs/building.md其中stratosphere.ini位于 SD 卡/atmosphere/config/目录可控制 nogc 卡带保护等行为override_config.ini则负责按键绑定例如把某个按键组合绑定为启动自制菜单或启用金手指。六、总结三层设计思想重实现而非修改大气层不补丁原厂模块二进制而是整体重写模块源码再注册到内核行为完全可控65000 号命令扩展 IPC在原厂协议之上无侵入地叠加自定义命令让生态工具能安全地深度集成拦截优先通过 ams_mitm 在服务层面拦截请求实现 LayeredFS、DNS 重定向等透明修改。理解了这 17 个模块与 IPC 扩展机制你就掌握了阅读大气层源码地图的钥匙——下一个建议读 docs/components/exosphere.md看看更低一层的安全监控器是如何把 stratosphère 安全地送进用户态的。赞分享固件嵌入式【免费下载链接】Atmosphere-Stable大气层整合包系统稳定版项目地址https://gitcode.com/gh_mirrors/atm/Atmosphere-Stable点击查看免费下载相关推荐Atmosphere大气层stratosphère 模块体系Horizon OS 系统级定制与模块重实现深度解析Atmosphere大气层stratosphère 模块体系Horizon OS 系统级定制与模块重实现深度解析 导读 本文基于 Atmosphere s固件嵌入式Atmosphère stratosphère 层完全指南Horizon OS 系统级模块重实现与自定义系统模块架构解析Atmosphère stratosphère 层完全指南Horizon OS 系统级模块重实现与自定义系统模块架构解析 stratosphère平流层是固件嵌入式操作系统系统编程ThinkLibrary服务层架构模块化服务的实现原理ThinkLibrary服务层架构模块化服务的实现原理 引言为什么需要模块化服务架构 在现代Web应用开发中随着业务复杂度的不断提升传统的单体架构往往后端认证鉴权创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑