hekate ist ein hübscher Bootloader und Firmware-Patcher, der u.a. NAND-Backups und einen EmuMMC erstellen kann.
Wie bei Atmosphère kann nach einem Fatal-Error neu gestartet werden, ohne über den Tegra Recovery Mode zu müssen. Außerdem wurden alle enthaltenen Anwendungen aktualisiert und eine SDSetup-Anwendung hinzugefügt.
Der Standby-Modus funktioniert nun bei gedowngradeten NANDs und alle Titel können mit dem Homebrew Launcher überschrieben werden. Mithilfe der "/atmosphere/system_settings.ini" lassen sich außerdem Einstellungen festlegen – so wird per Standard das Error-Report-Uploading deaktiviert und USB 3.0 aktiviert. Ein "reboot_to" Payload wurde hinzugefügt, der es ermöglicht, bei einem Fatal-Error (mit Atmosphères Fehler-Bildschirm) neu zu starten, ohne in den RCM booten zu müssen. Dazu muss nur einer der Lautstärketasten gedrückt werden!
Wie immer gab es auch zahlreiche Bugfixes, insbesondere in Bezug auf mitm (LayeredFS).
Changelog
* A custom warmboot firmware was implemented, which does not perform anti-downgrade fuse checks.
* * This fixes sleep mode when using a downgraded NAND.
* * This also removes Atmosphère's final dependency on Nintendo's encrypted PK11 binary; all components are now re-implemented.
* The ExternalContentSource API was changed to not clear on failure.
* Content override now supports an "app" setting, that causes all applications to be overridden with HBL instead of a specific title.
* * Note: because override keys are system-wide, using this setting will prevent using mods in games (as every game will be HBL).
* A bug was fixed causing incorrect fatal-error output when svcBreak was called on 5.0.0+.
* An extension was added to set.mitm to support customization of system settings.
* * These are controlled by atmosphere/system_settings.ini, see here for documentation.
* * By default, this is used to disable error report uploading, and enable USB 3.0 superspeed when possible.
* An extension was added to sm, adding a new sm:dmnt service.
* * This can be used by a debug monitor in order to debug the registration state of various other services.
* A bug was fixed in the MitM API that could sometimes cause a system hang during boot.
* A change was made to the MitM API: in cases where sm would have returned 0xE15 when installing a mitm service, it now defers the result (following GetService semantics).
* Support for booting into maintenance mode by holding */- was added to PM.
* An extension was added to exosphere, adding a custom SMC that allows for DMA to IRAM.
* In addition, smcGetConfig was extended to reboot to a payload in IRAM at 0x40010000 when ConfigItem 65001 is set to 2.
* * Fatal will now use this to reboot to sdmc:/atmosphere/reboot_payload.bin if present, when a vol button is pressed.
* * An example homebrew ("reboot_to_payload") was also written and is now included with Atmosphère.
* General system stability improvements to enhance the user's experience.
Die Firmware 6.2.0 wird jetzt unterstützt, außerdem funktioniert nun auch hier der Standby-Modus, wenn die erwartete Fuses-Anzahl nicht übereinstimmt. Auch sind alle KIPs per Standard aktiv; so muss bspw. LayeredFS nicht mehr extra aktiviert werden. Zudem arbeitet Rei wohl an einer Reimplementierung des "tx"-Service, wie er von SX OS benutzt wird.
ACHTUNG, wer vorher schon mal ReiNX genutzt hat, muss die HBL-NSP herunterladen und in "SD://ReiNX/" verschieben, um das Homebrew Menu aufrufen zu können (die hbmenu.nro des HBMenus im Root darf natürlich auch nicht fehlen).
* Full 6.2 support
* warmboot w/ sig checks disabled
* partial implemented services tx, ldr:cht, usbfs
* Recovery chainload
* landscape gfx
* all kips active by default (required)
* lots of stability updates (TM)
Der "Archiv-Bit-Fix" fixt auch den "Nintendo"-Ordner
UART-Debugging behoben
Auto HOS Power ist standardmäßig deaktiviert
Weitere Bugfixes
Der erste Punkt kommt leider mit einem Preis: Der wichtigste Teil des Warmboot-Exploits "deja vu" wurde vorab veröffentlicht, obwohl man ihn sich für die neue Hardware-Revision "Mariko" aufheben wollte (falls diese überhaupt den Bug noch hat oder je veröffentlicht wird). Kürzlich gingen zweiPull-Requests von "balika011" bei hekate ein, die den Standby-Modus bei gedowngradeten Switches mit zu vielen Fuses fixen.
Dabei handelt es sich aber um einen wichtigen Warmboot-Bootrom-Bug, der von déjà vu genutzt wird. Mit deja vu ist Vollzugriff auf die Switch ohne RCM möglich und das ist für gepatchte Switches sehr wichtig. Leider kann Nintendo diesen Bug jetzt in zukünftigen Switches fixen – u.a. auch in Mariko.
Auch wichtig zu wissen ist, dass deja vu bei Veröffentlichung momentan nur auf der Firmware <= 4.1.0 funktionieren würde. Zumindest solange es keinen Ersatz für andere Teile, wie nspwn und nvhax gibt. Eventuell sehen wir also bald einen nutzbaren Release.
SX OS war eine kostenpflichtige Custom Firmware für die Switch. SX OS sollte nicht mehr eingesetzt werden, bitte auf Atmosphère wechseln.
Das Menü zum Booten von externen Payloads lässt die Switch nicht mehr einfrieren und SX OS bootet wieder auf der Firmware 4.1.0. Außerdem lassen sich neuere NSPs mit dem integrierten NSP-Installer installieren und gesplittete NSPs werden unterstützt. Dazu müssen diese einfach geteilt und mit der Endung "ns0", "ns1" etc. versehen werden. Auch wurden die weißen Icons bei gesplitteten CARD2-Spielen gefixt.
SX OS war eine kostenpflichtige Custom Firmware für die Switch. SX OS sollte nicht mehr eingesetzt werden, bitte auf Atmosphère wechseln.
Die Switch-Firmware 6.2.0 wird jetzt unterstützt. Der EmuNAND kann außerdem wieder im NAND oder auf einer eigenen Partition auf der SD erstellt werden. Das heißt es gibt jetzt drei Möglichkeiten, einen EmuNAND zu erstellen:
Im System-NAND: Zwickt Speicher vom NAND ab und erstellt dort den EmuNAND
Auf der microSD als Partition: Nutzt eine eigene Partition auf der microSD (formatiert SD)
Auf der microSD als Dateien: Partitioniert nicht neu, sondern erstellt nötige Dateien auf der bereits vorhandenen Partition
Zudem wurde ein Problem mit den "L"- und "R"-Knöpfen in Spielen behoben und das Homebrew Menu wurde integriert, was bedeutet, dass keine hbmenu.nro mehr benötigt wird. Leider heißt das auch, dass das Homebrew Menu nicht mehr unabhängig aktualisiert werden kann. Korrektur: Wenn die hbmenu.nro existiert, wird stattdessen diese geladen.
Einige Fehler wurden behoben, die dazu führten, dass das Erhalten der Keys fehlschlug. Außerdem wurde ein Problem behoben, bei dem der Standby-Modus nicht funktionierte, wenn "debugmode" in der BCT.ini aktiviert war – der debugmode ist jetzt standardmäßig aktiviert.
* A number of bugs were fixed causing users to sometimes see Key Derivation Failed!.
* * KFUSE clock enable timings have been adjusted to allow time to stabilize before TSEC is granted access.
* * A race condition was fixed that could cause wrong key data to be used on 6.2.0
* * The TSEC firmware is now retried on failure, fixing a failure affecting ~1/50 boots on 6.2.0.
* A bug was fixed causing some modules to not work on firmware 1.0.0.
* A bug was fixed causing sleep mode to not work with debugmode enabled.
* * As a result, debugmode is now enabled in the default BCT.ini.
* General system stability improvements to enhance the user's experience.
hekate ist ein hübscher Bootloader und Firmware-Patcher, der u.a. NAND-Backups und einen EmuMMC erstellen kann.
Hekate unterstützt jetzt die Switch-Firmware 6.2.0 mit einer 100%igen Boot-Wahrscheinlichkeit! Außerdem wurden Probleme mit HDCP (quasi DRM für HDMI) und YouTube behoben, sowie weitere Bugs gefixt.
Hekate
* Full 6.2.0 support. Thanks to @nwert, @balika011 and off course, @CTCaer !
* * It has 100% success ratio.
* * Supports Secure Monitor and new Exosphere
* * Supports booting 6.2.0 with less than 8 fuses
* Added support to "Print TSEC keys" and "Dump pkg1/2" tools
* Fixed YouTube HDCP issue. Thanks @hexkyz for taking the time to investigate.
* Every file lister is now ignoring hidden files and .dot files
* Added "silent option to Auto HOS power off option. You can now choose if you want the logo to be shown.
* Refactored the monolithic main.c to simpler grouped sections. Additionally hos.c took some love.
* Many many bugfixes
General
* Removed fusee again - Did you really think we had nothing for you guys ;^)
* Updated Atmosphere
* Updated ldn_mitm
Ein paar Fehler wurden behoben, so funktioniert die AutoRCM-Protection nun wirklich und die Meldung "Failed to enable SMMU!" sollte nicht mehr beim Coldboot auftauchen. Der Debug-Mode lässt sich jetzt per "debugmode = 1" und "debugmode_user = 1" in der BCT.ini (unter "exosphere") aktivieren.
Außerdem wurden endlich die nogc-Patches hinzugefügt, die den GameCard-Slot deaktivieren. Dies wird benötigt, wenn von einer Firmware < 4.0.0 auf diese per ChoidujourNX aktualisiert wird. Die Patches werden automatisch angewendet, wenn die Fuses-Anzahl mit der von <= 3.0.2 übereinstimmt und >= 4.0.0 gebootet wird. Mit "nogc = 1" in der BCT.ini (unter "stratosphere") lässt sich das Verhalten forcieren.
Auch können Homebrew-Applikationen nun direkt in den RCM rebooten, dank einer Erweiterung zu Exosphere.
Die Switch-Firmware 6.2.0 wird jetzt unterstützt. Die benötigten Keys werden automatisch ausgelesen; für die Zukunft können Keys aber auch von /atmosphere/prod.keys und /atmosphere/dev.keys gelesen werden.
Das Systemmodul "fatal" wurde hinzugefügt, welches eine Reimplementation von Nintendos "fatal"-Modul ist. Fehlerreports werden damit auf der SD-Karte erstellt und ein eigener Fehlerbildschirm gezeichnet.
Flags (leere Dateien, die eine bestimmte Funktion an- oder abschalten, bspw. "fsmitm_disable.flag" für die Deaktivierung von LayeredFS für diesen Titel) wurden nach "/atmosphere/titles/TITLEID/flags/" verschoben – der vorhandene Pfad wird noch einige Versionen weiter funktionieren. Smhax wird nicht mehr aktiviert, da es nicht mehr benötigt wird und zu Fehlern geführt hat – User sollten darauf achten, das neueste Homebrew Menu zu verwenden.
Neu ist auch ein Basisschutz des NANDs vor Userland-Homebrews. Der BOOT0 besitzt jetzt bspw. einen Schreibschutz für den BCT Public-Key und die Keyblob-Regionen. Auch sollte ein System-Update AutoRCM nicht mehr "löschen", da das "ns"-Modul keinen Schreibzugriff mehr auf die BCT Public-Keys hat. BIS-Partitionen außer BOOT0 sind read-only und CAL0 ist weder les- noch beschreibbar. Dies lässt sich mit den Flags "bis_write" und "cal_read" pro Titel umgehen (in /atmosphere/titles/TITLEID/flags/). Außerdem wird ein automatisches Backup des BOOT0 angelegt und im laufenden Betrieb für den Zugriff blockiert.
Dieser Schutz soll vor Malware schützen, die konsolenspezifische Infos stiehlt oder die Konsole zu bricken versucht. Dies ist kein allumfassender Schutz – findige Entwickler können diesen umgehen! Bitte immer darauf achten, nur vertrauenswürdige Homebrews auszuführen, geprüfte NSPs zu installieren und generell das Hirn einzuschalten (sollte eigentlich klar sein).
SX OS war eine kostenpflichtige Custom Firmware für die Switch. SX OS sollte nicht mehr eingesetzt werden, bitte auf Atmosphère wechseln.
Der EmuNAND kann nun auf der microSD-Karte angelegt werden – bestehende Nutzer können ihren alten EmuNAND sogar migrieren, er wird dann auch automatisch vom internen NAND weggeräumt. Die microSD wird dabei nicht formatiert. Die Optionen dazu findet ihr im Bootmenü (wenn VOL+ lange beim Boot gedrückt gehalten wird).
Die Switch speichert einige Daten auch im "Nintendo"-Ordner auf der microSD. Damit das alles sauber getrennt ist, nutzt der EmuNAND einen eigenen Ordner mit dem Namen "Emutendo". Falls der bestehende Ordner benutzt werden soll, kann er einfach kopiert/umbenannt werden.
Bisher konnte das Homebrew Menu nur gestartet werden, wenn "R" gedrückt gehalten wird, während das Album aufgerufen wird. Das hat allerdings den Nachteil, dass dieses nur als Applet läuft und Zugriff auf nur rund 850 MB Arbeitsspeicher hat. Dies lässt sich entweder mit einer NSP umschiffen, oder aber, wenn irgendein Titel gestartet und dabei "R" gedrückt gehalten wird. Das heißt, man startet irgendein Spiel, hält dabei "R" gedrückt und schon startet das Homebrew Menu mit den gleichen Rechten wie ein Spiel mit Zugriff auf den gesamten RAM!
Auch werden jetzt folgende Verzeichnisse nach Inhalten durchsucht:
/sxos/updates
/sxos/dlc
/switch/updates
/switch/dlc
Außerdem lassen sich Homebrews von einem USB-Gerät starten (per SX-Menü) und einige Fehler wurden behoben. Da das neueste Atmosphère "integriert" wurde, wurde auch der Fehler behoben, der zu einer Fehlermeldung geführt hat, wenn mehr als 32 Titel gestartet wurden.
Zu guter Letzt verspricht man auch nochmal, dass man etwas für die gepatchten Switches in petto hat.
DRAM-Training wurde zu Fusee-Secondary hinzugefügt, was den Speicherzugriff während des Bootens beschleunigt und zu einem 200-400% schnellerem Start führt. Auch wurde die Erkennung der Code-Region in creport verbessert.
* DRAM training was added to fusee-secondary, courtesy @hexkyz.
* * This greatly improves the speed of memory accesses during boot, resulting in a boot time that is ~200-400% faster.
* creport has had its code region detection improved.
* * Instead of only checking one of the crashing thread's PC/LR for code region presence, creport now checks both + every address in the stacktrace. This is also now done for every thread.
* * * This matches the improvement Nintendo added to official creport in 6.1.0.
* * The code region detection heuristic was further improved by checking whether an address points to .rodata or .rwdata, instead of just .text.
* * This means that a crash appears in a loaded NRO (or otherwise discontiguous) code region, creport will be able to detect all active code regions, and not just that one.
* General system stability improvements to enhance the user's experience.
hekate ist ein hübscher Bootloader und Firmware-Patcher, der u.a. NAND-Backups und einen EmuMMC erstellen kann.
"SDFiles" heißt nun "Kosmos". ReiNX, Fusée, xor.play und SwitchPresence wurden aus dem Paket entfernt, außerdem wurde alles auf den neuesten Stand angehoben.
Der KosmosUpdater (ehemals SDFilesUpdater) merkt sich nun die Dateien, die er angelegt hat und löscht sie vor dem Aktualisieren wieder, sodass keine "Karteileichen" übrig bleiben. Auch lassen sich Dateien ignorieren, bspw. der Bootsplash – dann werden diese nicht überschrieben. Zudem lassen sich ein Proxy einstellen und Game Cards deaktivieren, falls der Treiber nicht aktualisiert werden soll (für Update von < 4.0.0 per ChoidujourNX).
Zu guter Letzt gibt es auch noch eine Warnung, dass kein exFAT benutzt werden sollte – im Ernst, formatiert eure SD-Karte in FAT32 um! Selbst wenn ihr bisher keine Probleme damit hattet – die Betonung liegt auf "bisher"! Der exFAT-Treiber von Nintendo ist bekanntermaßen Grütze.
libstratosphere (die Bibliothek zum Schreiben von Systemmodulen) wurde komplett umgeschrieben und in ein eigenes Submodul ausgegliedert. Dies verbessert die Bootzeit, die allgemeine Perfomance und behebt einige Fehler. Der Loader kann jetzt Inhalte per ExternalContentSources überschreiben und LayeredFS (fs.mitm) wurde verbessert. So wird durch das Anlegen eines Caches weniger RAM verbraucht und das RomFS nur redirected, wenn entsprechende Dateien auf der SD-Karte existieren.
Außerdem wurde ein Absturz behoben, der auftrat, wenn mehrere Spiele seit dem letzten Reboot gestartet wurden (> 32). Näheres im Changelog.
Changelog
* libstratosphere has been completely refactored/rewritten, and split into its own, separate submodule.
* * While this is mostly "under the hood" for end-users, the refactor is faster (improving both boot-time and runtime performance), more accurate (many of the internal IPC structures are now bug-for-bug compatible with Nintendo's implementations), and significantly more stable (it fixes a large number of bugs present in the old library).
* * The refactored API is significantly cleaner and easier to write system module code for, which should improve/speed up development of stratosphere.
* * Developers looking to write their own custom system modules for the Switch can now easily include libstratosphere as a submodule in their projects.
* Loader was extended to add a new generic way to redirect content (ExternalContentSources), courtesy @misson20000:
* * A new command was added to ldr:shel, taking in a tid to redirect and returning a session handle.
* * When the requested TID is loading, Loader will query the handle as though it were an IFileSystem.
* * * This allows clients to generically define their own filesystems, and override content with them in loader.
* fs.mitm has gotten several optimizations that should improve its performance and stability:
* * RomFS redirection now only occurs when there is content to redirect, even if the title is being mitm'd elsewhere.
* * A cache is now maintained of the active data storage, if any, for all opened title IDs. This means if two processes both try to open the same archive, fs.mitm won't duplicate any of its work.
* * RomFS metadata is now cached to the SD card on build instead of being persisted in memory -- this greatly reduces memory footprint and allows fs.mitm to redirect more titles simultaneously than before.
* A number of bugs were fixed, including:
* * A resource leak was fixed in process creation. This fixes crashes that occur when a large number (>32) games have been launched since the last reboot.
* * fs.mitm no longer errors when receiving a zero-sized buffer. This fixes crashes in some games, including The Messenger.
* * Multi-threaded server semantics should no longer cause deadlocks in certain circumstances. This fixes crashes in some games, including NES Classics.
* * PM now only gives full FS permissions to the active KIPs. This fixes a potential crash where new processes might be unable to be registered with FS.
* The make dist target now includes the branch in the generated zip name.
* General system stability improvements to enhance the user's experience.