SciresM vient de mettre en ligne une nouvelle version d'Atmosphere, la v0.12.0, comme vous le savez, si vous l'avez déjà, pour mettre à jour ou installer cette nouvelle version, il est recommandé de supprimer les dossiers / atmosphere / bootloader / sept et d'insérer les nouveaux fichiers.
Changelog 0.12.0 :
- La configuration pour Exosphère a été déplacée vers sd:/exosphere.ini. Ceci afin de faciliter les changements de protection BIS décrits ci-dessous. Il est à espérer que le fait d'avoir cette configuration en dehors du dossier Atmosphere évitera une suppression accidentelle, puisque celui-ci contient maintenant des paramètres importants.
- La politique de protection BIS d'Atmosphere pour la partition PRODINFO a été considérablement remaniée.
- La possibilité d'effectuer "automatiquement" une opération de "blanking" sur PRODINFO sans modifier NAND a été ajoutée. Cela équivaut à utiliser l'outil homebrew "incognito", mais la NAND n'est jamais réellement modifiée. Cela peut être activé dans sysmmc en définissant blank_prodinfo_sysmmc=1 dans exosphere.ini, et dans emummc en définissant blank_prodinfo_emummc=1 dans exosphere.ini. Veuillez noter que cette méthode n'est pas connue pour être sûre. Il n'y a pas suffisamment de recherches pour savoir si les informations effacées sont mises en cache ailleurs dans le système. L'utilisation de cette option n'est pas encouragée pour cette raison.
- La prise en charge de l'écriture sur la partition PRODINFO a été ajoutée, si une sauvegarde cryptée vérifiée a été effectuée.
- PRODINFO est la seule donnée du système qui ne peut être récupérée si elle n'est pas sauvegardée, et c'est pourquoi Atmosphere la sauvegarde sur la carte SD au démarrage depuis un certain temps déjà.
- Les utilisateurs qui souhaitent modifier leurs données d'étalonnage peuvent désormais le faire sans condition dans emummc, et dans sysmmc si allow_writing_to_cal_sysmmc=1 est défini dans exosphere.ini. Veuillez noter que cela est fortement déconseillé, et que l'utilisateur type ne voudra presque jamais faire cela. Si cette option est activée, Atmosphere tentera de vérifier (ou de créer) une sauvegarde cryptée des données PRODINFO dans une zone inutilisée de la partition.
- La sauvegarde est cryptée avec des clés par console que les développeurs d'Atmosphere ne connaissent pas. Si la sauvegarde n'est pas vérifiée ou créée, les écritures ne fonctionneront pas. Les utilisateurs qui ont corrompu leur PRODINFO dans le passé sont encouragés à faire une bonne sauvegarde flash pour permettre l'utilisation de ce paramètre.
- Les lectures et les écritures dans la région utilisée pour la sauvegarde cryptée en toute sécurité sembleront réussir, mais en fait, elles seront lues/écrites à partir d'un tampon rempli de déchets en mémoire.
- La prise en charge de l'amorçage avec un calibrage entièrement effacé sera étudiée à l'avenir. Ceci est souhaitable pour permettre aux utilisateurs qui ont perdu leurs données de calibrage à cause d'un brick du homebrew avant la mise en place de la protection bis de réussir le démarrage.
- creport a été mis à jour pour utiliser les nouvelles API de capture d'écran ajoutées dans la version 9.0.0+. Depuis la version 10.0.0+, si un plantage se produit dans une application (pas dans une applet ou un module système), une capture d'écran est automatiquement enregistrée sur la carte SD.
- Si l'utilisateur applique un patch sur la version 9.0.0 (car la commande utilisée était auparavant réservée aux unités de développement), cela peut également fonctionner sur la version 9.0.0.
- Le nouveau sysmodule pgl ajouté dans la version 10.0.0 a été réimplémenté. pgl ("Program Launcher", probablement) est responsable de la gestion des processus utilisateurs lancés, qui étaient auparavant gérés par NS. Le plus intéressant dans pgl est qu'il fournit enfin une API permettant à plusieurs clients de s'inscrire à des événements de processus. Grâce à ces nouvelles API, les modules système et autres homebrews peuvent être paramétrés pour être avertis chaque fois qu'un événement de processus se produit. Cela signifie que des mesures peuvent être prises au lancement du processus, à la sortie du processus, en cas de panne du processus, etc.
Un léger problème avec la mise en oeuvre de Nintendo est que chaque objet abonné utilise 0x448 octets de mémoire, et N ne réserve que 8 Ko pour toutes les allocations en pgl.
- L'implémentation d'Atmosphere utilise un tas de 32KB, qui ne devrait pas être épuisable. L'implémentation d'Atmosphere a une empreinte mémoire totale d'environ 0x28000 octets plus petite que celle de Nintendo.
- Une réimplémentation a été ajoutée pour le module système jpegdec (merci @HookedBehemoth) ! Cela permet d'avoir deux sessions au lieu d'une, donc le homebrew peut maintenant l'utiliser pour le décodage de logiciels jpeg en plus du système d'exploitation lui-même. Comme d'habitude, l'implémentation a une empreinte mémoire très légèrement inférieure à celle de Nintendo.
- La machine virtuelle de triche a été étendue pour ajouter trois nouveaux opcodes. Le premier nouveau opcode, "ReadWriteStaticRegister", permet aux codes de triches de lire à partir d'une banque de 128 registres statiques en lecture seule, et d'écrire dans une banque de 128 registres statiques en écriture seule. Cette fonction peut être utilisée avec les nouvelles commandes IPC qui permettent à un gestionnaire de codes de triches de lire ou d'écrire la valeur de ces registres statiques pour avoir des codes de triches "dynamiques". Par exemple, un gestionnaire de codes pourrait inscrire une valeur dans un registre statique qui pourrait être utiliser pour contrôler la quantité d'un objet à donner dans un jeu. Par ailleurs, un gestionnaire de triches pourrait lire un registre statique dans lequel le code écrit pour connaître le nombre d'objets dont dispose un joueur. Les deuxième et troisième opcodes sont une paire, "PauseProcess" et "ResumeProcess". L'exécution d'un processus de pause dans un processus de code de triches mettra le jeu en pause (il sera gelé) jusqu'à ce qu'un opcode de processus de reprise soit utilisé. Ces codes sont également disponibles via l'IPC, pour les gestionnaires de code de triches ou les modules système qui souhaitent interrompre ou reprendre le processus de triche joint. Cela permet à un logiciel de code de triches de savoir que le jeu ne modifiera pas ou n'accédera pas aux données auxquelles il a accès. Par exemple, cela peut être utilisé pour empêcher Pokemon de voir un pokemon qu'un tricheur est en train d'injecter et de transformer en mauvais oeuf.
- Un bug a été corrigé qui provoquait le plantage de la console lorsqu'elle était connectée en Wi-Fi sur les versions entre 3.0.0 et 4.1.0 (inclus).
- Un bug a été corrigé qui pouvait provoquer un échec sporadique du démarrage en raison d'une mauvaise gestion du cache/tlb lors de l'exécution de l'ASLR physique du kernel.
- Un certain nombre d'autres problèmes mineurs ont été résolus (Atmosphere a été mis à jour pour refléter d'autres changements dans la version 10.0.x).
- Améliorations générales de la stabilité du système afin d'améliorer l'expérience de l'utilisateur.