Atmosphère
Atmosphère ist eine freie Custom Firmware für die Nintendo Switch. Entwickelt wird sie hauptsächlich von SciresM. Sie ist unter einer freien Lizenz verfügbar und wird aktiv weiterentwickelt.
Atmosphère | |
---|---|
Allgemein | |
Entwickler | SciresM, TuxSH, hexkyz, fincs |
Kategorie | Custom Firmware |
Lizenz | GPLv2 |
Links | |
Download | |
Website |
Geschichte
Im März 2018 gab SciresM bekannt, dass die Custom Firmware "Atmosphère" im Sommer 2018 für alle zu dem Zeitpunkt erhältlichen Switch-Modelle und -Firmware-Versionen erscheinen soll.[1] Die erste öffentliche Version erschien mit etwas Verzögerung im Oktober 2018 als v0.7.[2]
Atmosphère v0.8.5 fügte Cheat-Support hinzu.[3] Seit v0.9.0 wird ein EmuMMC unterstützt.[4].
Komponenten
Atmosphère zielt darauf ab, fast alle System-Komponenten der Switch zu reimplementieren und dabei zu erweitern. Sie heißen dabei:
- Fusée: Bootloader, verifiziert und startet Exosphère und Package2 (Kernel/FIRM-Systemmodule) und patcht diese, falls nötig.
- Sept: Payload zur Schlüsselableitung auf allen Firmware-Versionen >= 7.0.0. Ein Teil von sept ist signiert/verschlüsselt, weshalb es ohne Keys nicht möglich ist, sept selbstständig zu bauen.
- Exoshpère: TrustZone mit eigenem Secure Monitor.
- Thermosphère: EmuMMC, lädt den MMC von der SD-Karte um so eine getrennte Umgebung für bspw. Homebrew zu schaffen.
- Stratosphère: Eigene Systemmodule mit neuen Features und zur Erweiterung bestehender.
- ams_mitm: Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln.
- bpc_mitm: Ermöglicht das Neustarten in einen Payload (bspw. wieder Atmosphère) und das vollständige Herunterfahren, wenn AutoRCM aktiviert ist (siehe AutoRCM#Herunterfahren). Überschreibt den bpc PCV-Service von Nintendo.
- fs_mitm: Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "LayeredFS".
- hid_mitm: Mit der Firmware 9.0.0 wurden die HID-Komponenten für Controller so sehr geändert, dass libnx (die Bibliothek zum Bauen von Switch-Homebrews) keine Controller-Eingaben mehr erkennt. Dieses Problem wurde zwar in neueren libnx-Versionen behoben, allerdings müssen Homebrews mit der neuen libnx-Version neu gebaut werden. Da nicht jede Homebrew sofort aktualisiert wird/werden kann, wurde als Übergang ein temporäres Modul eingeführt, welches das Problem behebt.[5] Da es somit nicht mehr möglich ist, das HID-Modul selbst zu überschreiben, wird dieser Workaround in Zukunft entfernt. Mit Atmosphère v0.10.2 wurde es per Standard deaktiviert.[6]
- ns_mitm: Ermöglicht die Verwendung von Web-Applets im Homebrew Menu, wenn eine Anwendung überschrieben wird, da diese erst prüfen, ob es HTML-Inhalte in der Anwendung gibt.
- set_mitm: Verändert die Anzeige der Systemversion (GetFirmwareVersion) (siehe Bild) und liest weitere Einstellungen aus einer INI-Datei. Dabei wird der System-Settings-Service abgefangen.
- boot: Reimplementierung von Nintendos "boot"; initialisiert die Hardware und startet das System.
- boot2: Reimplementierung von Nintendos "boot2"; lädt weitere Prozesse.
- creport: Generiert Absturzberichte auf der SD-Karte und verhindert das Senden dieser an Nintendo
- dmnt: Cheat-Code-Support, inklusive Kompatibilität zu Gateshark. "dmnt" steht dabei für "Debug Monitor".
- eclct.stub: Deaktiviert weitere Telemetrie-Dienste von Nintendo.
- fatal: Reimplementiert Nintendos fatal und zeigt einen umfangreichen Fehlerbildschirm bei einem fatalen (deshalb der Name) Absturz an. Auch kann die Konsole mit den Lautstärketasten direkt neu gestartet werden.
- loader: Reimplementiert Nintendos "loader" und ermöglicht das Ersetzen von Dateien im ExeFS, das Patchen von NSOs, sowie Button-Overrides (bspw.: "R" gedrückt halten, während ein Spiel startet, startet das Homebrew Menu mit vollem RAM-Zugriff).
- pm: Reimplementierung von Nintendos "Process Manager", gibt u.a. mehr Speicher für Systemmodule frei.
- ro: Reimplementierung von Nintendos RO-Services.
- sm: Reimplementierung von Nintendos "Service Manager". Dieser ist für Entwickler interessant, da so u.a. ein eigener MitM-Service registriert werden kann. Patcht per Standard auch "smhax"[7][8] auf der Firmware < 3.0.1; dies lässt sich allerdings per Konfiguration rückgängig machen.
- spl: Reimplementierung von Nintendos "Secure Platform Services".
- ams_mitm: Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln.
- Mesosphère: Reimplementierung von Nintendos Kernel.
- Troposphère: HorizonOS-Patches für Applikationen. Dies ist noch nicht in Atmosphère implementiert.[9]
Ordnerstruktur
Die Inhalte in (kursiven Klammern) dienen der Erklärung
SD-Karte | fusee-primary.bin (Payload, der an die Switch gesendet werden muss, um den Bootprozess einzuleiten) | hbmenu.nro (Homebrew Menu) | +---atmosphere | | fusee-mtc.bin | | fusee-secondary.bin (Signierter/verschlüsselter Fusée-Teil) | | hbl.nsp (Homebrew Loader, der das Homebrew Menü lädt) | | reboot_payload.bin (Kopie von fusee-primary, wird bei einem Neustart ausgeführt) | | | +---config (Konfigurationsdateien) | | BCT.ini (Einstellungen für Exosphère, Stratosphère und fusee-primary) | | | +---config_templates (Konfigurationstemplates, müssen in "config" kopiert werden)' | | override_config.ini (Button-Overrides) | | system_settings.ini (Atmosphère-Einstellungen) | | | +---contents (Ordner für fs_mitm, ersetzt Inhalte in Anwendungen/Modulen, Ordnerinhalte nachfolgend gekürzt) | | +---0100000000000008 (boot2) | | | | | +---010000000000000D (dmnt) | | | | | +---0100000000000032 (eclct.stub) | | | | | +---0100000000000034 (fatal) | | | | | +---0100000000000036 (creport) | | | | | \---0100000000000037 (ro) | | | +---fatal_errors (Fehlerreports von fatal) | +---hbl_html (Zum Starten von Web-Applets) | | | \---kip_patches (KIP-Patches) | +---sept (sept) | \---switch (Ordner für Homebrews) reboot_to_payload.nro (Startet /atmosphere/reboot_payload.bin)
Features
Trivia
- SX OS verwendet als Basis Atmosphère (siehe auch SX OS#Kopierter Atmosphère-Code und Lizenzverstoß)
Einzelnachweise
- ↑ Switch: Atmosphère CFW soll im Sommer für alle Switch-Firmware-Versionen erscheinen
- ↑ Atmosphère v0.7 erschienen
- ↑ Atmosphère v0.8.5 mit Cheat-Support
- ↑ Atmosphère v0.9.0 mit experimentellem EmuNAND
- ↑ Atmosphère v0.9.4
- ↑ Atmosphère v0.10.2
- ↑ Switch System Flaws#FIRM-package System Modules unter "Service access control bypass"
- ↑ Switch-Firmware 3.0.1 fixt "großen Bug" – Update nicht empfohlen
- ↑ https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/troposphere.md