从0开始的硬破SXOS转Atmosphere大气层

您所在的位置:网站首页 ns大气层开机时显示错误 从0开始的硬破SXOS转Atmosphere大气层

从0开始的硬破SXOS转Atmosphere大气层

2023-11-18 19:13| 来源: 网络整理| 查看: 265

0x00 序言

假期收到了tx芯片断供的消息(后知后觉), 赶紧去某鱼收了台硬破的nslite。原机主没有"折腾", HostOS和TX虚拟系统都是10.1.0。

我的目的是pokemon剑盾的黑魔法, 经过测试, 只有最新HOS版本(11.0.1)才可以使用yy交换功能, 但是TX的boot最高只能支持到11.0.0。

那么有3种解决方案:

将SXOS转为大气层, 后者支持11.0.1

等待TX作者放出新boot (但是作者已经蹲局子了

魔改pokemon剑盾版本

从未来发展和难易度考虑, 选择了大气层系统转换。为了保险起见, 买了张512g的tf卡。

下面是本次环境:

ns lite, HOS:10.1.0

TX硬破, SXOS

大气层 18.0

hekate 5.5.4

0x01 创建emuMMC虚拟系统

我们的目的是不依赖emunand(sxos的虚拟系统), 从0制作emummc(大气层虚拟系统)。

为此, 首先需要3类关键数据:

boot.dat, boot.ini和license.dat

hekate: \bootloader + hekate_xxx.bin

大气层: \atmosphere + \sept + \switch + hbmenu.nro

需要说明的是, license.dat是硬破验证所必须的, 建议多处备份; 

boot.dat必须是SX Gear版本, 而非3.1.0等SXOS版本, 错误使用boot版本可能会在进入emummc时出现“pkg1 decryption failed”的报错。

boot.ini不是强制必须的, 这是一个配置文件, 用于说明引导时所需payload的位置; 如果没有此文件, 开机需要进入sxos三选一界面, 手动选择payload。

下面是boot.ini的example, tf卡的根目录有payload文件(hekate_ctcaer_5.5.4.bin):

此外, 我们还需要额外的一个文件: hekate_ipl.ini, 将其放入bootloader文件夹中; 此文件用于指明hekate的Lauch选项, 例:

如果你不了解以上配置信息的含义, 为了防止抱怨, 我还是友善的建议你使用其他作者的整合包, 否则可能会出现例如因为signature失效无法安装等错误。(但, 不了解就学习是更好的

将这3+1类数据组合放置在tf卡后, 按开机键会直接显示“HEKATE - IPL”的字样, 说明boot.ini已经生效。

进入hekate四选一界面后, 选择最右侧的“emuMMC”准备制作虚拟系统, 步骤如下:

左上侧"Info & Selection"应显示"disable", 在左下侧"Change emuMMC"中确认不存在虚拟系统信息, 否则请格式化tf卡

选择右上侧"Create emuMMC"创建虚拟系统, 推荐选择"SD File"便于直观检查虚拟系统文件, 等待15m左右完成

确认"Info"显示为"Enable", 并且在“Change emuMMC”中可以看到新建的虚拟系统(e.g. emuMMC/SD00)

以上步骤成功完成后, 回到四选一界面, 如果你的hekate_ipl.ini配置正确, 点击Launch会显示像下图的界面:

pic 1-1

选择左侧第1个"EMUMMC_CFW", 这将进入大气层虚拟系统, 在设置中检查:

pic 1-2

可以看到"AMS M.18.0|E"字符串, 其中'E'代表虚拟系统; 如果在Launch中选择第2项, 此处将会替换为'S', 代表真实系统。

至此, 我们的硬破机已经进入大气层虚拟系统了!

0x02 升级emuMMC系统

尽管现在已经用上了大气层, 但由于EMUMMC是直接复制的原机器系统, 版本是10.0.1, 太古老了。

为了让最新出的游戏正常运行, 升级系统到最新版本是必须的(截至21/02/17, 最新HOS为11.0.1), 这也是我们换大气层的目的。

熟悉SXOS升级系统的玩家们肯定了解"大白兔"--ChoiDujourNX, 用于升级系统; 但是, 在大气层中绝对不要使用大白兔升级。

在我没有查阅足够资料用大白兔升级11.0.1时, 尽管显示成功, 但再进入虚拟系统时就扔出以下的错误:

pic 2-1

"unknown pkg1 version", 我没有debug其错误原因, 根据其他大佬的说法是大白兔污染了boot文件 (如果有更详细的错误成因信息欢迎与我交流:)

这里推荐使用大气层自带的工具:daybreak来升级系统, 步骤如下:

 解压ns固件文件夹到tf卡中 (如何获取见附录:Link[4]

进入虚拟系统, 点击相册(hb), 选择daybreak

点击Install

选择步骤1中的固件文件夹

有效性检查成功后, 选择Continue

选择Preserve settings

选择Install (FAT32 + exFAT)

选择Continue

等待系统升级, 完成后选择shutdown

再次开机进入虚拟系统, 如果一起正常, 在主机信息中你会看到类似下图的界面:

pic 2-2

欢迎来到11.0.1 :)

0x03 给emuMMC打上补丁

我们完成和创建和升级虚拟系统, 现在我们可以打开剑盾来玩了吗? 不好意思, 大气层不像是sxos, XCI类型的游戏必须安装才可以玩。

如果你使用Awoo-Installer安装游戏, 在首次使用而需要安装nx-hbmenu.nsp时, 很大概率会遇到此报错:"Make sure your signature patches are up to date and set up properly."

很明显, 我们需要给虚拟系统打上对应的签名补丁, 解决方案同样可以在github找到, 见附录:Link[3]。

在release中找到对应固件和大气层版本的补丁, 根据readme, 将下载后的数据放入到tf卡:

pic 3-1

同时, 修改hekate_ipl.ini中的文本:

pic 3-2

这也是我为什么在0x02节提到siganature的原因: 简单来讲, 加上"kip1patch=nosigchk"即可让patch生效。

再次安装nsp时, 就可以顺利运行了。(此处不涉及游戏的安装方法, 这与本文主题不符:(

现在, 我们的虚拟系统已经100%完成了, 实践了以上步骤, 你也可以做出属于你的整合包!

0x04 结语

尽管虚拟系统已经符合了我的要求, 现在也成功黑魔法了, 但实际上还是有一些问题没有解决。

比如在运行checkpoint374, 会导致虚拟系统崩溃:

pic 4-1

换了其他的整合包实验时依旧如此, 解决方法是换工具: 使用JKSV也可以实现存档的导出和导入。

如果你能提供解决方案或者详细的报错原因, 我会十分感激, 欢迎进行技术交流!

附录: Link

[1] 大气层: https://github.com/Atmosphere-NX/Atmosphere

[2] hekate: https://github.com/CTCaer/hekate

[3] patches: https://github.com/ITotalJustice/patches

[4] firmwares: https://darthsternie.net/switch-firmwares/

附录: Refs

[1]: 【2020.12.19】闲聊一下switch“双系统”和“多引导”的概念

[2]: Switch 大气层 Atmosphere 如何离线升级系统

[3]: Switch 大气层 Atmosphere 如何使用Awoo 安装nsp xci nsz 游戏

[4]: GitHub - Team-Neptune/DeepSea: The new All-in-One CFW package for the Nintendo Switch.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3