自远程更新开始以来,降级预防一直是消费者和公司之间的猫捉老鼠游戏。 Nintendo Switch采取了令人担忧的策略,即每次更新设备时都会永久修改设备,从而防止固件降级。 尽管这不是一个新概念(Xbox 360早在2007年就采用了),但这是防止最终用户根据自己的喜好修改设备的更大努力的一部分。

Nintendo Switch使用带有保险丝驱动器的Nvidia Tegra X1 SoC。 这使它能够以编程方式烧断保险丝-永久性地修改设备,使其无法恢复到先前的状态。
这个怎么运作
引导加载程序会验证特定的保险丝FUSE_RESERVED_ODM7 ,以防止降级。[1] 每个软件版本都希望熔断不同数量的保险丝-如果超出预期,它将无法启动;如果数量少于预期,它将熔断这些保险丝,然后继续启动。 熔断保险丝是不可逆的-一旦设置好,就永远无法撤消。 从理论上讲,有可能对SoC进行物理修改并更换保险丝,但是它是如此的侵入性和昂贵,以至于不是一个真正的选择。
ODM_RESERVED熔丝组中有256位,而ODM_RESERVED有8位。 这允许使用32个保险丝,或32个将来的固件版本(前提是它们在每个主要发行版中都烧断保险丝)。
解决方法
就在本周, 发布了Switch BootROM的第一个重要漏洞 。 这不是一个可远程修补的漏洞,这意味着目前约有1500万设备都处于脆弱状态,并且在生命周期中仍将继续处于脆弱状态。 fail0verflow还发布了Linux端加载程序 ,尽管截至撰写本文时,它尚未为公众准备。
[1] http://switchbrew.org/index.php?title=Fuses#Anti-downgrade