[Switch] - Mise en place d'un CFW

 

Notes préventives

Attention: Pour les Switch équipées de puces SX Core ou SX Lite, Certaines choses ne doivent pas être faites ou doivent être faites un peu différemment, voir cette page pour en savoir plus. Cependant, la plupart des informations de ce tuto restent correctes, mis à part la façon de lancer les payloads et les choses à ne pas faire qui sont expliquées dans la page indiquée.  

Introduction

Dans ce tuto nous verrons comment installer les différents CFW (Atmosphere, Atmosphere via Hekate et SX OS) et ensuite nous verrons comment utiliser un homebrew pour installer le contenu (jeux, mise à jour de ceux-ci, etc...). Vous aurez besoin de 7zip ou d'un autre gestionnaire d'archive pour pouvoir extraire les différents fichiers téléchargés. Note: Veuillez lire la FAQ pour savoir comment lancer un payload et également pour savoir si votre console est compatible avec le hack. Veuillez également faire un dump de votre nand avant de procéder à ces manipulations et faites aussi un dump des clés via Lockpick-RCM, au moins pour avoir les clés uniques à la console.

Lancement d'un payload grâce à Pegascape (firmware 4.1.0 maximum, surtout utile pour les Switch patchées)

Déjà, commencez par vous connecter au réseau Wifi mais avec un mauvais mot de passe pour pouvoir régler les DNS de la Switch sur l'adresse "51.15.245.41" ou, si vous êtes en firmware 1.0.0 et que vous possédez le jeu Puyo Puyo Tetris en version japonaise ou que vous utilisez le point d'entrée Fake News, régler les DNS pour l'adresse "163.172.181.170" puis, une fois les DNS réglées, mettre le bon mot de passe Wifi pour effectuer la connexion à internet en bloquant les serveurs de Nintendo. Surtout ne pas connecter la Switch à internet sans ces DNS ou sans protections comme 90DNS ou encore Incognito car la console peut devenir "nagged", se qui signifie en gros que la console demandera une mise à jour pour accéder au navigateur internet et donc l'exploit pourrait être inutilisable. Notez que si vous ne bootez pas sur une Emunand déjà configurée pour prendre en compte le format EXFAT, il vaut mieux formater la SD en FAT32 (32K pour les clusters) car sinon le lancement du CFW pourrait ne pas fonctionner (en général cela se traduit par un écran noir au démarrage du CFW ou une erreur explicite). Ensuite, créer un dossier "pegascape" sur la SD et y mettre les fichiers "nereba.nsp" et "caffeine.nsp". On mettra également un dossier "atmosphere" à la racine de la SD contenant le fichier "hbl.nsp" et enfin le fichier "hbmenu.nro" à la racine de la SD. Pour les Switch non patchées, on peut ajouter dans le dossier "pegascape" le fichier "reboot_to_rcm.nsp" mais pour les Switch patchées cela ne sert à rien car redémarrer en RCM n'a aucun intérêt pour ces consoles. Ces fichiers sont facilement trouvable via cette page. Maintenant, mettre le payload que vous souhaitez lancer dans le dossier "atmosphere" et le nommer "reboot_payload.bin", personnellement je suggère de mettre Hekate comme payload (extraire également les dossiers présents dans la release de Hekate à la racine de la SD) et de créer un dossier "bootloader" puis dans ce dernier un dossier "payloads" dans lequel vous pourrez mettre les payloads que vous voudriez pouvoir lancer via Hekate. En faisant ce type de configuration, cela permet d'avoir un système souple et pas trop compliquer à utiliser tout en ayant un maximum de choses à disposition en cas de besoin. Maintenant, préparer le CFW de votre choix sur la SD grâce aux différentes instructions de ce tuto (attention avec Atmosphere qui contient dans sa release un fichier "atmosphere/reboot_payload.bin" que l'on va donc s'abstenir de copier pour garder plutôt Hekate) et préparer également vos homebrews sur la SD. Attention, ne suivre que les instructions de copie de fichiers sur la SD, ne pas suivre les informations parlant du mode RCM. Maintenant que tout est bon sur la SD il faut redémarrer la Switch normalement, aller sur le test de connexion Wifi dans les paramètres de la console et le portail de Pegascape devrait se lancer (pour l'exploit via Fake News ou le jeu en 1.0.0 veuillez chercher les instructions pour accéder à l'exploit). Une fois le portail lancé, choisir l'exploit Cafeine et normalement la Switch devrait rebooter sur Hekate et la suite se passe comme d'habitude. Attention: Pour les Switchs patchées, veuillez faire immédiatement un dump de la nand avec Hekate avant tout autre tentative de lancement d'un CFW et veuillez également dumper les clés de votre console grâce au payload Lockpick-RCM, c'est la seule sécurité que vous pourriez avoir en cas de problème donc il est vraiment très important de le faire immédiatement. Autre chose pour ces consoles, ne surtout pas activer l'auto-RCM car sinon la console sera brickée et il sera très difficile de la débricker, c'est pas impossible mais ça ne sera vraiment pas facile. Enfin, préférez une Emunand pour le CFW, cela permet de minimiser grandement les risques et surtout vous pourrez mettre à jour l'Emunand sur le dernier firmware compatible avec votre CFW grâce à Daybreak, par contre ne mettez surtout pas à jour la Sysnand car sinon le risque de perdre l'exploit est très élevé et en plus vous risqueriez de passer en auto-RCM ou/et de griller vos Efuses se qui serait dommage.

Réinstallation d'un CFW:

Pour cela il suffira de nettoyer certains fichiers/dossiers de la SD en les supprimant. Si vous souhaitez aussi réinitialiser l'emunand ou la sysnand, pensez à sauvegarder les sauvegardes de jeux de celles-ci via le homebrew JKSV ou DBI. Les dossiers/fichiers à supprimer sont:
  • Dossier du CFW, vous devrez par contre réinstaller le thème personnalisé, les mods de jeux ou les cheats car le dossier "contents" (ou "titles" pour SX OS) seront supprimés.
  • Si utilisation de Hekate, le dossier "bootloader".
  • Le dossier "sept" qui n'est d'ailleurs plus utilisé sur les dernières versions d'Atmosphere ou des différents payloads.
  • Le fichier "hbmenu.nro".
  • Si réinitialisation de la sysnand via le homebrew Haku33 ou via la fonction dédié de la console, suppression du dossier "nintendo". Si réinitialisation de l'emunand, le dossier remplaçant le dossier "nintendo" (par exemple sous SX OS c'est le dossier "emutendo") et suppression de tout se qui pourrait toucher à l'emunand (par exemple sous Atmosphere/Hekate le dossier "emummc"). Enfin si emunand via partition alors il faudra passer par une réinitialisation de la SD via des outils de partitionnement ou via le gestionnaire de disques de Windows.
  • Si utilisation de SX OS, le fichier "boot.dat".
  • Pour le reste se sont des dossiers pouvant être liés à certains homebrews/modules/overlays donc c'est à vous de savoir se que vous voulez supprimer ou non, le dossier "config" pourrait contenir des choses posant problème mais c'est peu probable.
Une fois cela fait vous pouvez donc réinstaller se que vous voulez sur une base propre.

Installation d'un CFW:

Le pack switch_AIO_LS_pack contient tout se qu'il faut pour une bonne base, voir cette page pour les instructions de téléchargement ainsi que pour récupérer les fichiers. Il est aussi possible de lancer les payloads évoqués ici ainsi que de préparer une SD contenant un bon nombre de homebrews utiles ainsi qu'un ou plusieurs des CFWs grâce à l'Ultimate-Switch-Hack-Script, la procédure peut même être personnalisée pour copier se que l'on souhaite. Il est également possible de se créer simplement des packs contenant les différents CFWs en allant sur cette page. Pour ceux étant en firmware inférieur au 4.0.0 et ayant mis à jour sans brûler les Efuses (ou surtout sans avoir jamais démarré la console sans ce patch après une mise à jour en 4.0.0 ou supérieur), il existe le patch "nogc" qui permet de désactiver le port cartouche car le firmware de celui-ci se met à jour en 4.0.0 et supérieur si se patch n'est pas actif. En conséquence, en cas de retour en firmware inférieur au 4.0.0, le port cartouche sera inutilisable tant que la console ne sera pas remise à jour en firmware supérieur au 4.0.0 alors que si ce patch est utilisé à chaque lancement du CFW, le firmware ne se mettra pas à jour et donc le port cartouche restera utilisable en firmware inférieur au 4.0.0. Ce patch est utilisable avec Hekate (donc le pack switch_AIO_LS_pack par exemple) ainsi qu'avec Atmosphere mais pour SX OS ce patch n'est pas utilisable. Note: Cette note spécifique sur la mise à jour du port cartouche est également valable pour les firmwares 9.0.0, 11.0.0 et 12.0.0 pour lesquels le port cartouche a aussi été mis à jour. Notez que pour mettre à jour le CFW il suffit généralement de faire comme pour l'installation en écrasant les fichiers quand cela est demandé. Cependant attention aux modules ou aux thèmes personnalisés pouvant poser des problèmes, souvent les dossiers à vérifier sont le dossier "atmosphere\contents", "sxos\titles" et éventuellement "atmosphere\kips".

Atmosphere via Hekate

Note: Avant tout il est possible de créer une emunand pour Atmosphere, voir ce tuto. Cette façon de lancer Atmosphere est implémentée dans le pack switch_AIO_LS_pack, pour sa mise en place sur la SD voir sur la page indiquée. Ensuite, sur certains packs (pas le switch_AIO_LS_pack) ou si vous récupérez Hekate et Atmosphere manuellement, pour les signatures, permettant d'installer et de lancer du contenu, vous devrez récupérer soit des fichiers de sig_patches ou le module Sys-patch (solution recommandée), ceci ne sera pas abordé ici. Normalement, il devrait y avoir un fichier "payload.bin" (fichier de payload lancé par défaut par un grand nombre de puces) qui est en fait le payload Hekate. Pour les consoles non patchées celui-ci peut être déplacé de la SD pour être placer dans un dossier de votre PC pour pouvoir le lancer par la suite (le fichier pourra être renommé sur le PC pour plus de clarté). Pour lancer le CFW, il faut donc lancer le payload Hekate (via une puce ceci est donc automatisé normalement en mettant le payload nommé "payload.bin" à la racine de la SD), aller dans l'option "launch CFW" puis choisir la façon de lancer le CFW que l'on souhaite. Sachez également qu'il est possible de configurer un auto-boot dans Hekate, celui-ci est d'ailleurs mis en place par défaut dans le pack switch_AIO_LS_pack. Pour démarrer sous Hekate si l'auto-boot est configuré il suffit d'appuyer sur "VOL-" lors de l'affichage du tout premier logo ou de maintenir "vol-" juste après l'injection du payload. Attention: Pour les consoles équipées d'une puce SX Core non flashée avec le firmware Spacecraft, vous devrez d'abord mettre à jour la puce en V1.3 en passant par le menu "option -> SX Core -> Update" avec la dernière version de SXOS. Une fois cela fait et la console redémarrée, il faudra aller dans "options -> SX Core -> Clean up" et valider puis lancer Hekate (le clean up est à faire à chaque redémarrage sur le menu de SXOS). Une autre solution consiste à faire le "Clean up" puis à éteindre la console (au passage il faut faire cela avant de flasher le firmware Spacecraft) et enfin remplacer le fichier "boot.dat" de SXOS par celui du SX Gear qui devra pointer sur Hekate dans le fichier "boot.ini". Note: Pour se déplacer au travers des différentes options de Hekate, il faut utiliser les touches de volume et la touche "Power" sert à valider. Avec l'interface graphique de la 5.0.0 ceci n'est plus nécessaire, tout est en tactile et par la suite, le support des joycons a été ajouté. Le patch "nogc" est géré via une ligne du fichier "bootloader\hekate_ipl.ini", c'est la ligne "autonogc=1" (sans les guillemets). Si la valeur est à 1, le patch "nogc" est activé automatiquement si cela est nécessaire en se basant sur le nombre d'Efuses grillés et si la valeur est définie à 0, le patch "nogc" est désactivé. Le fichier de configuration principal de Hekate est le fichier "bootloader/hekate_ipl.ini" et les fichiers secondaires se trouvent dans le dossiers "bootloader/ini". Note: Pour accéder au Homebrew Menu avec les dernières versions du pack switch_AIO_LS_pack, il faut maintenir le bouton "R" en lançant un jeu ou en lançant l'album sans maintenir de bouton (cette seconde méthode lancera les homebrews en mode applet donc sans l'accès à toute la RAM de la console, ceci n'est pas recommandé). Note sur l'emunand: Voir cette page pour comprendre comment celle-ci fonctionne sous Atmosphere.

Atmosphere

Note: Avant tout il est possible de créer une emunand pour Atmosphere, voir ce tuto. Télécharger les fichiers sur cette page. Il y a deux fichiers, un zip qui est à extraire à la racine de la SD et le fichier "fusee.bin" qui est le payload à injecter. Ensuite pour les signatures, permettant d'installer et de lancer du contenu, vous devrez récupérer le module Sys-patch (seule solution aujourd'hui avec ce type de lancement via le payload d'Atmosphere), ceci ne sera pas abordé ici. Pour les patches "nogc", il faut juste activer l'option en ajoutant la ligne "nogc = 1" (sans les guillemets) à la fin du fichier "atmosphere\config\stratosphere.ini", ceci peut être fait à l'aide d'un simple éditeur de texte. Par défaut le patch "nogc" est automatiquement appliqué si Atmosphere détecte que des Efuses du port cartouche peuvent être grillés, si vous souhaitez donc pouvoir utiliser le port cartouche tout le temps en CFW je conseille de mettre la ligne "nogc = 0" dans le fichier de configuration au lieu de "nogc = 1" Enfin, il suffira de lancer le payload "fusee.bin" pour lancer le CFW. Attention: Pour les consoles équipées d'une puce SX Core non flashée avec le firmware Spacecraft, vous devrez d'abord mettre à jour la puce en V1.3 en passant par le menu "option -> SX Core -> Update" avec la dernière version de SXOS. Une fois cela fait et la console redémarrée, il faudra aller dans "options -> SX Core -> Clean up" et valider, passer par Hekate et enfin lancer le payload "Fusee.bin" (le clean up est à faire à chaque redémarrage sur le menu de SXOS). Note: Pour accéder au Homebrew Menu avec les dernières versions du CFW, il faut maintenir le bouton "R" en lançant un jeu (méthode recommandée) ou lancer l'album. Ceci peut être configuré avec d'autres boutons ou même d'autres applications via les fichiers de configuration d'Atmosphere. Note sur l'emunand: Voir cette page pour comprendre comment celle-ci fonctionne sous Atmosphere.

Protection de la console contre le bannissement et configuration diverses:

Notons que ces différentes méthodes ne sont pas exclusives et je recommande même vivement d'en appliquer le plus possible en même temps pour maximiser la protection de la console. Si vous êtes déjà banni par contre cela ne sert plus à rien de se protéger. - Ne jamais se connecter aux serveurs de Nintendo si vous avez installer du contenu ou si l'auto-RCM est activé. Il est aussi préférable de ne pas s'y connecter si un CFW a été lancé sur la nand (sysnand ou emunand selon vos configurations). - Activer Incognito via ce payload sur la partie utilisée par le CFW. Si ce payload est utilisé sur la sysnand, bien sauvegarder le fichier de sauvegarde de la partition PRODINFO, celle-ci est très importante pour inverser le processus. Si cette solution ne fonctionne pas alors il faudra utiliser NXNanadManager sur l'emunand (partie RAWNAND) et lui appliquer Incognito (nécessite les clés de la console). - Activer 90DNS sur la partie CFW, pour se faire via le Wifi il faut d'abord se connecter au réseau souhaité en utilisant un mauvais mot de passe pour pouvoir ensuite configurer les DNS de celui-ci puis une fois configurées on peut mettre le bon mot de passe (via réseau filaire il est possible de faire la configuration des DNS avant la connexion du câble). Pour connaître les DNS à entrer une recherche sur un moteur de recherche devrait donner les infos à jour. - Activer Incognito via Atmosphere s'il est lancé, ceci se passe dans le fichier "exosphere.ini", on mettra à la valeur "1" les paramètres "blank_prodinfo_emummc" et "blank_prodinfo_sysmmc", voir le fichier "atmosphere\config_templates\exosphere.ini" pour en savoir plus sur ce fichier et ses paramètres. - Utiliser le service dns_mitm d'Atmosphere pour agir comme 90DNS, celui-ci est activé par défaut mais peut être contrôlé via le fichier "atmosphere\config\system_configs.ini" grâce aux valeurs "enable_dns_mitm" et "add_defaults_to_dns_hosts" qui doivent être réglées à "u8!0x1". La configuration des redirections DNS de ce service se fait via le fichier "atmosphere\hosts\default.txt" (deux autres fichiers peuvent être utilisés de la même façon pour spécifier des paramètres spécifiques selon que la sysnand ou l'emunand soit démarrée mais ici on ne s'en servira pas donc s'ils existent les supprimer de la SD) et peut être configuré ainsi:
# 90dns redirection 127.0.0.1 *nintendo* # Nintendo telemetry servers 127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net # 90dns server for passing wifi connection test, replace the IP with your own if you host the server by yourself 95.216.149.205 conntest.nintendowifi.net ctest.cdn.nintendo.net
Pour le fichier "bootloader\hekate_ipl.ini" qui sert à la configuration de Hekate je recommande ceci, voir le readme du projet pour connaître la façon dont Hekate fonctionne dans le détail:
[config] autoboot=0 autoboot_list=0 bootwait=3 autohosoff=0 backlight=100 updater2p=0 autonogc=1 bootprotect=0 {Atmosphere via Hekate} [Atmosphere_emunand+SigPatches] id=AmsES emummcforce=1 fss0=atmosphere/package3 logopath=bootloader/bootlogo.bmp icon=bootloader/res/icon_switch.bmp kip1patch=nosigchk fullsvcperm=1 kip1=atmosphere/kips/* cal0blank=1 { } {Atmosphere via Hekate sans emunand} [Atmosphere_no_emunand+SigPatches] id=AmsSS emummc_force_disable=1 fss0=atmosphere/package3 logopath=bootloader/bootlogo.bmp icon=bootloader/res/icon_switch.bmp kip1patch=nosigchk fullsvcperm=1 kip1=atmosphere/kips/* cal0blank=1 { } {-------- Stock -------} [Stock] id=Ofw emummc_force_disable=1 fss0=atmosphere/package3 stock=1 icon=bootloader/res/icon_switch.bmp { }
Pour ceux souhaitant ne pas utiliser le patch NOGC la valeur "autonogc=1" peut être changée en "autonogc=0". Si vous utilisez le module Sys-patch la ligne "kip1patch=nosigchk" n'est plus nécessaire, cependant si vous utilisez les sig_patches avec Hekate et le module Sys-patch les solutions ne se gênent pas entre elles donc c'est à vous de voir. - Pour finir il est intéressant de consulter les fichiers se trouvant dans "atmosphere\config_templates", ces fichiers expliquent comment Atmosphere se configure via ses différents fichier de configuration, ceux-ci peuvent être copiés dans "atmosphere\config" (à l'exception du fichier "exosphere.ini" qui est à mettre à la racine de la SD) pour modifier les valeurs. Notons que les lignes commençant par un ";" sont traitées comme des commentaires donc elles ne sont pas prises en compte par Atmosphere ou Hekate, pour modifier un paramètre il faut donc supprimer ce ";". Prenons un exemple avec un élément intéressant du fichier "atmosphere\config\system_settings.ini":
; Enable USB 3.0 superspeed for homebrew ; 0 = USB 3.0 support is system default (usually disabled), 1 = USB 3.0 support is enabled. ; usb30_force_enabled = u8!0x0
Ici on a donc les deux premières lignes qui expliquent comment fonctionne le paramètre puis le paramètre en lui-même qui indique que l'USB 3 est désactivé par défaut et la ligne du paramètre est également commentée. Pour activer cette fonction on fera donc ainsi:
; Enable USB 3.0 superspeed for homebrew ; 0 = USB 3.0 support is system default (usually disabled), 1 = USB 3.0 support is enabled. usb30_force_enabled = u8!0x1

Installation de contenu

Pour installer des NSP/XCI/NSZ/XCZ/etc... il y a, entre autres, le homebrew AtmoXL-Titel-Installer qui fonctionne plutôt bien. Il y a aussi DBI qui fonctionne très bien et possède quelques fonctions très utiles (voir ce tuto pour connaître une bonne façon de l'utiliser) et également Goldleaf ou Tinfoil. Note: Dans certain homebrews on peut voir une erreur relative à la signature des fichiers NCA, AtmoXL-Titel-Installer ou DBI permettent de juste facilement confirmer que l'on souhaite bien installer ce genre de contenu mais d'autres, comme Tinfoil, nécessite d'activer une option permettant l'installation de ce genre de contenu en entrant un code qui est le Konami Code, à savoir "haut, haut, bas, bas, gauche, droite, gauche, droite, b, a".