π
<-
Chat plein-écran
[^]

Possibilités et limites du downgrade sur TI-Nspire CX HW-J+

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Possibilités et limites du downgrade sur TI-Nspire CX HW-J+

Message non lude critor » 17 Mar 2014, 00:50

Pour la rentrée 2013, nous découvrions l'existence des nouvelles TI-Nspire CX de révision matérielle J, et depuis des révisions matérielles K et L.

Ces nouvelles calculatrices venaient avec la version 3.2.4 du Boot2 non exploitable par nLaunchy, le lanceur d'OS (Operating System = système d'exploitation) tiers qui permettait en autres d'installer une version d'OS antérieure au numéro minimal de version d'OS autorisé, conservé lui dans une zone spécifique de la mémoire NAND.
Si à l'aide d'une interface USB/TTL l'on forçait la reprogrammation de la version 3.1 du Boot2 compatible nLaunchy, cette dernière ne fonctionnait pas correctement et bloquait systématiquement sur une erreur d'accès au système de fichiers.

Il était donc sur les TI-Nspire CX HW-J+:
  • impossible d'utiser le Boot2 3.1
  • par conséquent impossible d'installer nLaunchy
  • donc impossible d'installer un OS antérieur à la version minimale autorisée (réglée à 3.2.4 ou 3.6 selon le contexte)
  • et ainsi impossible d'installer Ndless 3.1 qui nécessitait l'OS 3.1, Ndless étant le jailbreak permettant d'utiliser des applications non officielles nécessitant un accès total au matériel et à toute sa puissance

Ce week-end sont sortis conjointement Ndless 3.6 et nLaunchy 2.4.
Il devient donc désormais possible de profiter de Ndless sur les TI-Nspire CX HW-J+ ! :bj:
Par contre, nLaunchy lui reste inutilisable puisque nécessitant toujours le Boot2 3.1 incompatible avec ces machines.

Ce soir, nous n'allons nullement résoudre ce problème, mais chercher à comprendre un peu mieux ce que TI a conçu au niveau de la révision matérielle J afin de bloquer le Boot2 3.1.
Pour cela, nous allons tenter de 'downgrader' une TI-Nspire CX HW-J, c'est-à-dire de lui installer des versions d'OS plus anciennes.
C'est certes quelque chose de strictement sans aucun intérêt, puisque l'OS 3.6 a désormais tous les avantages avec Ndless - mais c'est nécessaire dans le contexte de cet article, curiosité scientifique oblige. ;)

Certes, nous n'avons pas nLaunchy. Mais nous avons le nouvel nsNandMgr v2.0 pour Ndless 3.6, utilitaire de reprogrammation de la mémoire NAND permettant entre autres de réinitialiser la version minimale d'OS installable à 0.0.0.0.

Et en effet, ça marche! Une fois cette version minimale réinitialisée, nous pouvons effectivement installer les anciens OS suivants:
  • 3.3
  • 3.2.4
Mais rien d'étonnant à ce que ça marche jusque là, puisque les premières TI-Nspire CX HW-J+ venaient d'origine avec l'OS 3.2.4.

Par contre, bizarrement, la réception des OS 3.2.3 ou antérieurs est refusée par l'OS 3.6 en fin de transfert, alors que le numéro de version minimale réinitialisé à 0.0.0.0 n'est plus bloquant. :o
Oui, c'est tout simplement que TI a rajouté une protection supplémentaire dans l'OS 3.6 (une de plus) qui doit vérifier l'OS reçu. Peu importe, il nous suffit de supprimer complètement l'OS 3.6 via le menu de maintenance pour confier l'installation d'OS au Boot2.

Après réinitialisation de la version minimale puis suppression de l'OS 3.6, nous pouvons effectivement installer l'OS 3.2.3 et il marche ! :bj:

Par contre, les versions 3.2.0.1212 et 3.2.0.1219 ne fonctionnement pas une fois installées, se contentant de faire redémarrer indéfiniment la calculatrice. :(



35753576Nous aurions pu nous arrêter là, mais allons quand même tenter une installation de l'OS 3.1 et oh... comme c'est étrange... il fonctionne à moitié. :o
Contrairement aux OS 3.2.0 il ne fait pas redémarrer la calculatrice en boucle et se lance, mais est visiblement incapable d'afficher correctement aucune icône ou chaîne de caractères, disant qu'il ne trouve pas ses ressources.

Et c'est là que nous commençons à comprendre ce que TI a fabriqué... ;)
Si l'OS 3.1 ne trouve pas ses fichiers de ressources contenant les icônes et chaînes de caractères, c'est qu'il n'arrive pas à accéder au système de fichiers contenu en mémoire NAND.

TI a donc probablement bloqué l'accès en lecture de la mémoire NAND aux versions 3.2.0 et antérieures sur HW-J+, en changeant par exemple un port matériel.

Et certains d'entre vous m'objecteront que si l'OS a quand même réussi à se lancer, c'est que son code stocké dans cette même mémoire a pu être lu.
Certes - sauf que c'est le Boot2 qui s'occupe de charger le code de l'OS de la mémoire de stockage NAND vers la mémoire vive SDRAM. Et le Boot2 étant lui en version 3.2.4=3.2.3, il connaît la nouvelle méthode d'accès à la mémoire NAND HW-J+.

Pour finir, nous remarquerons que l'accès en écriture à la mémoire NAND a probablement été bloqué lui aussi sur HW-J+ pour les versions 3.2.0 et antérieures, puisque la calculatrice dans l'état précédent nous rapporte des inepties sur le système de fichiers, avec des tailles nulles ou même négatives, impliquant entre autres que tout tentative d'écriture échouera.
Image




En conclusion, après six mois nous avons enfin résolu le mystère. Vous pouvez donc downgrader votre TI-Nspire CX HW-J+ jusqu'à l'OS 3.2.3. :D
(notons qu'il a existé une version 3.2.2 venant préchargée sur certaines TI-Nspire CX mais dont je n'ai hélas aucune copie - nous parlerons donc par défaut d'une compatibilité HW-J+ à partir de la version 3.2.3)

Toutes les versions 3.2.0 et antérieures, que ce soit d'OS ou de Boot2, sont incompatibles suite à une altération matérielle des procédures d'entrée-sortie en mémoire NAND que seules les versions 3.2.3 et ultérieures connaissent et effectuent correctement. :(

Or, l'OS 3.2.3 a été compilé le 3 octobre 2012 et les premières TI-Nspire CX HW-J ont été signalées pour la rentrée 2013, soit 10 mois après...
nLaunch étant sorti en janvier 2013, cela voudrait dire en fait que ce que l'on a pris comme une répression suite à nLaunch était prévu depuis avant même sa sortie...
Avec ces derniers éléments, nous pouvons déduire que l'arrivée du matériel HW-J quelques mois après la version CX de nLaunch le 1er avril 2013 n'étaient donc qu'une simple coincidence.
A l'éclairage de ces nouveaux éléments, la sortie de nLaunch n'aurait donc rien changé et le HW-J aurait été initialement prévu en tant qu'attaque contre Ndless.




Téléchargement :
nsNandMgr v2.0

Lien :
Tutoriel pour downgrader à partir de l'OS 3.6
For back to school 2013, we discovered the existence of the new TI-Nspire CX hardware revision J, and since then hardware revisions K and L.

These new calculators come with the 3.2.4 version of the Boot2 which is not exploitable by nLaunchy, the third party OS launcher (OS = operating system) that allowed to install a version of prior to the minimum installable version number set in a specific area of the NAND memory.
Even if the 3.1 version of the nLaunchy compatible Boot2 was flashed using an USB / TTL interface, it did not work properly, aborting on a file system access error in the RS232 log.

Therefore on TI-Nspire CX HW-J+ it was:
  • impossible to use Boot2 3.1
  • therefore impossible to install nLaunchy
  • impossible to install an earlier OS than the minimum authorized version (set to 3.2.4 or 3.6 depending on the context)
  • and thus impossible to install Ndless 3.1 that required OS 3.1, Ndless being the jailbreak letting you use unofficial applications that require full access to the hardware and its power

This weekend were released together Ndless 3.6 and nLaunchy 2.4.
It becomes now possible to enjoy Ndless on TI-Nspire CX HW-J+ ! :bj:
But nLaunchy remains unusable as still relying on the Boot2 3.1 incompatible with these calculators.

Tonight, we're not going to solve the problem in any way, but we'll try to understand a little better what TI has designed in hardware revision J to block Boot2 3.1.
To do this, we will try to 'downgrade' a TI-Nspire CX HW-J, by installing older versions of the OS.
This is certainly something useless, since OS 3.6 now has all the benefits with Ndless - but it is necessary in the context of this article, out of scientific curiosity. ;)

Ok we don't have nLaunchy. But we have the new nsNandMgr v2.0 for Ndless 3.6, the utility to reprogram the NAND memory which lets you for example reset the minimum installable OS version to 0.0.0.0.

And indeed, it works! Once this minimum version is reset, we can actually install the old OS following :
  • 3.3
  • 3.2.4
But it's not surprising that it works so far, since the first TI-Nspire CX HW-J+ originally came with OS 3.2.4.

Oddly, receiving OS 3.2.3 or earlier is denied by the OS 3.6 at the end of transfer, although the minimum version number reset to 0.0.0.0 is not a problem anymore. :o
It's just that TI has added an additional protection in OS 3.6 (one more) which must check the received OS before installing it. Regardless, you just need to completely remove the OS 3.6 via the maintenance menu to entrust the OS installation to the Boot2.

After resetting the minimum version and deleting OS 3.6, we can actually install the 3.2.3 OS and it works! :bj:

However, versions 3.2.0.1212 and 3.2.0.1219 do not work once installed, putting the calculator in a restart loop. :(



3575 3576We could have stopped with this, but we still attempted an installation of OS 3.1 and oh... how strange... it works half. :o
Unlike OS 3.2.0 it does not put the calculator in a restart loop and starts, but it's obviously unable to display any icon or string correctly, saying it cannot find its resources.

And this is where we begin to understand what TI has done... ;)
If OS 3.1 doesn't find its resource files containing icons and strings, it's that it just cannot access the filesystem content included in NAND memory.

TI has probably blocked read access to the NAND for 3.2.0 and earlier versions on HW-J+, by changing a hardware port for example.

And some of you will are going to object to me that if the OS has still managed to launch its code which is stored in the same memory, it's that it could be read...
True - except that it is the Boot2 that handles loading the OS code from the NAND storage memory to the SDRAM. And as it is Boot2 version 3.2.4≥3.2.3, it knows the new HW-J+ NAND memory access method.

Finally, we notice that the write access to the NAND memory was probably blocked also on HW-J+ for versions 3.2.0 and earlier, as the calculator in the previous state reports us nonsense about the filesystem, with null or even negative sizes, implying among other things that any attempt to write anything is going to fail.
Image




Finally, after six months we have finally solved the mystery. You can downgrade your TI-Nspire CX HW-J+ down to OS 3.2.3. :D
(note that there has existed a version 3.2.2 coming preloaded on some TI-Nspire CX but I have unfortunately no copy - so by default we'll assume HW-J+ compatibility starts with version 3.2.3)

All 3.2.0 and earlier versions of the OS and Boot2 are incompatible with TI-Nspire CX HW-J+ due to an alteration of the NAND memory access way that only 3.2.3 and later know how to perform correctly. :(




Download :
nsNandMgr v2.0

Link :
Tutorial to downgrade from OS 3.6
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Possibilités et limites du downgrade sur TI-Nspire CX HW

Message non lude Lionel Debroux » 17 Mar 2014, 09:09

Intéressant :)

Même si c'était un changement de production imposé de l'extérieur (par exemple, changement de prix ou arrêt de production chez les fabricants externes de chips), ça resterait de toute façon une attaque contre Ndless...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Possibilités et limites du downgrade sur TI-Nspire CX HW

Message non lude critor » 17 Mar 2014, 12:50

Ah, selon toi ce n'était donc pas une attaque contre Ndless ?


J'ai du mal à voir comme une puce NAND de mêmes spécifications, packaging et pinout pourrait nécessiter du matériel différent.
L'ID de puce NAND que l'on obtient dans la console RS232 est d'ailleurs le même ID générique qu'avant.

Mais je ne suis pas du tout électronicien et lirai donc les réponses avec une grande attention. ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Possibilités et limites du downgrade sur TI-Nspire CX HW

Message non lude Lionel Debroux » 17 Mar 2014, 13:19

Ah, selon toi ce n'était donc pas une attaque contre Ndless ?

Dans tous les cas, si, directement ou indirectement :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Possibilités et limites du downgrade sur TI-Nspire CX HW

Message non lude critor » 18 Mar 2014, 12:24

J'ai créé et lié le tutoriel de downgrade en fin de news:
viewtopic.php?f=57&t=14102&p=159298#p159298
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.1%
 
Messages: 41492
Images: 14556
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


Retourner vers News TI-Nspire

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 34 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1140 utilisateurs:
>1109 invités
>26 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)