Pour la rentrée 2017 sortait la
NumWorks N0100. Commercialisée à
80€ et se situant donc dans le milieu de gamme, cette calculatrice graphique se distinguait de l'ensemble de la concurrence par un modèle collaboratif : le code source de son
firmware Epsilon étant disponible publiquement, et n'importe qui pouvant y soumettre des contributions.
Elle bénéficiait de plusieurs avantages tous exclusifs au départ :
- première calculatrice à être officiellement programmable en Python dès sa sortie à la rentrée 2017, soit juste à temps pour les nouveaux programmes du lycée contrairement à l'ensemble de la concurrence
- dès décembre 2017 avec la mise à jour 1.2, un moteur de calcul exact très supérieur aux moteurs QPiRac de la concurrence, permettant également du calcul littéral, du jamais vu à ce tarif-là ; une fonctionnalité déclenchant toutefois l'hostilité de certains enseignants car peut-être trop en avance sur son temps, et hélas désactivée à partir de la mise à jour en version 11 en juin 2019.
- une application de Probabilités munie d'une interface universelle parfaitement intuitive, parlant en effet directement le langage des énoncés
Rentrée 2018
NumWorks allait encore plus loin dans l'ouverture, passant de la licence
Creative Commons BY-NC-ND 4.0 à la
BY-NC-SA 4.0. C'est-à-dire que tu gagnais enfin le droit de distribuer toi-même tes modifications ou ajouts au
firmware officiel
Epsilon. Pour la rentrée 2019 arrivait de plus le modèle successeur
NumWorks N0110, passant la capacité de la mémoire
Flash de
1 Mio à
8 Mio.
Tout ceci enflamma littéralement la communauté de développement
NumWorks, propulsant le développement tiers à un niveau jamais atteint sur la concurrence, et permettant l'émergence d'un projet formidable,
Omega par
Quentin Guidee et ses non moins illustres collaborateurs.
Il s'agissait d'un
firmware alternatif pour ta calculatrice
NumWorks. Basé sur le code source d'
Epsilon comme la licence libre l'y autorisait,
Omega avait pour but de regrouper et mettre en avant les meilleures contributions au code d'
Epsilon, en incluant cette fois-ci celles laissées de côté par le constructeur.
Difficile de tout citer ici mais voici déjà par exemple un des fantastiques ajouts d'
Omega. La
NumWorks travaille en interne sur des arbres de calcul, mais les bridait donc artificiellement pour n'accepter que des valeurs numériques.
Omega ré-autorisait à nouveau ces arbres à utiliser des lettres / inconnues, ce qui nous redonnait ainsi un moteur de calcul littéral. De quoi même dériver, du jamais vu à seulement
80€ !
Citons aussi un tableau périodique des éléments, ou encore la possibilité d'avoir une bibliothèque de constantes physiques avec unités bien avant que ce ne soit disponible dans le
firmware officiel.
Outre ce qu'il intégrait,
Omega offrait également l'avantage de pouvoir installer à chaud des applications, fonctionnalité jusqu'alors absente du
firmware officiel
Epsilon. Plusieurs applications de très haute facture furent développées, on peut citer entre autres :
- KhiCAS, une formidable application intégrée de Mathématiques et de Sciences par Bernard Parisse, enseignant-chercheur à l'Université de Grenoble, qui étendait gratuitement les capacités de ta calculatrice au niveau d'une HP Prime. L'application intégrait le moteur de calcul formel GIAC développé pour le logiciel Xcas du même auteur pour des possibilités en calcul encore plus étendues. Étaient également inclus un tableur, une bibliothèque de constantes physiques, un convertisseur d'unités, un tableau périodique des éléments et bien d'autres choses encore. Le tout était en prime programmable en Python, avec une collection de modules importables bien plus étoffée que celle de l'application Python officielle, et surtout ici de façon intégrée, tes scripts Python pouvant en effet faire appel au moteur de calcul formel GIAC par l'intermédiaire du module cas.
- Nofrendo, un émulateur de console de jeux Nintendo NES par zardam
- Peanut-GB, un émulateur de console de jeux Nintendo GameBoy par M4x1m3
- Periodic, un tableau périodique des éléments par M4x1m3
Un gros avantage de plus était ici que
KhiCAS et l'ensemble des fonctionnalités rajoutées restaient accessibles en mode examen, de façon parfaitement légale et légitime en France, puisque ces fonctionnalités venaient directement intégrées à des modèles concurrents haut de gamme parfaitement autorisés.
Réveil douloureux à la rentrée 2021,
NumWorks sortait avec la
mise à jour 16.3 de son
firmware officiel
Epsilon un verrouillage féroce de sa calculatrice
N0110, empêchant entre autres désormais toute installation d'un
firmware non officiel, comme
Omega.
NumWorks n'a bien évidemment pas effectué ce retournement de veste à 180° par pur plaisir. La chose s'inscrivait à l'époque dans le cadre de difficultés concernant la validation de la
N0110 pour les examens des Pays-Bas ainsi que du Portugal, deux pays mettant à jour chaque année une liste de modèles approuvés pour les examens, utilisant le mode examen, et interdisant les capacités de calcul formel ou même littéral.
Aux Pays-Bas, c'est dès
février 2020 que la calculatrice
NumWorks avait été annoncée comme autorisée à compte de la session d'examens 2022, tout semblait être en bonne voie. Sauf que
Maurits, étudiant néerlandais en économie, a été profondément scandalisé contre cette autorisation. Dès avril 2020 il a publié une véritable
diatribe contre
NumWorks et les projets
open-source en général, se devant selon lui d'être interdits d'utilisation en examen car facilitant la triche. Bien loin de s'arrêter là,
Maurits a modifié le code source du
firmware NumWorks officiel pour empêcher l'effacement à l'activation du mode examen des données préchargées, a installé ce
firmware modifié sur sa calculatrice, a filmé la chose,
publié la vidéo, et est allé jusqu'à envoyer le tout à
https://www.examenblad.nl, l'autorité responsable de l'organisation des examens aux Pays-Bas.
Au Portugal, dès la
rentrée 2020, la presse annonçait l'arrivée prochaine de
NumWorks dans la liste de modèles approuvés pour la session d'examens 2021. Sauf que véritable camouflet, lors de la publication de la liste en question en
mars 2021, la
NumWorks était absente de la liste. Les motivations accompagnant la publication de la liste ne nommaient pas NumWorks, mais incriminaient clairement la possibilité d'installer des fonctionnalités de calcul formel sur de nouveaux modèles examinés dans le cadre de l'élaboration de cette liste. La
NumWorks étant alors le seul modèle récent absent de la liste, aucun doute possible sur qui était visé. Non approuvées, les calculatrices
NumWorks ont même fait l'objet à l'occasion d'une interdiction nationale pour la session 2021
(plusieurs documents sorties suite à cette mise à jour annonçant l'interdiction de toute calculatrice "open source"), un traitement auquel aucun concurrent n'avais jamais eu droit jusqu'alors.
Afin de pouvoir rester autorisé aux Pays-Bas et autorisé avec son nouveau modèle
N0120 pour la
session d'examens 2022 au Portugal,
NumWorks a donc dû donner des garanties aux institutions concernées, peut-être malheureusement trop.
Techniquement la mise à jour injectait un
bootloader (chargeur de démarrage) n'acceptant plus d'installer et lancer que des
firmwares officiels, et interceptant de plus le raccourci
reset+
6
qui donnait accès jusqu'alors à un mode de récupération permettant de re-programmer librement l'intégralité de la mémoire
Flash.
Un support des applications tierces était certes rajouté en contrepartie mais avec de lourdes limitations
(popup d'avertissement à fermer à chaque allumage, effacement définitif à chaque plantage, redémarrage, panne d'alimentation ou entrée/sortie du mode examen, ...), injustifiables pour la communauté car cette combinaison de restrictions est absente des modèles concurrents et ne serait donc logiquement pas exigée par les institutions réglementant les examens.
Au vue de ces contraintes non viables pour les développeurs, il était en effet impensable pour ces derniers d'espérer pouvoir fidéliser des utilisateurs si ces derniers devaient sans arrêt réinstaller leurs applications. Et d'ailleurs, de façon absolument pas surprenante, strictement aucune application tierce n'est sortie pour ce nouveau système jusqu'à ce jour, à ce qu'on sache.
Au même moment,
NumWorks a révoqué sa licence libre, coupant ainsi les sources aux
firmwares tiers comme comme
Omega, qui reprenaient régulièrement les améliorations du
firmware officiel
Epsilon lors de leurs propres mises à jour.
NumWorks faisait donc un choix clair, ferme, et dur. Mais le problème est que cela intervenait après des mois d'échanges privés au sujet de ces problèmes avec la communauté de développement
Omega, échanges pour lesquels la communauté avait imaginé et proposé d'autres solutions davantage gagnant-gagnant, et au cours desquels cet extrême n'avait jamais été annoncé. Ce choix inattendu, au bout de presque une année d'échanges, généra donc un très lourd ressentiment au sein de la communauté de développement
Omega, contrainte suite à cet échec de communication/entente et à la révocation de la licence, d'annoncer la mort dans l'âme l'
abandon du projet et la dissolution de l'équipe à la rentrée 2021.
Les pages de mise à jour n'ont jamais averti les utilisateurs de ces changements, ni ne leur ont donné la possibilité de les accepter ou refuser. Nombre d'utilisateurs se sont ainsi retrouvé "piégés" à la rentrée 2021 malgré nos efforts d'information, n'arrivant plus à rajouter des fonctionnalités légitimes qu'ils désiraient après avoir mis à jour leur calculatrice sans se méfier.
Il y avait pourtant eu un précédent dont
NumWorks aurait dû être au courant et se méfier. Au
printemps 2020,
Texas Instruments avait commencé à diffuser des mises à jour supprimant la capacité des
TI-83 Premium CE et
TI-84 Plus CE à lancer des programmes écrits en langage machine, un point absolument majeur pour les communautés de développeurs et utilisateurs. Non sans raisons mais ce n'est pas le sujet aujourd'hui, sans avoir tenu compte de l'avis de sa communauté
(non demandé), sans retour possible à une version précédente une fois la mise à jour effectuée. La seule différence était que les pages officielles de mise à jour informaient les utilisateurs du changement, du moins ceux qui se donnaient la peine de lire.
Cela avait également généré un ressentiment énorme au sein de la communauté et déclenché pour la rentrée 2020 une vague d'attaques sans précédent contre le modèle de sécurité de
Texas Instruments :
- arTIfiCE pour rouvrir la possibilité de lancer des programmes en langage machine
- puis 2 attaques d'une violence extrême jamais vue dans toute l'histoire de la communauté TI, Cauldron et BootSwap, permettant de reprogrammer le Boot code pour faire sauter toutes les sécurités, ouvrant la voie à l'installation de systèmes non autorisés, modifiés ou tiers
Sauf que l'équipe de développement
Omega s'est visiblement reformée récemment, et depuis hier nous balance une série d'éléments fort mystérieux, annonçant pour aujourd'hui 2 sorties conjointes que nous allons couvrir:
- Omega 2.0, par l'équipe Omega
- Phi, par M4x1m3
Un mise à jour
Omega certes, mais si plus grand monde ne pouvait l'installer quel intérêt ?... Le mystère fort inhabituel entretenu autour de ces éléments nous faisait anticiper quelque chose de majeur... Et nous y sommes, c'est le grand jour de la libération des calculatrices
NumWorks N0110 !
Les mêmes causes produisant les mêmes effets...
Phi est une attaque d'une violence inouïe contre le nouveau modèle de sécurité de
NumWorks, comparable au
BootSwap de la communauté
TI.
Phi est un
bootloader destiné à écraser celui injecté par
NumWorks lors du verrouillage, c'est-à-dire à déverrouiller ta calculatrice pour permettre par la suite entre autres l'installation d'
Omega 2.0.
Nous traiterons pour le moment le cas d'une machine déjà verrouillée sur un
firmware Epsilon en version
16 ou supérieure. Mais il est également possible et intéressant d'installer
Phi sur une machine non verrouillée comme nous verrons plus loin.
À partir d'une machine déjà verrouillée donc, l'installation de
Phi est possible très simplement via une application, s'appuyant donc sur les nouvelles possibilités de gestion des applications introduite avec la version
16 du
firmware officiel
Epsilon, un comble...
Une fois installée l'application d'installation de
Phi via le lien en fin d'article, il te suffit de la lancer et d'effectuer dans l'ordre les 4 manipulations qu'elle te propose au menu :
- Unlock internal flash : déverrouillage de la flash interne au microcontrôleur, celle contenant le bootloader nous mettant en prison
- Erase bootloader : effacement du chargeur de démarrage, ce qui aurait dû être impossible et doit on suppose exploiter une faille
- Install custom bootloader : programmation du chargeur de démarrage Phi, alternative donc au bootloader de NumWorks
- Reset : redémarrage pour activer Phi, sans avoir à aller chercher un outil ce qui est bien pratique
Ta calculatrice redémarre maintenant sur son même
firmware officiel
Epsilon,
Phi supportant en effet entre autres l'amorçage des
Epsilon en version
16 ou supérieure. Rien n'a changé penses-tu ? Oh que si !
Il t'est maintenant possible via le raccourci
reset+
6
de passer la machine dans le mode de récupération non bridé :
- avec un porte-mine ou autre outil pointu, enfonce et maintiens le bouton reset au dos de ta calculatrice
- sans le relâcher, maintiens enfoncée la touche
6
- relâche en premier le bouton reset
Si tout s'est bien passé, cette manipulation doit te donner un écran complètement noir
(avec la diode examen allumée de couleur rouge), et non pas l'écran ci-contre caractériques des
N0110 verrouillées.
Si c'est le cas, tu peux de suite installer
Omega ou un de ses dérivés
(Upsilon ou Khi) !
Il te suffit juste d'utiliser sur les pages en question le bouton d'installation spécifique aux calculatrices qui sont en mode de récupération.
Sauf que suite au déverrouillage, tu es maintenant face à un cruel dilemme, non ?
- soit tu optes pour un firmware Omega et renonces alors à toutes les superbes nouveautés apportées par NumWorks avec les versions 16, 17 et 18...
- soit tu optes pour le firmware officiel Epsilon et renonces alors à tous les ajouts apportés par Omega et autres (calcul littéral, tableau périodique des éléments, calcul formel avec KhiCAS, émulateurs Nintendo NES et Game Boy, ...)
Et c'est là que l'équipe
Omega s'est montré absolument géniale, car le problème a bel et bien été pris en compte. Dans le cadre de son verrouillage,
NumWorks a réorganisé l'utilisation de la mémoire
Flash de sa calculatrice
N0110. La mise à jour en version
16 ou supérieure inscrit en mémoire
Flash 2 copies du
firmware à des emplacements que nous appellerons
slots A et
B, l'une des deux étant censée être inaltérable pour les examens, et la calculatrice re-basculant sur cette dernière lors de l'activation du mode examen ou de l'utilisation du bouton
reset au dos.
Phi t'active un nouveau raccourci,
reset+
4
, permettant de consulter l'état de la mémoire
Flash et de mettre la calculatrice en mode de mise à jour.
Si tu calculatrice est à jour, tu obtiendras à ce jour comme ci-contre un écran t'indiquant 2 copies du
firmware Epsilon 18.2.
Et bien justement, le nouvel
Omega 2.0 apporte 2 avancées majeures dans ce cadre :
- il est compatible avec le chargeur de démarrage Phi, c'est-à-dire amorçable par ce dernier
- si installé depuis le site Omega, il s'inscrit dans le slot A sans écraser le contenu du slot B
C'est-à-dire que si tu installes maintenant
Omega sur une calculatrice dans l'état précédent, tu obtiens 2
firmwares différents en mémoire
Flash :
- Omega 2.0 dans le slot A
- Epsilon 18.2 dans le slot B
De quoi profiter simultanément du meilleur des deux mondes !
Phi gère en effet le
multiboot, et il t'est maintenant super facile de basculer à tout moment d'un
firmware à l'autre grâce aux raccourcis
reset+
1
et
reset+
2
.
Espérons que les
firmwares dérivés
Upsilon ou
Khi pourront rapidement être mis à jour pour être compatibles avec cette formidable possibilité.
Répondre parfaitement au dilemme en réutilisant différemment le modèle sécuritaire de
NumWorks afin entre autres de conserver la compatibilité, c'est un bel exploit que nous ne pouvons que saluer !
Une configuration qui devient ainsi intéressante même pour les calculatrices qui ne sont pas encore verrouillées.
Attention, justement. Rappelons que suite à la révocation de la licence libre d'
Epsilon, toute diffusion de ce
firmware officiel est strictement interdite.
Si tu souhaites donc disposer sur une
N0110 non encore verrouillée du
multiboot avec un
firmware Epsilon à jour en version
18.2, ta seule possibilité d'installation est de passer par le
site officiel.
Tu dois donc commencer par verrouiller ta machine avec la dernière mise à jour
18.2.0, pour ensuite immédiatement installer
Phi avec le lien en fin d'article.
Or, il ne fait aucun doute que
NumWorks va se hâter de corriger la faille, et combattre l'installation de
Phi. Tu as donc à notre avis une petite fenêtre de seulement quelques jours ou au mieux quelques semaines pour obtenir cette configuration. Si tu veux l'installer il y a donc urgence, tu dois te dépêcher, d'ici peu tu n'auras plus cette possibilité.
Edit : Attention, une mise à jour
Epsilon 18.2.3 vient de sortir à J+1. La manipulation en l'état est fortement déconseillée.
Aller consulter ce que cela implique dans le
nouvel article, ou se référer au tutoriel d'installation lié en fin d'article qui sera pour sa part régulièrement mis à jour concernant les possibilités et limitations.
Phi constitue ainsi une attaque extrêmement violente contre
NumWorks. Qu'on la juge méritée ou pas, le constructeur n'en a pas moins fait le lit avec des échanges visiblement manquant de transparence ou de franchise, aboutissant à une solution de verrouillage extrême finalement non gagnant-gagnant.
Mais mettons-nous toutefois maintenant du point de vue de
NumWorks. Qu'on la juge légitime ou non, cette attaque ne sera pas appréciée et sera probablement perçue comme malveillante. En effet, elle sort juste avant les épreuves d'examens au mois de mai...
- Pour la France, à priori pas de problème
- Pour le Portugal non plus puisque
Phi et
Omega et les autres
firmwares associés ne sont pas
(encore ?) compatibles avec le seul nouveau modèle
N0120 autorisé cette année.
- Par contre, reste le problème des Pays-Bas. Ce n'était peut-être pas l'objectif, mais
Phi ouvre à nouveau la voie au calcul littéral et formel strictement interdit aux examens Néerlandais, et constitue donc dans ce pays un outil de fraude aux examens. Après le grave incident de
Maurits en 2020, pas sûr que l'institution accepter à nouveau de donner une nouvelle chance à
NumWorks. L'exclusion de
NumWorks du marché néerlandais deviendrait une perte financière notoire, que la communauté ne sera à notre avis jamais capable de compenser.
Nous ne pourrons pas leur en vouloir dans ce contexte si jamais ce n'était pas le cas, mais espérons que
NumWorks choisira la voie de la communication avec une transparence totale.