BootMii

From WiiFloWiki
Jump to: navigation, search


See also: mini

BootMii
BootMii Logo.png
General
Author(s)Team Twiizers
Version1.4
Links
Download
Source
Peripherals
GameCube Controller Loads files from the Front SD slot Loads files from SDHC cards in the Front SD slot WiiDrawing.svg
Warning!
This homebrew makes permanent changes to your Wii's flash memory (NAND) and should be used with caution.

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. BootMii can be launched from the Homebrew Channel from the menu that pops up when the home button is pressed.

Contents

Controls

WiiDrawing.svg GameCube Controller Family Trainer Pad Action
Gamecube D-Pad Left minus Previous Option
Wii POWER Button Gamecube D-Pad Right Blue Down Next option
Wii RESET Button Gamecube A Button Orange Square Select option

Architecture

BootMii is comprised by four pieces of software:

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

BootMii allows anything from Recovery modes (creating a practically unbrickable Wii), to lazy access of the Homebrew Channel. For example, if you have corrupted the System Menu, you can use DOP-Mii to reinstall the System Menu. Unfortunately, all homebrew currently require an IOS, because libogc requires one. However, there is Mini (a homebrew IOS-like software), which can be modified specifically for the program, ie, for better communication to the Linux kernel.

How it works

BootMii is a modified version of boot2, 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 System Menu 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.

Compatibility

BootMii should be compatible with most Wiis released before late 2008. Support for newer Wiis (with reduced functionality) will have to install BootMii as an IOS

For an SD card compatibility list, See SD Card Compatibility List.

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.

The new boot1

Consoles made after some point in 2008 (no concrete date is known) have a new version of boot1 that patches the vulnerability which allows the console to boot a modified boot2. The Hackmii Installer will detect this situation and refuse to modify boot2(see more at Hackmii). Since boot1 cannot be updated, all consoles already manufactured before this update are safe. About 10% of the consoles that ran the BootMii Checker tool have the new boot1.

Console Keys and keys.bin

Instead of using WiiND, you can retrieve your console keys from the keys.bin file that BootMii v3+ produces when backing up the NAND. To view them, open keys.bin with a hex editor.
Here are the offsets for each key:

ECC Private Key: 0x128 (30 bytes)
Console ID: 0x124 (4 bytes)
NAND AES key: 0x158 (16 bytes)
NAND HMAC: 0x144 (20 bytes)
Common key (AES): 0x114 (16 bytes)
PRNG seed (AES): 0x168 (16 bytes)
boot1 hash: 0x100 (20 bytes) 
ng_key_id: 0x208 (4 bytes)
ng_sig: 0x20c (60 bytes)

For a full description of the purpose of each key, see this writeup on HackMii.

Media

Screenshot. Click for larger image.
Video source: Marcan's early BootMii demo. The hardware mod in the video is unrelated to BootMii.


History

v1.4

Beta 6 (v1.3)

Beta 5 (v1.2)

Beta 4 (v1.1)

Beta 3 (v1.0)

Beta 2 (v0.9)

Beta 1

External links

Personal tools
View and edit namespaces data
Variants
Actions
Navigation
Wiiflow
Softmod
Toolbox
Google AdSense