7.904
Bearbeitungen
ICON (Diskussion | Beiträge) |
ICON (Diskussion | Beiträge) (→Komponenten: Neue Komponenten-Übersicht) |
||
Zeile 17: | Zeile 17: | ||
== Komponenten == | == Komponenten == | ||
Atmosphère zielt darauf ab, | Atmosphère zielt darauf ab, alle System-Komponenten der Switch zu reimplementieren und dabei zu erweitern. | ||
=== Hauptkomponenten === | |||
* {{Anker|Fusee}}'''Fusée''': Bootloader, verifiziert und startet Exosphère und Package2 (Kernel/FIRM-Systemmodule) und patcht diese, falls nötig. | * {{Anker|Fusee}}'''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 >= [[Nintendo-Switch-Firmware 7.0.0#Technische Informationen|7.0.0]]. Ein Teil von sept ist signiert/verschlüsselt, weshalb es ohne Keys nicht möglich ist, sept selbstständig zu bauen. | ** '''Sept''': Payload zur Schlüsselableitung auf allen Firmware-Versionen >= [[Nintendo-Switch-Firmware 7.0.0#Technische Informationen|7.0.0]]. Ein Teil von sept ist signiert/verschlüsselt, weshalb es ohne Keys nicht möglich ist, sept selbstständig zu bauen. | ||
Zeile 23: | Zeile 25: | ||
* '''Thermosphère''': EmuMMC, lädt den MMC von der SD-Karte um so eine getrennte Umgebung für bspw. Homebrew zu schaffen. | * '''Thermosphère''': EmuMMC, lädt den MMC von der SD-Karte um so eine getrennte Umgebung für bspw. Homebrew zu schaffen. | ||
* {{Anker|Stratosphere}}'''Stratosphère''': Eigene Systemmodule mit neuen Features und zur Erweiterung bestehender. | * {{Anker|Stratosphere}}'''Stratosphère''': Eigene Systemmodule mit neuen Features und zur Erweiterung bestehender. | ||
** '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/ams_mitm.md ams_mitm]''' | * '''Mesosphère''': Reimplementierung von Nintendos Kernel. | ||
* '''Troposphère''': HorizonOS-Patches für Applikationen. Dies ist noch nicht in Atmosphère implementiert.<ref>https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/troposphere.md</ref> | |||
==== Systemmodule ==== | |||
{| class="wikitable" border="1" width="100%" | |||
|- | |||
! Name | |||
! Beschreibung | |||
! Reimplementiert | |||
! Erweiterungen/Änderungen | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/ams_mitm.md ams_mitm]''' | |||
| Neues Systemmodul zum on-the-fly Patchen von Dateien und Titeln | |||
| | |||
| | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/boot.md boot]''' | |||
| Initialisiert die Hardware und startet das System. | |||
| [https://switchbrew.org/wiki/Boot boot] | |||
| Atmosphère zeigt seinen eigenen schwarz/weißen Bootscreen und Akku-Icons an. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/boot2.md boot2]''' | |||
| Lädt alle weiteren Module nach dem Start. | |||
| [https://switchbrew.org/wiki/Boot2 boot2] | |||
| Mithilfe von [[#Flags|Flags]] lassen sich eigene Systemmodule direkt nach dem Start ausführen. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/creport.md creport]''' | |||
| Dient der Verwaltung von Absturzberichten. | |||
| [https://switchbrew.org/wiki/Creport creport] | |||
| Generiert Absturzberichte auf der SD-Karte und verhindert das Senden dieser an Nintendo. Außerdem wird bei einem Absturz ein Screenshot erstellt (nur auf >= 10.0.0). | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/dmnt.md dmnt]''' | |||
| Stellt einen Debug-Monitor zur Verfügung. "dmnt" steht für "Debug Monitor". | |||
| [https://switchbrew.org/wiki/Debug_Monitor_services dmnt] | |||
| Cheat-Code-Support, inklusive Kompatibilität zu [[SX OS|Gateshark]]. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/eclct.stub.md eclct.stub]''' | |||
| Sammelt Fehlerberichte. | |||
| [https://switchbrew.org/wiki/System_Settings#eclct eclct] | |||
| Diese Reimplementation ist ein Stub und verhindert das Senden weiterer Telemetrie-Daten an Nintendo. | |||
|- | |||
| [[#erpt|erpt]] | |||
| Verwaltet Fehlerberichte. | |||
| [https://switchbrew.org/wiki/Error_Report_services erpt] | |||
| Verhindert das Anlegen von berichten im MMC und leitet diese stattdessen auf die SD-Karte weiter. | |||
|- | |||
| [[#fatal|fatal]] | |||
| Verwaltet Absturzberichte. | |||
| [https://switchbrew.org/wiki/Fatal_services fatal] | |||
| Zeigt einen umfangreichen Fehlerbildschirm bei einem fatalen (deshalb der Name) Absturz an. Auch kann die Konsole mit den Lautstärketasten direkt neu gestartet werden. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/jpegdec.md jpegdec]''' | |||
| Dient der Dekodierung von JPEGs in Verbindung mit den [https://switchbrew.org/wiki/Capture_services Capture-Services] | |||
| [https://switchbrew.org/wiki/Jpegdec_services jpegdec] | |||
| Erlaubt zwei Sessions anstatt einer, damit Homebrews JPEGs per Software parallel zum OS dekodieren können. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/loader.md loader]''' | |||
| Erstellt Prozesse von ausführbaren NSOs und kontrolliert ihre Zugriffe | |||
| [https://switchbrew.org/wiki/Loader_services loader] | |||
| Ermöglicht das [[#ExeFS|Ersetzen von Dateien im ExeFS]], das [[#NSO-Patches|Patchen von NSOs]], sowie [[#Button Overrides|Button Overrides]] (bspw.: "R" gedrückt halten, während ein Spiel startet, startet das Homebrew Menu mit vollem RAM-Zugriff). | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/ncm.md ncm]''' | |||
| Dient der Verwaltung von Inhalten (bspw. NAND-Speicherständen). "ncm" steht für "Nintendo Content Manager". | |||
| [https://switchbrew.org/wiki/NCM_services ncm] | |||
| Zurzeit noch [[#enable_ncm|optional]]. | |||
|- | |||
| [https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/pgl.md pgl] | |||
| Startet Programme; nur ab [[Nintendo-Switch-Firmware 10.0.0|10.0.0]] vorhanden. "pgl" steht für "Program Launcher". | |||
| [https://switchbrew.org/wiki/PGL_services pgl] | |||
| Atmosphères Reimplementation ist ebenfalls nur ab 10.0.0 verfügbar und wurde (noch) nicht zurückportiert. | |||
|- | |||
| [https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/pm.md pm] | |||
| Verwaltet Ressourcenlimits und überwacht laufende Prozesse. "pm" steht für "Process Manager". | |||
| [https://switchbrew.org/wiki/Process_Manager_services pm] | |||
| Der APPLET Speicher-Pool wurde um 24 MiB gesenkt und gibt diesem somit dem SYSTEM-Pool zurück. Damit lassen sich mehr Custom-Systemmodule ausführen. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/ro.md ro]''' | |||
| Lädt dynamische Bibliotheken und wurde mit der [[Nintendo-Switch-Firmware 3.0.0|Firmware 3.0.0]] eingeführt. | |||
| [https://switchbrew.org/wiki/RO_services ro] | |||
| Portiert die Funktionalitäten auf < 3.0.0 zurück, bei denen noch "loader" zuständig war. Ermöglicht außerdem [[#NRO-Patches|NRO-Patches]]. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/sm.md sm]''' | |||
| Verwaltet Dienste. "sm" steht für "Service Manager". | |||
| [https://switchbrew.org/wiki/Services_API sm] | |||
| Dieser ist für Entwickler interessant, da so u.a. ein eigener MitM-Service registriert werden kann. Patcht per Standard auch "smhax"<ref>[https://switchbrew.org/wiki/Switch_System_Flaws#FIRM-package_System_Modules Switch System Flaws#FIRM-package System Modules] unter "Service access control bypass"</ref><ref>[https://wiidatabase.de/switch-firmware-3-0-1-fixt-grossen-bug-update-nicht-empfohlen/ Switch-Firmware 3.0.1 fixt "großen Bug" – Update nicht empfohlen]</ref> auf der Firmware < [[Nintendo-Switch-Firmware 3.0.1|3.0.1]]. | |||
|- | |||
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/spl.md spl]''' | |||
| Ist u.a. für kryptographische Operationen notwendig. "spl" steht für "Secure Platform". | |||
| [https://switchbrew.org/wiki/SPL_services spl] | |||
|} | |||
===== ams_mitm ===== | |||
Das Systemmodul '''ams_mitm''' fügt einige neue Funktionen hinzu, die in mehrere Teile aufgegliedert sind. | |||
{| class="wikitable" border="1" width="100%" | |||
|- | |||
! Name | |||
! Beschreibung | |||
|- | |||
| '''bpc_mitm''' | |||
| Ermöglicht das [[#Reboot-Payload|Neustarten in einen Payload]] (bspw. wieder Atmosphère) und das vollständige Herunterfahren, wenn AutoRCM aktiviert ist (siehe [[AutoRCM#Herunterfahren]]). Überschreibt den [https://switchbrew.org/wiki/PCV_services#bpc bpc PCV-Service] von Nintendo. | |||
|- | |||
| '''fs_mitm''' | |||
| Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "'''LayeredFS'''". | |||
|- | |||
| {{Anker|hid_mitm}}'''hid_mitm''' | |||
| Mit der [[Nintendo-Switch-Firmware 9.0.0|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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.9.4 Atmosphère v0.9.4]</ref> 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.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.10.2 Atmosphère v0.10.2]</ref> Siehe auch [[#enable_deprecated_hid_mitm|enable_deprecated_hid_mitm]]. Sollte es in Zukunft entfernt werden, wird SciresM aber einen separaten Download anbieten.<ref>https://arch.b4k.co/vg/thread/276990665/#277109730 "If it's ever removed (and I don't actually have plans to do so, I just wanted to explicitly reserve that right), I will publish a hid-compat-mitm sysmodule on my personal GitHub that can be used as a standalone. | |||
Don't worry, I don't want to leave people without an option. It just kinda sucks that people not using it are paying memory costs equivalent to the whole sm sysmodule."</ref> | Don't worry, I don't want to leave people without an option. It just kinda sucks that people not using it are paying memory costs equivalent to the whole sm sysmodule."</ref> | ||
|- | |||
| '''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 ([https://switchbrew.org/wiki/Settings_services#GetFirmwareVersion GetFirmwareVersion]) ([[:Datei:Atmosphere Systemversion.jpg|siehe Bild]]) und liest weitere Einstellungen aus einer INI-Datei. Dabei wird der [https://switchbrew.org/wiki/Settings_services System-Settings-Service] abgefangen. | |||
|- | |||
|} | |||
=== Ordnerstruktur === | === Ordnerstruktur === |
Bearbeitungen