Page 1 of 1

1ère reprogrammation du Boot1 d'une TI-Nspire de production

Unread postPosted: 18 Dec 2012, 22:50
by critor
Dans une news précédente, nous avions vu que suite à une petite différence de brochage, la puce Flash NOR des prototypes TI-Nspire ClickPad était reprogrammable.
Image


Cette possibilité de reprogrammer le Boot1 nous avait par la suite permis de transformer ces prototypes TI-Nspire ClickPad en modèles de production complètement utilisables! :bj:



Dans une news précédente, une source anonyme nous avait publié des informations sur une modification matérielle des TI-Nspire ClickPad de production, qui permettrait de rendre la puce Flash NOR reprogrammable exactement comme sur les prototypes.
Image


Nous n'avons pu obtenir aucune information supplémentaire sur la fonctionnalité de la chose, alors le mieux était de tenter nous-même pour vérifier:
Image

Le montage nécessite effectivement un interrupteur inverseur pour basculer entre l'état d'origine et modifié de la calculatrice. En effet, dans l'état modifié la calculatrice ne démarre pas, ce qui semble indiquer qu'il y aurait d'autres différences matérielles avec les prototypes puisque eux sont capables de démarrer dans cet état.


Une fois la calculatrice démarrée, il suffit donc de basculer l'interrupteur juste avant de lancer la reprogrammation du Boot1.

Modifions donc un Boot1 1.1.8916 en changeant sa chaîne de version en 1.1.9999 et tentons de le programmer...
Image


Bingo, ça a marché. :#fou#:



Puisque l'on peut désormais modifier le Boot1 absolument comme on veut, il devient possible de programmer n'importe quoi comme Boot2, logiciel de diagnostics ou même OS.

Les possibilités sont tout bonnement énormes! :bj:
Rappelons que le Boot1 lance au démarrage soit le Boot2, soit le logiciel de diagnostics. Ces deux modules utilisent le même format en mémoire et sont donc entièrement interchangeables, la seule contrainte étant la taille (la zone de diagnostics est limitée à 640Ko, mais le code inclus peut être compressé).

On pourrait avoir nos propres logiciels de diagnostics/dépannage/maintenance, avec des possibilités supérieures...

Ou encore l'installation permanente de Linux via la programmation d'un loader...

Ou même un véritable dual-Boot, permettant de lancer deux OS différent... par exemple pour alternet entre l'OS Nspire et Linux... ou encore pour alterner entre le lancement de l'OS 3.1 (pour Ndless) et de l'OS 3.2 (pour les nouvelles applications Lua) sans avoir à se taper sans arrêt des réinstallations d'OS selon les besoins.



Bref, les possibilités défient l'imagination. :bj:



A tempérer par un gros bémol: on parle ici des TI-Nspire ClickPad commercialisées jusqu'en 2009-2010, qui disposent d'une puce Flash NOR externe.

A partir de 2010-2011, les TI-Nspire TouchPad puis CX et CM ont vu leur puce Flash-NOR transférée à l'intérieur de la puce ASIC.

Cette Flash-NOR interne inconnue est très probablement protégée contre l'écriture si TI a bien fait les choses, et une modification similaire nécessiterait de décapsuler la puce ASIC sans la détruire pour ensuite modifier sous microscope... Clairement mission impossible donc.

In a previous news, we saw that a small broaching difference around the NOR Flash chip in TI-Nspire ClickPad prototypes was making the chip writeable.
Image


This ability to reprogram the Boot1 had then helped us transforming TI-Nspire ClickPad prototypes into fully functionnal production TI-Nspire.



In a previous news, an anonymous source had published information about a hardware mod for production TI-Nspire ClickPad, which would make the Flash NOR chip writeable like on prototypes.
Image


We were unable to obtain any further information, so it was best to try ourselves to check:
Image

The installation does require a switch to toggle between the original and modified states of the calculator. Indeed, in the modified state the calculator does not boot, which suggests that there are other hardware differences with the prototypes since those are able to boot in this state.


Once the OS has started, you just have to flip the switch before launching the NOR flasher.

Let's try to reprogram a 1.1.8916 Boot1, with its version string modified to 1.1.9999...
Image



Success!



Since you can now modify the Boot1 exactly as you want, it becomes possible to program anything as Boot2 and diagnostics software, or even as OS.

The possibilities are simply huge! : Bj:
Note that the Boot1 does launch either the Boot2, either the diagnostic software. Both use the same format in memory and are fully interchangeable, the only constraint being the size (the diags area is limited to 640KB, but the code can be compressed).

We could have our own software diagnostics / troubleshooting / maintenance, with more and greater options than the official one...

Or permanently install Linux by programming a loader as a Boot2 or Diags...

Or even have a true dual-boot, to run two different OS ... for example to switch between the Nspire OS and Linux... or to switch between OS 3.1 (for Ndless) and OS 3.2 (for new Lua apps)... No need for a computer or another calculator anymore to constantly install the currently needed OS every 2 days!

And much more... ;)



But don't be too excited: we are talking about TI-Nspire ClickPad sold until 2009-2010, which had an external Flash-NOR chip.

From 2010-2011, TI-Nspire TouchPad, CX and CM had their Flash-NOR chip moved inside the ASIC.

This internal Flash-NOR internal is unknown and probably write-protected. A similar change would require to uncap the ASIC chip without destroying it and then modify it under a microscope... Let's say it more simply: it's impossible.


Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 13:23
by Persalteas
Hoho, voilà qui est intéressant !

Il y a tout de même une chose qui m'étonne: Tu dis que celà ouvrirait les portes a la programmation de nouveaux OS; il me semblait que les OS étaient cryptés avec des clefs RSA, non ? Et la clef RSA Nspire n'est pas décryptée ?

Parce qu'effectivement, un KnightOS-Nspire ou un linux définitif seraient intéressants. Mais je pensais que pour faire un OS, il fallait la clé RSA.

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 18:07
by Excale
Pour faire simple, le boot1 vérifie la signature RSA du boot2, qui vérifie la signature RSA de l'OS...

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 18:23
by Persalteas
Ah. Et c'est possible de créer un boot1 qui lancerait un OS sans clé RSA, c'est ça ? okay, thanks.

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 18:53
by Lionel Debroux
Et c'est possible de créer un boot1 qui lancerait un OS sans clé RSA, c'est ça ?

C'est ça :)
Mais il y a encore mieux à faire: un boot1 qui valide le boot2 signé avec une clé qui n'est pas celle de TI, et un boot2 qui valide les OS signés avec une clé qui n'est pas celle de TI.
Ca donnerait une machine qui refuse d'être mise à jour avec le boot2 et donc les OS officiels - bref, en conditions d'examen, s'il y a reflashage dans la salle d'examen, une brique plutôt qu'une machine qui obéit aux limitations (ce qui pose alors la question de l'équité de l'examen).
TI a fondamentalement perdu le contrôle des Clickpad.

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 18:55
by Persalteas
Hum, je vois déjà venir chaque codeur pour Nspire créant son OS avec sa clé RSA personnelle ;)

On en est pas encore là, coder un OS entier en Asm ARM ne sera jamais fait, j'imagine, rien qu'a voir comment on galère avec KnightOS.

Le projet d'installer Linux en dual boot est plus prometteur par contre.

Bien, je fais comme tout le monde alors, j'attends avec mes yeux écarquillés :)

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 19 Dec 2012, 19:33
by Lionel Debroux
Le projet d'installer Linux en dual boot est plus prometteur par contre.

Voilà. Le codage d'un OS entier en ASM ne se fait que sur des plate-formes où on ne peut pas utiliser de l'existant, standard et ultra-portable, comme Linux.

Re: 1ère reprogrammation du Boot1 d'une TI-Nspire de product

Unread postPosted: 20 Dec 2012, 05:21
by Levak
persalteas wrote:On en est pas encore là, coder un OS entier en Asm ARM ne sera jamais fait, j'imagine, rien qu'a voir comment on galère avec KnightOS.


La vérification du CAS et non CAS est aussi 'comme par hasard' dans le boot (dupliqué dans l'OS mais c'est pour cacher la misère).
Inutile de nier que oui, on peut faire tourner un OS CAS sur une non CAS à partir de ce moment là.