Line 1: |
Line 1: |
− | '''BootMii''' is a system designed by [[Team Twiizers]] to enable a complete low-level control of the Wii. It allows the Wii to be controlled mere moments after the On button has been pressed, even before any [[IOS]] loads. | + | '''BootMii''' is a system designed by [[Team Twiizers]] to enable complete low-level control of the Wii. It allows the Wii to be controlled mere moments after the On button has been pressed, before any IOS has been loaded and before the NAND filesystem has been read. |
| + | |
| + | ==Architecture== |
| + | BootMii is comprised by four pieces of software: |
| + | * Installer -- this is a simple DOL or ELF file which may be run using your favorite method (HBC, Twilight Hack, or any other exploit which can load standard executables). It checks your Wii to make sure it can safely be modified, saves some vital data for disaster recovery, and installs the rest of the components. |
| + | * Loader stub -- this is a small bit of ARM code which is injected into boot2, replacing Nintendo's internal ELF loader. When run, it looks to see if an SD card is inserted. If so, it tries to load and execute /system/armboot.bin instead of boot2. Otherwise, it will fall back to loading boot2. |
| + | * [[mini]] -- this is a rudimentary replacement for IOS that is best suited for low-level recovery functions. Source code is available under GPLv2 at (tbd). |
| + | * BootMii (or bootmii-ppc) -- when mini runs, it looks for a file named /system/ppcboot.elf on the SD card. If it exists, mini loads this executable into memory, boots up the Broadway (ppc) and executes that binary in parallel with mini. Source code is available under GPLv2 at (tbd). |
| + | |
| + | Both mini and bootmii-ppc must be present in order to draw a user interface, because the Starlet cannot directly access the Video Interface. |
| | | |
| ==Benefits== | | ==Benefits== |
Line 6: |
Line 15: |
| ==How it works== | | ==How it works== |
| The BootMii Platform is a [[boot2]] hack, 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. [[boot2]], however, can be modified. This means it can be hacked, updated, and corrupted. BootMii hacks [[boot2]], and allows running code directly from SD Card, before anything else is loaded. 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]]. | | The BootMii Platform is a [[boot2]] hack, 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. [[boot2]], however, can be modified. This means it can be hacked, updated, and corrupted. BootMii hacks [[boot2]], and allows running code directly from SD Card, before anything else is loaded. 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]]. |
| + | |
| + | ==Compatibility== |
| + | The first release of BootMii is should be compatible with most Wiis released before late 2008. Support for newer Wiis (with reduced functionality) will be added when possible. |
| | | |
| ==Release date== | | ==Release date== |
Line 12: |
Line 24: |
| ==Required hardware== | | ==Required hardware== |
| BootMii will not require any special hardware. However, special hardware might help accomplish things that BootMii by itself cannot, such as hardware NAND write protection and isolation from the Nintendo software stack. No such hardware exists yet though. | | BootMii will not require any special hardware. However, special hardware might help accomplish things that BootMii by itself cannot, such as hardware NAND write protection and isolation from the Nintendo software stack. No such hardware exists yet though. |
− |
| |
− | ==Mini==
| |
− | '''Mini''' ('''M'''ini '''I'''s '''N'''ot '''I'''OS) is a "replacement [[IOS]]" to be included with BootMii by [[User:Marcan|marcan]]. It has a mode of operation more like IOS, where there are simple system calls, and also a high-level driver mode.
| |
| | | |
| ==The new boot1== | | ==The new boot1== |