MINI
MINI (rekursives Akronym für "MINI is not IOS", dt. "MINI ist nicht IOS") ist ein low-level-Ersatz für IOS, welches hardwarenahe Aktionen durchführen kann, bei der IOS stören würde. Die prominentesten Anwendungen sind BootMii und Wii Linux.
Features
- Leichtgewichtig mit ca. 50 KB und rund 12.000 Zeilen Code
- IRQ-basierend
- Debug-Output über GPIO-Pins und dem USB-Gecko
- Jede Speicheradresse kann vom PPC aus angesehen und verändert werden (per IPC)
- Treiber für folgende Hardware enthalten:
- OTP, SEEPROM
- AES-Engine
- SDHC (Sektoren-Level, kann auch eine Datei von einem FAT-Dateisystem laden)
- NAND (auf physischem Level lesen/beschreiben)
- PowerPC (kann eine PPC-ELF von einer SD-Karte in den Speicher lesen und die Ausführung über den PPC initiieren)
- Hängt nicht von IOS ab - solange es gestartet werden kann, kann damit alles getan werden
Limitierungen
- Keine echte Kernel-Architektur: kein Threading-Modell, aber die meisten Aufrufe sind asynchron
- Kein USB-Support
- Kein Bluetooth-Support (= keine Wiimote-Unterstützung)
- Kein WiFi-Support
- Kein NAND-FS-Support
- Kein Audio (Hardware-Limitierung)
Alle Register sind per Interprozesskommunikation (IPC) zugänglich; demzufolge können alle fehlenden Funktionen in der PPC-Seite implementiert werden. Seit der Entdeckung der AHBPROT-Register aktiviert MINI den direkten PPC-Zugriff auf alle Geräte. Zusammen mit Wii Linux kann daher auf die gesamte Hardware zugegriffen werden.