Le développeur SciresM vient de sortir la version 0.13.0 d'Atmosphere, à cette occasion Exosphère a été complètement réécrit et est maintenant beaucoup plus efficace. Cela facilite également le support de Mariko, qui devrait bénéficier d'une aide.
Cette version casse tous les modules système qui utilisent les librairies d'Atmosphère ! Ils doivent d'abord être adaptés à la nouvelle API.
L'EmuMMC basé sur les fichiers a été considérablement accéléré et est maintenant presque aussi rapide que celui basé sur les partitions brutes.
Attention, les utilisateurs d'Hekate doivent impérativement utiliser la dernière version 5.3.0 qui vient d'être mise en ligne car il y a des changements importants dans Atmosphere 0.13.0.
Les changements d'Atmosphere 0.13.0
exosphère, la réimplémentation du moniteur sécurisé d'atmosphère, a été complètement réécrite.
exosphère a été le premier composant écrit pour le projet au début de 2018. Il est écrit en C, et dans un style très différent du reste du code d'atmosphère. Cela a rendu la base de code difficile à maintenir au fil du temps.
exosphère a également été écrit pour se conformer à des contraintes et des hypothèses qui ne s'appliquent tout simplement plus lorsque le cfw n'est pas lancé depuis le navigateur web, et lorsque le warmboothax est possible.
Au-delà de ces problèmes, exosphère a utilisé tout l'espace disponible, sauf 1KB sur les 64KB. Cela a posé un problème pour plusieurs raisons :
Chaque nouvelle mise à jour du système nécessite un espace supplémentaire pour le support (pour ajouter de nouvelles clés et refléter les divers changements) ; le support 10.0.0 a utilisé 3 des 4KB qu'il nous restait.
atmosphère voudra avoir un support logiciel pour le matériel mariko, et il n'est pas possible de le faire tenir dans 1 Ko.
La réécriture d'exosphère (dont le nom de code était exosphère2 pendant le développement) résout ces problèmes.
La nouvelle base de code est du C++20 écrit dans le style d'atmosphère.
Cela résout le problème de la maintenabilité et devrait faciliter la compréhension du fonctionnement du moniteur sécurisé pour ceux qui souhaitent utiliser le code comme implémentation de référence.
De plus, la nouvelle implémentation utilise actuellement ~59,5 des 64KB disponibles.
Plusieurs modifications potentielles du code sont prévues, qui peuvent permettre d'économiser/accéder à ~2-3 Ko supplémentaires si nécessaire.
Contrairement à la première base de code, la nouvelle exosphère a en fait déjà de l'espace alloué pour les futures clés/etc. Il est actuellement prévu que l'espace réservé ne sera jamais nécessaire.
La mise en oeuvre précédente a choisi de ne pas se servir d'un certain nombre de fonctions de surveillance sécurisée "non importantes" en raison de problèmes d'espace. Le nouveau code dispose d'une marge de manoeuvre suffisante pour pouvoir les mettre utiliser sans soucis.
Enfin, les bases du support de Mariko ont été posée, il n'y a que quelques changements mineurs nécessaires pour que la nouvelle implémentation de moniteur sécurisé fonctionne à la fois sur le matériel Erista et Mariko.
Veuillez noter : exosphère n'est qu'un des nombreux composants, et beaucoup d'autres ont besoin de changements pour pouvoir fonctionner sur le matériel Mariko.
Le support logiciel pour l'exécution sur le matériel Mariko avec puce TX est prévu pour l'été 2020, mais il faut également noter que ce n'est pas une date limite.
Veuillez noter que le nouveau binaire exosphère n'est pas compatible avec l'ancien. Les utilisateurs qui démarrent en utilisant hekate doivent passer à la version 5.3.0 de hekate avant d'exécuter la version 0.13.0 (ou démarrer le fusee-primary via hekate).
L'api d'atmosphère pour le firmware cible a été modifié. Toutes les versions de systèmes mineurs/micro sont maintenant reconnues, au lieu des seules versions majeures. Cela était nécessaire pour prendre en charge la version 5.1.0 du firmware, qui a apporté des modifications de rupture à certaines API de l'IPC qui ont entraîné l'abandon de la version 0.12.0 d'Atmosphère.
Veuillez noter qu'il s'agit (inévitablement) d'un changement de rupture. Les modules système utilisant les atmosphères devront être mis à jour pour comprendre quelle version de firmware ils utilisent.
emummc a été mis à jour pour inclure les nouveaux changements.
emummc utilise maintenant un pilote SDMMC mis à jour/amélioré/plus rapide.