Atmosphère是Nintendo Switch一款很有意思的定制固件,法语意为大气层。由Exosphère(散逸层)Stratosphère(平流层)等等几个不同的组件组成,每个组件对应着大气层的组成部分,负责执行Nintendo Switch不同的系统功能。

Atmosphère的组件包括:

  • Fusée 一个自定义引导程序。
  • Exosphère(散逸层) 功能齐全的定制安全监视器。
  • Stratosphère(平流层) 一套定制系统模块。
  • Thermosphère(热层) 一种基于管理程序的emuNAND实现。该组件尚未实装
  • Troposphère(对流层) Horizon OS的应用程序级补丁。该组件尚未实装

Fusee

Fusée(不要与FuséeGelée混淆)是启动Atmosphère并取代Nintendo的Package1loader/bootloader所需的自定义引导程序。它目前使用Tegra X1 RCM漏洞来运行。

Fusée分为两个独立的部分:fusée-primary和fusée-secondary。这是由于RCM漏洞限制了发送到设备上的payload的文件大小。

截至2018年6月,新发售的Switch系统使用了ipatched启动芯片而让Fusée(或任何需要FuséeGelée漏洞的有效载荷)无法工作。所有ipatched系统共享HAC-S-JXE-C3产品代码。虽然Fusée无法在这些ipatched设备上运行,但他们仍然使用固件4.1.0,这很容易受到即将推出的DéjaVu软件攻击。但请注意,如果您在其中任何一个ipatched设备上更新了高于4.1.0的固件,那么安装Atmosphère或运行任何自制程序的可能性几乎不存在。

此外,据悉名为“Mariko”的Switch的硬件版本正在开发中。虽然目前仍未在商店中看到过这样的单元,但预计任天堂会默默地推出它们。Mariko单元很可能会修复目前用于访问CFW的FuséeGelée的启动芯片漏洞,并可能拥有自己的专有引导程序。

Fusse-Primary

Fusée-primary是从外部设备发送到交换机的payload文件(fusee-primary.bin)。一旦发送,fusée-primary会在Switch的SD卡加载fusée-secondary之前进行初步准备。

可以通过Switch SD卡上的BCT.ini文件配置Fusée-primary。

Fusse-Secondary

Fusée-secondary是一个payload文件,保留在Switch的SD卡(fusee-secondary.bin)的根目录下。它在fusée-primary完成后自动启动,并负责为将来运行的环境(如自制菜单)准备Switch的硬件。 Fusée-secondary还负责验证和启动Exosphère。

Fusée-secondary包含各种.kip模块。这些模块可以修改操作系统中的现有功能,也可以添加新功能。

Fusée还能够链接其他payload,例如Linux。

Exosphère

Exosphère是Arm的TrustZone(TZ)的重新实现,也称为安全监视器(Secure_Monitor.bin)。它具有Switch处理器上可用的最高权限模式,并且可以访问控制台上的所有内容。

Exosphère可能会在Jamais Vu和DéjaVu即将推出的Switch软件漏洞中扮演重要角色,它允许用户在Fusée-Gélee补丁(ipatched)Switch控制台上启动Atmosphère,并且还可以直接启动来自Switch本身的CFW,而不使用任何类型的外部设备(例如计算机或RCM夹具),只要它们位于足够低的系统固件上。

TrustZone/Secure Monitor

TrustZone负责Switch上的所有加密操作。它运行方式背后的想法是所有密钥都保留在TrustZone中,而用户空间只能获得它们的“句柄”。这将确保keydata永远不会泄漏并保持安全。它还有一些更多的职责,例如电源管理,提供随机数源,以及提供对存储在熔丝中的各种信息的访问。

扩展

Exosphère目前只包含一个扩展,一个SMC允许自制软件查找当前运行的Atmosphère版本,以便找出哪些拓展是允许使用的。

Stratosphère

Stratosphère允许自定义Horizon OS和Switch内核。它包括扩展内核并提供新功能的自定义系统模块。它还包括重新实现的加载器系统模块来Hook重要的系统操作。

Stratosphère包含的系统模块包括:

  • boot 该模块启动系统并初始化硬件。
  • creport 重新实现任天堂的崩溃报告系统。将所有错误日志转储到SD卡,而不是将它们保存到NAND并将它们发送到Nintendo。
  • fs_mitm 此模块可以记录,拒绝,延迟,替换和重定向对文件系统发出的任何请求。
  • loader 允许修改未存储在内核中的二进制代码。
  • pm 重新实现任天堂的流程管理器。
  • sm 重新实现任天堂的服务管理器。

Thermosphère

Thermosphère是基于emuNAND实现的管理程序。 emuNAND是Switch内部存储器(sysNAND)上固件的副本,通常安装在外部SD卡上。

emuNAND完全独立于sysNAND运行。 这允许人们安全地制作或测试各种修改和自制软件,而不需要通过测试emuNAND上的内容来恢复其NAND备份,并在完成后切换回sysNAND。
对于过去的任天堂系统(如3DS),甚至可以使用emuNAND将系统更新到最新固件,同时保持sysNAND的较低版本,然而由于任天堂在Swtich使用efuse技术来进行主系统的更新,这在Switch上可能更难做到。

Thermosphère目前计划包含在Atmosphère的1.0版本中。

Troposphère

Troposphère包含对操作系统的各种应用程序级修改,例如直接从homemenu启动homebrew或执行cheat/gameshark代码,类似于Luma3DS。
Troposphère尚未在Atmosphère实装。

最后修改:2020 年 10 月 25 日 12 : 51 PM
如果觉得我的文章对你有用,请随意赞赏