Changes

794 bytes added ,  02:39, 10 March 2022
Removed most of the wrong info about this targeting PatchMii, and added a β€œscene history” section because most other places probably still claim this targets patchMii
Line 6: Line 6:  
| stubvariant = Unique
 
| stubvariant = Unique
 
}}
 
}}
βˆ’
'''IOS254''' is commonly used for various purposes:
+
'''IOS254''' is an [[IOS]] not used by retail software, which led to it being used by [[PatchMii]] and [[BootMii]]-IOS.
   βˆ’
* [[BootMii]] as an [[IOS]], is installed to this slot.
+
== Scene history ==
βˆ’
* [[PatchMii]] installs to this slot.
+
On v2's release in [[3.4]], IOS254 was originally thought to be an attempt at [[stub IOS|stubbing]] some [[cIOS]], although it was unclear at the time whether it was intended to overwrite PatchMii or if Nintendo intended to overwrite [[IOS249]], but they assumed Nintendo did not understand how [[TMD]] versions work (which was probably designed by BroadOn), since v2 does not overwrite higher versions such as v2070.
βˆ’
* [[3.4]] and [[3.5]] included a copy of [[IOS9]] as IOS254 to overwrite PatchMii, as that was the last place (besides [[IOS16]]) the [[signing bug]] could be exploited. Each IOS9 update was then copied to this IOS.
  βˆ’
* The [[4.3]] update included a [[Stub IOS]] in this slot, in an attempt to overwrite BootMii/IOS, which succeeded for BootMii versions earlier than 1.4. Versions 1.4 and above use version 65281 to prevent this.
     βˆ’
[[Revolution OS]] contains code that cancels the [[error 001]] checks if the current IOS is below IOS30, or is IOS254 or higher. Both of these checks existed in late 2007 (seen in the [[IOS21]] [[NAND Boot Program]]), before BootMii/PatchMii was released, which may mean there is also a real IOS254 used internally. On top of this, v2 uses content ID 1, so there must have been a version before it, most likely v1.
+
As [[4.0]] was released, containing v3, HackMii members began to assume that this was indeed meant to kill PatchMii (and later, BootMii); marcan wrote an open letter to Nintendo about this suspected confusion, which led to [[IOS249]] and related IOSes being stubbed in [[4.2]], although they also pushed v260 then, which people stopped paying attention to.
   βˆ’
v1 was most likely a copy of IOS9v516, since it only has one content, although it is unclear what purpose a second copy of IOS9 would serve. Nintendo probably assumed PatchMii was an installer for their IOS254v1, which they assumed had been leaked and was being used to restore the signing bug, which led them to push v2 to everybody.
+
When [[4.3]] included v65280, people assumed Nintendo had finally figured out how to properly stub IOS254, and Nintendo never released any other IOS254 versions past that point.
 +
 
 +
This theory of Nintendo not understanding the TMD system remained the general idea for around 10 years (until May 2021), when it became obvious that v3 and v260 follow the same version number increments as the past versions, and were being updated together with IOS9. For the next 7 months, it was believed that v2 was meant to overwrite PatchMii due to the [[signing bug]] being present there, then the rest of the updates were only released because this IOS9 copy was a new IOS that could be used to gain control through exploits such as the [[STM Release Exploit]].
 +
 
 +
This was finally busted in early 2022, when it was noticed that [[Revolution OS]] contains code that cancels the [[error 001]] checks if the current IOS is below IOS30, or is IOS254 or higher. Both of these checks existed in late 2007 (seen in the [[IOS21]] [[NAND Boot Program]]), before BootMii/PatchMii was released, which suggests that there is a real IOS254 used internally. On top of this, v2 uses content ID 1, so it became clear that there was a version before it, most likely v1, since it makes more sense to skip 0 than 1.
    
== Titles using this IOS ==
 
== Titles using this IOS ==
Line 22: Line 24:  
== Version history ==
 
== Version history ==
 
{{IOS version history|
 
{{IOS version history|
βˆ’
{{IOS version|v1|none|Never released. See above for more info.}}
+
{{IOS version|v1|none|Never released. Most likely a copy of IOS9v516.}}
βˆ’
{{IOS version|v2|identify|Included in 3.4 and 3.5 updates to block [[PatchMii]] (copy of IOS9v520).}}
+
{{IOS version|v2|identify|Included in 3.4 and 3.5 updates to fix the signing bug.}}
 
{{IOS version|v3|stm|Included in [[4.0]] update. Copy of IOS9v521}}
 
{{IOS version|v3|stm|Included in [[4.0]] update. Copy of IOS9v521}}
 
{{IOS version|v260|stm|Included in [[4.2]] update. Copy of IOS9v778}}
 
{{IOS version|v260|stm|Included in [[4.2]] update. Copy of IOS9v778}}
βˆ’
{{IOS version|v65280|na|[[Stub IOS]] in [[4.3]] update to wipe out BootMii/IOS and remove this IOS branch. Also included on [[RVL-CPU-20]] consoles}}
+
{{IOS version|v65280|na|[[Stub IOS]] in [[4.3]] update to remove this IOS branch.}}
 
}}
 
}}
    
{{Navbox IOS}}
 
{{Navbox IOS}}
5,579

edits