Atmosphère: Unterschied zwischen den Versionen

Aus WiiDatabase Wiki
Zur Navigation springenZur Suche springen
3.881 Bytes hinzugefügt ,  2. Februar 2021
K
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 111: Zeile 111:
| Verwaltet Dienste. "sm" steht für "Service Manager".
| Verwaltet Dienste. "sm" steht für "Service Manager".
| [https://switchbrew.org/wiki/Services_API sm]
| [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]].
| Dieser ist für Entwickler interessant, da so u.a. ein eigener MitM-Service registriert werden kann. Patcht standardmäßig 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]'''
| '''[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/components/modules/spl.md spl]'''
Zeile 128: Zeile 128:
| '''bpc_mitm'''
| '''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.
| 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.
|-
| '''dns_mitm'''
| Manipuliert DNS-Abfragen und kann frei konfiguriert werden (siehe [[#dns_mitm]]).
|-
|-
| '''fs_mitm'''
| '''fs_mitm'''
| Kann Dateien von Titeln mit denen auf der SD-Karte ersetzen, auch bekannt als "'''LayeredFS'''".
| 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]]. 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>
|-
|-
| '''ns_mitm'''
| '''ns_mitm'''
Zeile 217: Zeile 213:
Mithilfe der Overrides ist es möglich, das Verhalten für Atmosphère für bestimmte Anwendungen zu ändern. Mit den Button Overrides (Knopfüberschreibungen) kann bspw. das Überschreibverhalten des Homebrew Menus konfiguriert werden. So kann bspw. eingestellt werden, dass das Homebrew Menu gestartet werden soll, wenn "Y" gedrückt wird, während das Album gestartet wird.
Mithilfe der Overrides ist es möglich, das Verhalten für Atmosphère für bestimmte Anwendungen zu ändern. Mit den Button Overrides (Knopfüberschreibungen) kann bspw. das Überschreibverhalten des Homebrew Menus konfiguriert werden. So kann bspw. eingestellt werden, dass das Homebrew Menu gestartet werden soll, wenn "Y" gedrückt wird, während das Album gestartet wird.


Mit der [https://wiidatabase.de/switch-downloads/switch-tools/kosmos-toolbox/ Kosmos Toolbox] lassen sich die Button Overrides grafisch direkt auf der Konsole bearbeiten.
Mit der [https://wiidatabase.de/switch-downloads/switch-tools/hekate-toolbox/ Hekate Toolbox] lassen sich die Button Overrides grafisch direkt auf der Konsole bearbeiten.


Zuerst muss die "<code>/atmosphere/config_templates/override_config.ini</code>" nach "<code>/atmosphere/config/</code>" kopiert und mit einem Texteditor geöffnet werden. Die Datei ist folgendermaßen aufgebaut:
Zuerst muss die "<code>/atmosphere/config_templates/override_config.ini</code>" nach "<code>/atmosphere/config/</code>" kopiert und mit einem Texteditor geöffnet werden. Die Datei ist folgendermaßen aufgebaut:
Zeile 460: Zeile 456:
'''Diese Einstellung ist experimentell und kann mit Datenverlust einhergehen!''' Das bloße Aktivieren dieser Option leitet noch keine Speicherstände um - dies geschicht per Flags auf Titel-basis, siehe [[#Speicherstand-Redirection|Speicherstand-Redirection]].
'''Diese Einstellung ist experimentell und kann mit Datenverlust einhergehen!''' Das bloße Aktivieren dieser Option leitet noch keine Speicherstände um - dies geschicht per Flags auf Titel-basis, siehe [[#Speicherstand-Redirection|Speicherstand-Redirection]].
|-
|-
| {{Anker|enable_deprecated_hid_mitm}}<code>enable_deprecated_hid_mitm</code>
| {{Anker|enable_am_debug_mode}}<code>enable_am_debug_mode</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x0</code>
| Mit dieser Einstellung wird der "DebugModeFlag" für den [https://switchbrew.org/wiki/Applet_Manager_services Applet Manager] aktiviert.<br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.
|-
| {{Anker|enable_dns_mitm}}<code>enable_dns_mitm</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x1</code>
| Mit dieser Einstellung wird [[#dns_mitm|dns_mitm]] aktiviert.<br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.
|-
| {{Anker|add_defaults_to_dns_hosts}}<code>add_defaults_to_dns_hosts</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x1</code>
| <code>0x1</code>
| Aktiviert den hid_mitm-Workaround für alte Homebrews (siehe [[#hid_mitm|Komponente -> Stratosphère -> hid_mitm]]).<br>
| Stellt Atmosphères Standard-HOSTS-Datei einer eigenen voran, die Telemetrie blockiert. Die [https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/features/dns_mitm.md#atmosph%C3%A8re-defaults Standard-Einträge] können auf GitHub gefunden werden.<br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.<br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.
'''Diese Einstellung wird in Zukunft entfernt!'''
|-
|-
| {{Anker|enable_am_debug_mode}}<code>enable_am_debug_mode</code>
| {{Anker|enable_dns_mitm_debug_log}}<code>enable_dns_mitm_debug_log</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x0</code> oder <code>0x1</code>
| <code>0x0</code>
| <code>0x0</code>
| Mit dieser Einstellung wird der "DebugModeFlag" für den [https://switchbrew.org/wiki/Applet_Manager_services Applet Manager] aktiviert.<br>
| Aktiviert den Debug-Log von dns_mitm in <code>/atmosphere/logs/dns_mitm_debug.log</code>.<br>
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.
<code>0x0</code> = deaktiviert, <code>0x1</code> = aktiviert.
|-
|-
Zeile 821: Zeile 828:


Speicherstände werden in "<code>/atmosphere/saves/</code>" abgelegt, getrennt nach Sys- und [[#EmuMMC|EmuMMC]]. Es wird ein neuer Speicherstand erstellt, wenn keiner existiert - es wird also nicht der aus dem internen Speicher kopiert!
Speicherstände werden in "<code>/atmosphere/saves/</code>" abgelegt, getrennt nach Sys- und [[#EmuMMC|EmuMMC]]. Es wird ein neuer Speicherstand erstellt, wenn keiner existiert - es wird also nicht der aus dem internen Speicher kopiert!
=== dns_mitm ===
Mit dem Atmosphère-eigenen Systemmodul '''dns_mitm''' lassen sich DNS-Abfragen manipulieren. Die Funktionalität wird dabei durch die [[#System_Settings|System Settings]] gesteuert. Standardmäßig werden Nintendos Telemetrie-Server blockiert.
Folgende Pfade werden nacheinander geladen, wobei beim ersten Fund keine weitere mehr beachtet wird:
* '''Nur im EmuMMC:''' <code>/atmosphere/hosts/emummc_%04lx.txt</code> (formatiert mit der Nummer des EmuMMC aus der <code>emummc.ini</code>)
* '''Nur im EmuMMC:''' <code>/atmosphere/hosts/emummc.txt</code>
* '''Nur im SysMMC:''' <code>/atmosphere/hosts/sysmmc.txt</code>
* '''Beide MMCs:''' <code>/atmosphere/hosts/default.txt</code> (wird mit Standard-Einträgen erstellt, falls noch nicht existent)
Die Standard-Einträge von Atmosphère werden eigenen Einträgen '''vorangestellt'''. Diese sehen zurzeit so aus:<ref>https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/features/dns_mitm.md#hosts-file-selection</ref>
<pre># Nintendo telemetry servers
127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net</pre>
Um eigene Einträge hinzuzufügen, muss eine Textdatei an einer der oben genannten Stellen erstellt werden. Die erste Spalte enthält die Ziel-IP, gefolgt von den umzubiegenden Domains. Um bspw. "wiidatabase.de" auf "8.8.8.8" umzuleiten, müsste die HOSTS-Datei so aussehen:
<pre>8.8.8.8 wiidatabase.de</pre>
Folgende spezielle Zeichen lassen sich zusätzlich in der Domain nutzen:
* <code>*</code> ist ein Wildcard-Zeichen, welches beliebig viele Zeichen (auch null) matcht
* <code>%</code> wird durch das Ergebnis von <code>nsd!environment_identifier</code> ersetzt, welches auf Produktivgeräten immer <code>lp1</code> ausgibt
Um beispielsweise alle Einträge aller Seiten, die mit "wii" anfangen und auf ".de" enden auf "8.8.8.8" weiterzuleiten, kann folgende HOSTS-Datei benutzt werden:
<pre>8.8.8.8 wii*.de</pre>
Dies wirkt sich sowohl auf "wii.de", als auch auf "wiidb.de" und "wiidatabase.de" aus.
Beim Start wird die geladene Hosts-Datei mitsamt aller geparsten Einträge nach <code>/atmosphere/logs/dns_mitm_startup.log</code> geloggt. Wenn das Logging in der system_settings.ini aktiviert wurde, werden zusätzlich alle DNS-Abfragen (plus ob Weiterleitungen angewendet wurden) in <code>/atmosphere/logs/dns_mitm_debug.log</code> geloggt.


=== Daybreak ===
=== Daybreak ===
[[Datei:Atmosphère Daybreak.jpg|mini|Daybreak]]
[[Datei:Atmosphère Daybreak.jpg|mini|Daybreak]]
Mithilfe der enthaltenen Applikation "'''Daybreak'''" lassen sich System-Updates sowohl zum Up-, als auch zum Downgraden verwenden. Hierbei wird der Atmosphère-Service "ams:su" verwendet, der die gleiche Logik wie Nintendos Shell zur Installation von Updates über eine Game Card benutzt. Die Update-NCAs werden dabei aus einem beliebigen Ordner auf der SD-Karte installiert, optional lässt sich der exFAT-Treiber mitinstallieren. Die ".cmnt" muss hierbei aber in ".cnmt.nca" umbenannt werden, was bspw. [https://gist.github.com/HookedBehemoth/df36b5970e1c5b1b512ec7bdd9043c6e per] [https://gist.github.com/antiKk/279966c27fdfd9c7fe63b4ae410f89c4 Skript] erledigt werden kann.
Mithilfe der enthaltenen Applikation "'''Daybreak'''" lassen sich System-Updates sowohl zum Up-, als auch zum Downgraden verwenden. Hierbei wird der Atmosphère-Service "ams:su" verwendet, der die gleiche Logik wie Nintendos Shell zur Installation von Updates über eine Game Card benutzt. Die Update-NCAs werden dabei aus einem beliebigen Ordner auf der SD-Karte installiert, optional lässt sich der exFAT-Treiber mitinstallieren. Die ".cmnt" muss hierbei aber in ".cnmt.nca" umbenannt werden, was bspw. [https://gist.github.com/HookedBehemoth/df36b5970e1c5b1b512ec7bdd9043c6e per] [https://gist.github.com/antiKk/279966c27fdfd9c7fe63b4ae410f89c4 Skript] erledigt werden kann.
== Häufig gestellte Fragen ==
=== Blackscreen nach System-Update ===
Dies kann mehrere Ursachen haben:
* Atmosphère ist nicht aktuell
* Nicht alle Dateien von Atmosphère wurden beim Kopieren auf die SD-Karte ersetzt
* Atmosphère ist noch nicht kompatibel mit der aktuellen Firmware
* Ein Custom-Theme wurde installiert - hierfür den Ordner "<code>/atmosphere/contents/0100000000001000</code>" entfernen.
=== GameCards starten nicht mehr ===
Dies passiert, wenn von einer niedrigeren Firmware aktualisiert wurde und die neue Firmare den GameCard-Treiber aktualisiert. Um ein Downgrade zu verhindern, werden hier ebenfalls eFuses "[[Anti-Downgrade|gebrannt]]", was bedeutet, dass die Aktualisierung des Treibers blockiert wird. Der Grund ist der, dass ein späteres Downgrade dazu führen würde, dass GameCards auf der niedrigeren Firmware nicht mehr abgespielt werden können.
Um dies zu beheben, muss einfach einmalig die Original-Firmware gestartet werden. Dies führt aber zu oben erwähntem Nachteil.
=== {{Anker|enable_deprecated_hid_mitm}} Controller-Eingaben in Homebres werden nicht erkannt ===
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 standardmäßig deaktiviert.<ref>[https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.10.2 Atmosphère v0.10.2]</ref> Dieses wurde allerdings mit Atmosphère v0.18.0 entfernt.<ref>[https://wiidatabase.de/atmosphere-v0-18-0/ Atmosphère v0.18.0]</ref>
Zurzeit besteht kein Workaround; die Anwendung muss vom Entwickler angepasst oder (falls möglich) mit einer neueren Version von libnx kompiliert werden.


== Trivia ==
== Trivia ==

Navigationsmenü