Antidowngrade Boot2 sur nouvelles CX bloque Ndless + Nlaunch
Posted: 26 Aug 2013, 02:06
Depuis des années, la communauté TI-Nspire oeuvre pour l'ouverture de cette plate-forme, c'est-à-dire pour que les utilisateurs puissent exploiter ce matériel au maximum de ses capacités.
For years, the TI-Nspire community has been working for the openness of the TI-Nspire, in order for its users to operate their calculators to their fullest potential.
Ainsi est né Ndless, un canevas permettant d'exécuter des programmes en langage machine prenant le contrôle total de la machine et notamment de ce que fait le processeur.
Voici quelques exemples de programmes compatibles Ndless:
Voici quelques exemples de programmes compatibles Ndless:
And so was born Ndless, a framework for running assembly programs taking full control of the hardware in particular of the processor.
Some examples of Ndless compatible programs:
Some examples of Ndless compatible programs:
- le jeu 3D FPS nDoom, portage de la série des jeux Doom/Doom2 et compatibles pour ordinateurthe nDoom 3D FPS game, a port of the Doom/Doom2 and compatible computer games
- l'émulateur de Nintendo NESthe Nintendo NES emulator
- l'émulateur de Nintendo GameBoy Colorthe Nintendo Game Boy Color emulator
- l'émulateur de Nintendo GameBoy Advancethe Nintendo Game Boy Advance emulator
- le lecteur d'images mViewerthe mViewer image reader
Ndless a existé en plusieurs versions, chacune spécifique à un petit nombre de systèmes TI-Nspire:
Ndless has existed in several versions, each one specific to a single or a small set of TI-Nspire systems:
[tableborder=1]
Version Ndless
Ndless version
Version système TI-Nspire
TI-Nspire system version
1.1 (prototypes non-CAS)
1.1 (non-CAS prototypes)
1.2 (prototypes CAS)
1.2 (CAS prototypes)
L'absence d'une version transversale de Ndless est due au fait que Ndless n'est pas un programme officiel, et que Texas Instruments le combat activement depuis le système 2.1.
En effet, pour s'installer Ndless exploite des failles du système TI-Nspire. Mais toute faille exploitée se voit alors rapidement ou corrigée ou bloquée par Texas Instruments dans la version suivante du système, ce qui force Ndless à toujours utiliser de nouvelles failles.
En effet, pour s'installer Ndless exploite des failles du système TI-Nspire. Mais toute faille exploitée se voit alors rapidement ou corrigée ou bloquée par Texas Instruments dans la version suivante du système, ce qui force Ndless à toujours utiliser de nouvelles failles.
The lack of an Ndless cross version is due to the fact that Ndless is not an officially supported program, and Texas Instruments has actively fought it since system 2.1.
Indeed, Ndless installation exploits some flaws in the TI-Nspire system. But any vulnerability exploited then quickly fixed or blocked by Texas Instruments in the next version of the system, forcing Ndless to always use new vulnerabilities.
Indeed, Ndless installation exploits some flaws in the TI-Nspire system. But any vulnerability exploited then quickly fixed or blocked by Texas Instruments in the next version of the system, forcing Ndless to always use new vulnerabilities.
Il suffit de ne pas mettre à jour son système TI-Nspire, penserez-vous?
Sauf que Texas Instruments incite à la mise à jour du système via nombre de popups automatisées.
De plus, les nouvelles TI-Nspire commercialisées finissent toujours par venir préchargées avec le dernier système - ce n'est donc pas une solution pour les nouveaux utilisateurs.
Sauf que Texas Instruments incite à la mise à jour du système via nombre de popups automatisées.
De plus, les nouvelles TI-Nspire commercialisées finissent toujours par venir préchargées avec le dernier système - ce n'est donc pas une solution pour les nouveaux utilisateurs.
Do you think you just don't have to update?
Except that Texas Instruments forces the update through various automated popups.
And eventually, all new TI-Nspire will come preloaded with the latest system - it is therefore not a solution for new users.
Except that Texas Instruments forces the update through various automated popups.
And eventually, all new TI-Nspire will come preloaded with the latest system - it is therefore not a solution for new users.
Il suffit de réinstaller une version antérieure du système, me direz-vous?
C'était en effet possible jusqu'en juillet 2010. A cette date-là, le dernier système 2.1 a activé une protection dormante, prévue dès la conception mais non utilisée jusque là, que nous avons appelée la "protection anti-downgrade du système".
Le système 2.1 ainsi que tous les systèmes ultérieurs depuis, inscrivent dans une zone mémoire non accessible à l'utilisateur et non réinitialisable par aucun menu officiel, une version minimale de système installable.
Tout système antérieur à cette version était systématiquement refusé.
C'était en effet possible jusqu'en juillet 2010. A cette date-là, le dernier système 2.1 a activé une protection dormante, prévue dès la conception mais non utilisée jusque là, que nous avons appelée la "protection anti-downgrade du système".
Le système 2.1 ainsi que tous les systèmes ultérieurs depuis, inscrivent dans une zone mémoire non accessible à l'utilisateur et non réinitialisable par aucun menu officiel, une version minimale de système installable.
Tout système antérieur à cette version était systématiquement refusé.
You'll tell me you just have to reinstall an earlier version of the system?
This was indeed possible until July 2010. At that date, the last 2.1 system has activated a protection which was there but disabled since the beginning, something we called the "system anti-downgrade protection".
System 2.1 and all subsequent systems are updating a minimal installable version number in a memory area not accessible to users and non clearable by any official menu.
Any previous version of the system is then rejected.
This was indeed possible until July 2010. At that date, the last 2.1 system has activated a protection which was there but disabled since the beginning, something we called the "system anti-downgrade protection".
System 2.1 and all subsequent systems are updating a minimal installable version number in a memory area not accessible to users and non clearable by any official menu.
Any previous version of the system is then rejected.
Consciente de ces problèmes, la communauté a réagi en sortant, parallèlement à Ndless, un autre petit programme, Nlaunch.
La TI-Nspire s'amorce en effet selon trois couches logicielles:
La TI-Nspire s'amorce en effet selon trois couches logicielles:
As a solution to those problems, the community did release another little tool, Nlaunch.
The TI-Nspire starts by running three pieces of software:
The TI-Nspire starts by running three pieces of software:
- Boot Code 1
- Boot Code 2
- système d'exploitationoperating system
Pour arriver au système d'exploitation, il y a donc deux barrières de sécurité à franchir.
So in order to get to the operating system, there are two safety barriers to be overcome.
Là où Ndless n'exploitait que des failles du système, Nlaunch va plus loin car s'attaquant directement au Boot Code 2, désintégrant ainsi l'une des deux barrières de sécurité.
Mais comme Ndless, Nlaunch est lui aussi spécifique à certaines versions du Boot2:
Mais comme Ndless, Nlaunch est lui aussi spécifique à certaines versions du Boot2:
Where Ndless did only exploit flaws od the system, Nlaunch goes further as directly addressing the Boot Code 2 and overcoming one of both security barriers.
But as Ndless, Nlaunch is also specific to certain versions of the Boot2:
But as Ndless, Nlaunch is also specific to certain versions of the Boot2:
[tableborder=1]
Version Nlaunch
Nlaunch version
Version Boot2 TI-Nspire
TI-Nspire Boot2 version
Nlaunch permet d'installer et lancer des systèmes d'exploitation en ignorant complètement la version minimale du système, et même de faire cohabiter un système récent avec un ancien système compatible Ndless.
Nlaunch is able to install and run operating systems completely ignoring the minimum version of the system, and even to make a recent system to coexist with an old Ndless compatible system.
Comme pour les systèmes d'exploitation, Texas Instruments a rapidement réagi en incluant une mise à jour du Boot2 TI-Nspire CX dans son dernier système d'exploitation 3.2.4.
Like with operating systems, Texas Instruments quickly responded by including a TI-Nspire CX Boot2 update in its latest 3.2.4 operating system.
La communauté TI-Nspire ne s'en était toutefois pas inquiétée et pensait enfin pouvoir être tranquille:
The TI-Nspire community wasn't worried about that:
- les utilisateurs actuels devaient simplement faire attention à ne pas mettre à jour leur Boot2 lors de la mise à jour de leur système, grâce au petit utilitaire TNOCcurrent TI-Nspire users should simply be careful not to update their Boot2 when updating their system, thanks to the small TNOC tool
- en cas d'omission de cette manipulation, il était possible de reprogrammer l'ancienne version du Boot2 à l'aide d'une interface TTL/USB dite RS232 peu coûteusein case of omission of this manipulation, it was still possible to reprogram the older Boot2 version using an inexpensive TTL/USB interface (RS232)
- et les nouveaux acheteurs de TI-Nspire CX préchargées avec les dernières versions pouvaient eux aussi appliquer cette dernière solutionand owners of new TI-Nspire CX could also apply this last solution
C'était sans compter sur la malice de l'équipe de développement de Texas Instruments...
Nous avons pu confirmer qu'en cas de mise à jour d'une TI-Nspire CX actuelle vers le nouveau Boot2 3.2.4, il était bel et bien possible de réinstaller l'ancien Boot2 3.1 compatible Nlaunch en RS232.
Mais nous n'avions pas testé sur les nouvelles TI-Nspire CX venant préchargées avec les versions 3.2.4 du système et du Boot2...
Et si le Boot2 3.1 se programme sans problème en RS232 sur ces machines, il est tout simplement incapable de s'exécuter correctement sur ces machines!
Nous avons pu confirmer qu'en cas de mise à jour d'une TI-Nspire CX actuelle vers le nouveau Boot2 3.2.4, il était bel et bien possible de réinstaller l'ancien Boot2 3.1 compatible Nlaunch en RS232.
Mais nous n'avions pas testé sur les nouvelles TI-Nspire CX venant préchargées avec les versions 3.2.4 du système et du Boot2...
Et si le Boot2 3.1 se programme sans problème en RS232 sur ces machines, il est tout simplement incapable de s'exécuter correctement sur ces machines!
This was without counting on the wickedness of the Texas Instruments development team...
We could confirm that when updating a current TI-Nspire CX to the new 3.2.4 Boot2, it was still possible to reinstall the old Nlaunch compatible 3.1 Boot2.
But we hadn't tested this on new TI-Nspire CX coming preloaded with versions 3.2.4 of the system and the Boot2 ...
And although Boot2 3.1 is flashed successfuly through RS232 on these units, it is simply unable to run properly!
We could confirm that when updating a current TI-Nspire CX to the new 3.2.4 Boot2, it was still possible to reinstall the old Nlaunch compatible 3.1 Boot2.
But we hadn't tested this on new TI-Nspire CX coming preloaded with versions 3.2.4 of the system and the Boot2 ...
And although Boot2 3.1 is flashed successfuly through RS232 on these units, it is simply unable to run properly!
Le Boot2 échoue sur une erreur non récupérable (System Error) et la console RS232 nous en apprend un peu plus avec le message "BOOT2 Error: posix_file_init() error".
Il s'agit d'une erreur concernant le système de fichiers. Mais ce dernier est bien évidemment toujours intact, puisque si l'on reprogramme maintenant le Boot2 3.2.4 d'origine, la TI-Nspire CX se remet à fonctionner normalement.
Texas Instruments a donc du changer quelque chose sur ces nouvelles TI-Nspire CX, quelque chose qui visiblement est géré correctement par le nouveau Boot2 3.2.4 mais pas par l'ancien Boot2 3.1.
A ce jour, nous ignorons exactement de quoi il s'agit, bien qu'ayant plusieurs pistes plausibles.
Texas Instruments nous a ainsi inventé une nouvelle protection antidowngrade, la "protection antidowngrade du Boot2". Mais se débrouiller pour faire planter une ancienne version au lieu d'avoir un message d'erreur clair ce n'est pas très classe, c'est même une manipulation assez sale - on nous avait habitué à mieux jusqu'à présent.
Il s'agit d'une erreur concernant le système de fichiers. Mais ce dernier est bien évidemment toujours intact, puisque si l'on reprogramme maintenant le Boot2 3.2.4 d'origine, la TI-Nspire CX se remet à fonctionner normalement.
Texas Instruments a donc du changer quelque chose sur ces nouvelles TI-Nspire CX, quelque chose qui visiblement est géré correctement par le nouveau Boot2 3.2.4 mais pas par l'ancien Boot2 3.1.
A ce jour, nous ignorons exactement de quoi il s'agit, bien qu'ayant plusieurs pistes plausibles.
Texas Instruments nous a ainsi inventé une nouvelle protection antidowngrade, la "protection antidowngrade du Boot2". Mais se débrouiller pour faire planter une ancienne version au lieu d'avoir un message d'erreur clair ce n'est pas très classe, c'est même une manipulation assez sale - on nous avait habitué à mieux jusqu'à présent.
The boot2 fails on a non-recoverable error (System Error) and the RS232 console tells us a little more with the "BOOT2 Error: posix_file_init() error".
It's an error that has to do with the file system. But it's obviously still intact, as when flashing back the original 3.2.4 Boot2 the TI-Nspire CX boots successfuly.
So, Texas Instruments did probably change something on the new TI-Nspire CX, something that is managed properly by the new 3.2.4 Boot2 but not the old 3.1 Boot2.
Up to date, we do not know exactly what it is
So basically, Texas Instruments just invented us a new antidowngrade protection, "Boot2 antidowngrade protection". But managing to make its own older version of the code crash instead of giving you a clear and related error message is not very clean from my point of view - it just looks like a dirty hack - we were used to much cleaner protections so far...
It's an error that has to do with the file system. But it's obviously still intact, as when flashing back the original 3.2.4 Boot2 the TI-Nspire CX boots successfuly.
So, Texas Instruments did probably change something on the new TI-Nspire CX, something that is managed properly by the new 3.2.4 Boot2 but not the old 3.1 Boot2.
Up to date, we do not know exactly what it is
So basically, Texas Instruments just invented us a new antidowngrade protection, "Boot2 antidowngrade protection". But managing to make its own older version of the code crash instead of giving you a clear and related error message is not very clean from my point of view - it just looks like a dirty hack - we were used to much cleaner protections so far...
Les nouvelles TI-Nspire CX commercialisées à partir de maintenant sont donc entièrement fermées, avec aucun moyen connu d'y installer Ndless ou Nlaunch à ce jour.
Si vous souhaitiez pouvoir utiliser Ndless ou Nlaunch, nous vous conseillons de renoncer à un tel achat en neuf, et à vous tourner plutôt vers le marché de l'occasion.
En effet, au dos des TI-Nspire CX, à droite de leur numéro de série se trouve ce que l'on appelle le datestamp, un code à 7 caractères.
Les nouvelles TI-Nspire CX bloquant le Boot2 3.1 qui nous ont été signalées à ce jour disposent du datestamp 'P-0313J'.
Cela signifie qu'elles ont été fabriquées dans l'usine TI de code P (Chine), en mars 2013, et qu'elles incluent la révision matérielle J (soit la 11ème version) de la carte mère.
Contrairement au marché du neuf, sur le marché de l'occasion vous serez donc capables de demander au vendeur le datestamp de sa calculatrice, et de n'acheter que des TI-Nspire CX dont le datestamp se termine par une lettre A à I.
Si vous souhaitiez pouvoir utiliser Ndless ou Nlaunch, nous vous conseillons de renoncer à un tel achat en neuf, et à vous tourner plutôt vers le marché de l'occasion.
En effet, au dos des TI-Nspire CX, à droite de leur numéro de série se trouve ce que l'on appelle le datestamp, un code à 7 caractères.
Les nouvelles TI-Nspire CX bloquant le Boot2 3.1 qui nous ont été signalées à ce jour disposent du datestamp 'P-0313J'.
Cela signifie qu'elles ont été fabriquées dans l'usine TI de code P (Chine), en mars 2013, et qu'elles incluent la révision matérielle J (soit la 11ème version) de la carte mère.
Contrairement au marché du neuf, sur le marché de l'occasion vous serez donc capables de demander au vendeur le datestamp de sa calculatrice, et de n'acheter que des TI-Nspire CX dont le datestamp se termine par une lettre A à I.
In conclusion, the new TI-Nspire CX sold from now on are completely closed, with no known way to install Ndless or Nlaunch up to date.
If you want to use Ndless or Nlaunch, we'd advise you to give up on purchasing a brand new TI-Nspire CX and to look for it on the second-hand market.
In fact on the back of the TI-Nspire CX, on the right of the serial number, is what is called the datestamp, a 7-character code.
The new TI-Nspire CX crashing Boot2 3.1 which have been reported to us up to date have the datestamp 'P-0313J'.
This means that they were manufactured in the TI factory code P (China) in March 2013, and that they include the hardware revision J (11th version) of the motherboard.
On the second hand market you'll be able to ask the seller the datestamp of the calculator, and to buy only TI-Nspire CX whose datestamp ends with a letter from A to I.
If you want to use Ndless or Nlaunch, we'd advise you to give up on purchasing a brand new TI-Nspire CX and to look for it on the second-hand market.
In fact on the back of the TI-Nspire CX, on the right of the serial number, is what is called the datestamp, a 7-character code.
The new TI-Nspire CX crashing Boot2 3.1 which have been reported to us up to date have the datestamp 'P-0313J'.
This means that they were manufactured in the TI factory code P (China) in March 2013, and that they include the hardware revision J (11th version) of the motherboard.
On the second hand market you'll be able to ask the seller the datestamp of the calculator, and to buy only TI-Nspire CX whose datestamp ends with a letter from A to I.
C'est donc un triste jour pour la communauté. Pour la troisième fois, Ndless et tous ses programmes compatibles ont été frappés à mort, et encore plus fort que les fois précédentes. Sauront-t-ils encore se relever cette fois-ci?...
This is a sad day for the community. For the third time, Ndless and all its compatible programs have been beaten to death, and even stronger than the previous times. Will they be able to survive this time? ...