科普ns硬破机tx转大气层deepsea原理知识

硬破机tx转大气层deepsea原理科普

    前言:switch 硬破机一直由 TX 主导且只能通过 sxos 引导,所以自大气层0.17.0 内核、hekate5.50 开始正式支持 mariko 机型(续航/lite),所以有必要和广大硬破机玩家聊聊大气层。

    我只是普通玩家不懂技术,以下内容不一定正确,仅供交流和参考。
    新玩家可以考虑阅读:大气层自制系统的基本常识 20200108 修订第二版

一、了解大气层整合包文件构成

    大气层属于开源内核,所以由一堆文件夹和文件构成,但是事实上真正的大气层内核只有 atmosphere 和 sept 两个文件夹以及根目录 hbmenu.nro 构成。但是启动这个内核需要有一个 payload 引导文件,它就是 fusee-primary.bin。

    那为什么还多一个 bootloader 文件夹?那是因为在 rcm 菜单里需要支持图形化菜单,提供更多的功能。这个时候开源的第三方 bootloader,强大的hekate 就登场了。通过 hekate,你可以在 rcm 菜单里制作引导虚拟系统、备 份还原 nand、查看机器硬件信息,甚至二次 payload 其它的注入引导文件等。

    (1)比如你可以二次 payload 大气层的 fusee-primary.bin。典型的以刺心发布的大气层整合包为例,默认大气层功能自动开启。

    (2)比如你还可以通过 hekate 解析大气层 fusee-secondary.bin 进行自定义引导。典型的海王星小组发布的 deepsea 整合包,可以选择自定义引导真实/虚拟系统,功能可以在 hekate_ipl.ini 中进行自由配置。

    (3)同样你也可以通过 hekate 进行配置去引导运行 tf 卡上的安卓系统、lakka系统这类独立的通用系统,前提是它们适配 mariko 机型。

    其它的文件夹和文件基本上可有可无。比如 switch/下的文件夹,都是一些 nro 自制软件,多与少并不影响加载 cfw 进入系统,你可以自由增减。所以和闭源的 sxos 直接单独封装一个 boot.dat 作为内核来说,我们常用的大气层整合包就是由《atmosphere》《bootloader》《sept》和 hbmenu.nro构成,然后通过hekate 首次 payload 引导。

    所以更新大气层内核的版本,一般建议先保留 nintendo,emummc 和 checkpoint/saves 三个文件夹后,删除 tf 卡上其余文件,再解压缩整合包进行覆盖。不像 sxos 那样直接覆盖新版本的 boot.dat 就行了。建议看一下:alan 兄弟的 deepsea 个人整合包与原版 deepsea 的对比

    此外注意一下:

    (1)大气层的 mod 路径是 atmosphere/contents/,注意主题等因素

    (2)还有很常见的是 switch/checkpoint/saves 是备份的游戏存档

    二、关于芯片硬破机如何引导大气层

    因为硬破机开机必须基于 boot.dat,所以假设未来 tx 小组停止更新 boot文件,则硬破机只能借助大气层+hekate 来进行引导。hekate5.50 版本以上已 经支持续航/lite 机型,

    (1)第一种方法,tx 官方已经更新 sx gear1.1 版本支持硬破机,和前面 1.0 版本支持 txpro 一样,直接替换 boot.dat,内部结构应该是删除 cfw 加载,直接 将引导权交给位于 tf 卡根目录的 payload.bin 作为引导。所以你可以重命名hekate.bin 为 payload.bin。

    (2)还有一种方法是刷 sx 芯片,类似 tx 官方修复紫灯的 sx flasher,之前论坛网友刺心兄弟已经发布了教程,需要拆开 ns 后盖,通过 sx 芯片上内置的 usb口与数据线连电脑,将开源的 spacecraft 固件刷入替换掉 sx 芯片固件,其实你可以把它理解为 sx gear 的芯片版本。

    (3)当然你也可以每次按住音量+开机,在 options 里选择 payload,引导hekate。不过就是麻烦点而已,但是由于 sxos 内核和大气层内核在引导上有冲 突,硬破机需要借助一些插件切换 sx gear 和 sxos 的 boot.dat。 如果是基于 rcm 硬件漏洞的软破机,因为谁 payload 谁优先,而且还可以在系统里通过 deepsea 工具箱/payload launcher 等 nro 自制软件,实现重启 二次 payload 切换,所以无需插件。

    (4)假想一下:未来有可能某某北的大神们研究出 sx 芯片工作原理,制造出国产 sx 芯片,等于用国产芯片去触发漏洞,然后通过开源的大气层去引导 ns 系统。

三、关于虚拟系统的转移

    对于 tx 或者大气层来说,既然它们只是引导工具,所以两者引导同一个 NS真实系统是完全可行。(废话:一台 switch 只有一个真实系统)。

    但是对于引导虚拟系统来说,由于 tx 和 hekate 制作的虚拟系统文件,路径不一样,这就需要用到 hekate 的转移虚拟系统功能。tx 属于闭源,虚拟系统是限定了 tf 卡的路径和格式,但 hekate 开源可以适配 tx 的虚拟系统。

    在 hekate 中的 emummc 子菜单中就有 migrate emummc 功能,和它自主创建虚拟系统的 create emummc 功能不同,migrate emummc 可以将 tx制作的虚拟系统直接转移过来,包括 tf 卡文件格式和隐藏分区格式都可以。

    转移的同时,hekate 还会把原 tf:emutendo/目录搬到 tf:emummc/xx00/下,当然假如你的虚拟系统是纯净的,没有任何游戏的,那么删除 emutendo也无所谓,每次进入虚拟系统会自动生成。建议参考:【2020.9.29】关于 switch 虚拟系统制作、精简和引导的使用心得

四、关于虚拟系统的离线升级

    由于大白兔 1.02 已经是很旧的软件,且由于会污染真实系统 boot0 导致开 机蓝灯时间过长,不能用它离线升级真实系统(软破机不受影响),所以对于tx 引导和大气层引导虚拟系统,在离线升级软件上有所区别。需要搞清楚虚拟系统与 tx/大气层引导工具的逻辑关系。

    1、软破机虚拟系统离线升级支持三种方式,且 tx/大气层引导不受任何影 响。可以放心串着离线升级。

    (1)choidujournx1.02,离线升级包,从最早用到现在。

    (2)daybreak,离线升级包,离线包要求比大白兔 1.02 苛刻,且需要大气层新版内核支持,不支持 tx,但其采用 ns 官方升级内核,所以比较稳定。

    (3)tinfoil,通过安装 nsp 格式的离线升级包实现离线升级。

     2、硬破机虚拟系统离线升级是两种方式,且对应 tx/大气层引导

    (1)tx 引导的虚拟系统支持大白兔 1.02 离线升级,且支持大气层引导后通过daybreak 离线升级或降级的虚拟系统。需要转移给 tx 引导。

    (2)大气层引导的虚拟系统必须通过自带 daybreak 离线升级,因为大白兔 1.02会污染虚拟系统 boot0 导致解密失效。

    (3)tinfoil 离线升级并不支持 mariko 机型,最高只能支持硬破机中使用 v1焊接条的旧版 switch 补丁机,一般不推荐了。

    五、关于 sigpatch 的区别

    大气层原版只是创建和优化 nro 自制软件运行环境,不支持 nsp/xci。而 es/fs 插件原本封装在 tx 的 boot.dat 里用以运行 nsp/xci。后被人提取并移植 给大气层作为外挂插件使用。

    es/fs 插件一直以 switch 系统大版本更新为准。而大气层新内核多了一个loader 插件,大气层内核每一次变化 loader 插件都需要更新。

    (1)对于 payload 大气层原版 fusee-primary.bin 引导的,es/fs/loader 插件 以 ips 文件形式存放在 atmosphere/下

    (2)对于 fss0 引导 fusee-secondary.bin 的 deepsea 整合包,es 插件路径一 样,但 fs/loader 插件存放在 bootloader/patches.ini 中由 hekate 进行解析。 (全文完)

    其实说了这么多,对于硬破机用户来说,转不转大气层由自己决定,了解一下大致原理后基本毫无门槛。一切以实际体验为准!祝各位春节快乐!

玩家保罗
2021 年 2 月 8 日

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: