In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
19 bytes added ,  10:22, 9 February 2022
→‎How it works: remove nandloader fail
Line 30: Line 30:     
== How it works ==
 
== How it works ==
BootMii-boot2 is a modified version of [[boot2]]'s [[NANDLoader]], which is loaded by [[boot1]], which is loaded by [[boot0]]. boot0 is part of [[Hollywood]] and read-only. boot1, although stored on the [[NAND]], is signed by a value in write-once memory and therefore cannot be changed without rendering a console unable to boot. boot2, however, can be modified (with some restrictions). This means it can be hacked, updated, and corrupted. BootMii hijacks the [[boot process]] before the normal boot2 is run, optionally allowing code to be run directly from the SD Card. This has many advantages, such as making it very difficult to [[brick]], and slowing Nintendo from blocking homebrew. Unfortunately, the only way we could completely stop Nintendo from blocking homebrew is by patching updates on-the-fly, or somehow preventing overwriting boot2. Along with the [[4.2]] update, Nintendo released a new version of boot2 ([[boot2v4]]); there is nothing in boot2v4 that prevents BootMii from working, but it will overwrite an existing BootMii installation when it is installed.
+
BootMii-boot2 is a modified version of [[boot2]]'s [[Starlet ELF Loader|ELF loader]], which is loaded by [[boot1]], which is loaded by [[boot0]]. boot0 is part of [[Hollywood]] and read-only. boot1, although stored on the [[NAND]], is signed by a value in write-once memory and therefore cannot be changed without rendering a console unable to boot. boot2, however, can be modified (with some restrictions). This means it can be hacked, updated, and corrupted. BootMii hijacks the [[boot process]] before the normal boot2 is run, optionally allowing code to be run directly from the SD Card. This has many advantages, such as making it very difficult to [[brick]], and slowing Nintendo from blocking homebrew. Unfortunately, the only way we could completely stop Nintendo from blocking homebrew is by patching updates on-the-fly, or somehow preventing overwriting boot2. Along with the [[4.2]] update, Nintendo released a new version of boot2 ([[boot2v4]]); there is nothing in boot2v4 that prevents BootMii from working, but it will overwrite an existing BootMii installation when it is installed.
   −
The space normally allocated for the NANDLoader is split into two sections itself for technical reasons; the first section is a custom NANDLoader that loads the second section. The second section checks to see if an SD card is inserted; if so, it loads <code>/bootmii/armboot.bin</code> and executed it. Otherwise, it loads the real boot2, which remains intact when BootMii-boot2 is installed.
+
The space normally allocated for the ELF loader is split into two sections itself for technical reasons; the first section is a custom ELF loader that loads the second section. The second section checks to see if an SD card is inserted; if so, it loads <code>/bootmii/armboot.bin</code> and executed it. Otherwise, it loads the real boot2, which remains intact when BootMii-boot2 is installed.
    
BootMii also only installs into the first copy of boot2. There are two major advantages to this: first, if the installation is interrupted, the second copy will still function normally to boot; second, when boot2 is loaded by [[BC]], an updated version of BC will reject BootMii due to an invalid signature, but the second copy can still be loaded fine. For versions of BC with fakesigning, [[mini]] includes code to go directly to boot2 to ensure [[MIOS]] loads fine.
 
BootMii also only installs into the first copy of boot2. There are two major advantages to this: first, if the installation is interrupted, the second copy will still function normally to boot; second, when boot2 is loaded by [[BC]], an updated version of BC will reject BootMii due to an invalid signature, but the second copy can still be loaded fine. For versions of BC with fakesigning, [[mini]] includes code to go directly to boot2 to ensure [[MIOS]] loads fine.
5,579

edits

Navigation menu