Page 1 of 1

La combinaison d'effacement de l'OS des CAS+ enfin comprise

Unread postPosted: 14 May 2012, 06:17
by critor
Les TI-Nspire CAS+ font partie des prototypes Nspire évalués en 2006-2007 dans certaines classes pilote avant le lancement de la TI-Nspire finale en avril 2007, et utilisant un OS 1.0.

Basées sur le matériel du TI-Phoenix 1, elles sont incompatibles avec les TI-Nspire malgré la ressemblance apparente.

N'arrivant pas à les mettre à jour avec les OS Nspire 1.1 et ultérieurs, certains ont tenté l'équivalent de la combinaison de maintenance des TI-Nspire pensant obtenir un menu similaire et quelques options qui pourraient les aider, combinaison qui donne sur le clavier des TI-Nspire CAS+ :nsmep: :nsen: :nsp: .

Ils ont alors assisté sous leurs yeux horrifiés à l'effacement pur et simple de leur OS sans aucune autre forme de confirmation! :mj:
798


Et comme Texas Instruments n'a jamais diffusé publiquement les OS CAS+ ils se sont immédiatement retrouvés avec une calculatrice totalement inutilisable et irréparable! :mj:
797


Il leur a fallu attendre 5 à 6 longues années, pour que l'équipe TI-Planet résolve enfin le problème par elle-même il y a à peine plus d'une semaine! ;)



Intéressons-nous aujourd'hui à cette combinaison maudite d'effacement de l'OS sur les TI-Nspire CAS+. Son seul but est-il d'effacer l'OS? Ou cache-t-elle autre chose?

Voyons déjà ce qui est diffusé sur la console série RS232 lorsque cette combinaison longtemps mortelle est déclenchée:

Code: Select all
Boot Loader Stage 1 (1.0.526)
Build: 2006/8/11, 6:25:18
Copyright (c) 2006 Texas Instruments Incorporated
Using production keys

Last boot progress: 10546

System clock: 78 MHZ
SDRAM memory test: Pass
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Checking for NAND: NAND Flash ID: ST Micro NAND256W3A

-- Bad Block list --
0x00058000 (22)
0x001F0000 (124)
-- Bad Block list end --

Loading DIAGS software...

Error reading/validating DIAGS image

Loading BOOT2 software...

99%
BOOT1: loading complete (924 ticks), launching image.



Boot Loader Stage 2 (1.0.526)
Build: 2006/8/11, 6:29:51
Copyright (c) 2006 Texas Instruments Incorporated
Using production keys



Initializing graphics subsystem.
Checking for NAND: NAND Flash ID: ST Micro NAND256W3A
Initializing USB and networking.


Initializing filesystem.
Datalight Reliance v2.00.0451
Copyright (c) 2003 - 2005 Datalight, Inc.
Registered to #9DE08703
FlashFX sample project for the OMAP5912 OSK running Nucleus
Datalight FlashFX Pro v2.0 Build 966
Nucleus Edition for ARM9
Copyright (c) 1993-2005 Datalight, Inc.
Patents: US#5860082, US#6260156.
Detected FfxDelay() parameters: Count=58776 MicroSec=8192 Shift=13
FFX: NAND chip manufacturer: ST Micro (20) chip NAND256W3A (75)
Filesystem ready.

-- Bad Block list --
0x00058000 (22)
0x001F0000 (124)
-- Bad Block list end --
Keypad request, deleting current OS to force upgrade.
Checking battery level.
Battery level is OK.

Loading Operating System...

Error loading OS image. Removing OS remnants.
Deleting file [/phoenix/install/manifest_img]
Deleting file [/phoenix/components]
Deleting file [/phoenix/policy.dat]
Deleting file [/phoenix/manuf.dat]
Removing directory [/phoenix/install/]
Deleting file [/phoenix/ctlg/locales/da/strings.res]
Removing directory [/phoenix/ctlg/locales/da/]
Deleting file [/phoenix/ctlg/locales/de/strings.res]
Removing directory [/phoenix/ctlg/locales/de/]
Deleting file [/phoenix/ctlg/locales/en/2dtemplates.res]
Deleting file [/phoenix/ctlg/locales/en/all.res]
Deleting file [/phoenix/ctlg/locales/en/math.res]
Deleting file [/phoenix/ctlg/locales/en/strings.res]
Deleting file [/phoenix/ctlg/locales/en/units.res]
Removing directory [/phoenix/ctlg/locales/en/]
Deleting file [/phoenix/ctlg/locales/fr/strings.res]
Removing directory [/phoenix/ctlg/locales/fr/]
Deleting file [/phoenix/ctlg/locales/it/strings.res]
Removing directory [/phoenix/ctlg/locales/it/]
Deleting file [/phoenix/ctlg/locales/no/strings.res]
Removing directory [/phoenix/ctlg/locales/no/]
Removing directory [/phoenix/ctlg/locales/]
Removing directory [/phoenix/ctlg/]
Deleting file [/phoenix/dcol/locales/da/strings.res]
Removing directory [/phoenix/dcol/locales/da/]
Deleting file [/phoenix/dcol/locales/de/strings.res]
Removing directory [/phoenix/dcol/locales/de/]
Deleting file [/phoenix/dcol/locales/en/icons.res]
Deleting file [/phoenix/dcol/locales/en/strings.res]
Removing directory [/phoenix/dcol/locales/en/]
Deleting file [/phoenix/dcol/locales/fr/strings.res]
Removing directory [/phoenix/dcol/locales/fr/]
Deleting file [/phoenix/dcol/locales/it/strings.res]
Removing directory [/phoenix/dcol/locales/it/]
Deleting file [/phoenix/dcol/locales/no/strings.res]
Removing directory [/phoenix/dcol/locales/no/]
Removing directory [/phoenix/dcol/locales/]
Removing directory [/phoenix/dcol/]
Deleting file [/phoenix/dlog/locales/da/strings.res]
Removing directory [/phoenix/dlog/locales/da/]
Deleting file [/phoenix/dlog/locales/de/strings.res]
Removing directory [/phoenix/dlog/locales/de/]
Deleting file [/phoenix/dlog/locales/en/strings.res]
Removing directory [/phoenix/dlog/locales/en/]
Deleting file [/phoenix/dlog/locales/fr/strings.res]
Removing directory [/phoenix/dlog/locales/fr/]
Deleting file [/phoenix/dlog/locales/it/strings.res]
Removing directory [/phoenix/dlog/locales/it/]
Deleting file [/phoenix/dlog/locales/no/strings.res]
Removing directory [/phoenix/dlog/locales/no/]
Removing directory [/phoenix/dlog/locales/]
Removing directory [/phoenix/dlog/]
Deleting file [/phoenix/geog/locales/da/strings.res]
Removing directory [/phoenix/geog/locales/da/]
Deleting file [/phoenix/geog/locales/de/strings.res]
Removing directory [/phoenix/geog/locales/de/]
Deleting file [/phoenix/geog/locales/en/icons.res]
Deleting file [/phoenix/geog/locales/en/strings.res]
Removing directory [/phoenix/geog/locales/en/]
Deleting file [/phoenix/geog/locales/fr/strings.res]
Removing directory [/phoenix/geog/locales/fr/]
Deleting file [/phoenix/geog/locales/it/strings.res]
Removing directory [/phoenix/geog/locales/it/]
Deleting file [/phoenix/geog/locales/no/strings.res]
Removing directory [/phoenix/geog/locales/no/]
Removing directory [/phoenix/geog/locales/]
Removing directory [/phoenix/geog/]
Deleting file [/phoenix/math/locales/da/strings.res]
Removing directory [/phoenix/math/locales/da/]
Deleting file [/phoenix/math/locales/de/strings.res]
Removing directory [/phoenix/math/locales/de/]
Deleting file [/phoenix/math/locales/en/strings.res]
Removing directory [/phoenix/math/locales/en/]
Deleting file [/phoenix/math/locales/fr/strings.res]
Removing directory [/phoenix/math/locales/fr/]
Deleting file [/phoenix/math/locales/it/strings.res]
Removing directory [/phoenix/math/locales/it/]
Deleting file [/phoenix/math/locales/no/strings.res]
Removing directory [/phoenix/math/locales/no/]
Removing directory [/phoenix/math/locales/]
Removing directory [/phoenix/math/]
Deleting file [/phoenix/ntpd/locales/da/strings.res]
Removing directory [/phoenix/ntpd/locales/da/]
Deleting file [/phoenix/ntpd/locales/de/strings.res]
Removing directory [/phoenix/ntpd/locales/de/]
Deleting file [/phoenix/ntpd/locales/en/icons.res]
Deleting file [/phoenix/ntpd/locales/en/strings.res]
Removing directory [/phoenix/ntpd/locales/en/]
Deleting file [/phoenix/ntpd/locales/fr/strings.res]
Removing directory [/phoenix/ntpd/locales/fr/]
Deleting file [/phoenix/ntpd/locales/it/strings.res]
Removing directory [/phoenix/ntpd/locales/it/]
Deleting file [/phoenix/ntpd/locales/no/strings.res]
Removing directory [/phoenix/ntpd/locales/no/]
Removing directory [/phoenix/ntpd/locales/]
Removing directory [/phoenix/ntpd/]
Deleting file [/phoenix/scpd/locales/da/strings.res]
Removing directory [/phoenix/scpd/locales/da/]
Deleting file [/phoenix/scpd/locales/de/strings.res]
Removing directory [/phoenix/scpd/locales/de/]
Deleting file [/phoenix/scpd/locales/en/icons.res]
Deleting file [/phoenix/scpd/locales/en/strings.res]
Removing directory [/phoenix/scpd/locales/en/]
Deleting file [/phoenix/scpd/locales/fr/strings.res]
Removing directory [/phoenix/scpd/locales/fr/]
Deleting file [/phoenix/scpd/locales/it/strings.res]
Removing directory [/phoenix/scpd/locales/it/]
Deleting file [/phoenix/scpd/locales/no/strings.res]
Removing directory [/phoenix/scpd/locales/no/]
Removing directory [/phoenix/scpd/locales/]
Removing directory [/phoenix/scpd/]
Deleting file [/phoenix/syst/localenames]
Deleting file [/phoenix/syst/docbrowser.data]
Deleting file [/phoenix/syst/locales/da/dialogs.res]
Deleting file [/phoenix/syst/locales/da/imechars.res]
Deleting file [/phoenix/syst/locales/da/strings.res]
Deleting file [/phoenix/syst/locales/da/sampledocuments/KomGodtIGang.tns]
Removing directory [/phoenix/syst/locales/da/sampledocuments/]
Deleting file [/phoenix/syst/locales/da/settings/factory.zip]
Removing directory [/phoenix/syst/locales/da/settings/]
Removing directory [/phoenix/syst/locales/da/]
Deleting file [/phoenix/syst/locales/de/dialogs.res]
Deleting file [/phoenix/syst/locales/de/imechars.res]
Deleting file [/phoenix/syst/locales/de/strings.res]
Deleting file [/phoenix/syst/locales/de/sampledocuments/ErsteSchritte.tns]
Removing directory [/phoenix/syst/locales/de/sampledocuments/]
Deleting file [/phoenix/syst/locales/de/settings/factory.zip]
Removing directory [/phoenix/syst/locales/de/settings/]
Removing directory [/phoenix/syst/locales/de/]
Deleting file [/phoenix/syst/locales/en/dialogs.res]
Deleting file [/phoenix/syst/locales/en/icons.res]
Deleting file [/phoenix/syst/locales/en/imechars.res]
Deleting file [/phoenix/syst/locales/en/strings.res]
Deleting file [/phoenix/syst/locales/en/sampledocuments/GettingStarted.tns]
Removing directory [/phoenix/syst/locales/en/sampledocuments/]
Deleting file [/phoenix/syst/locales/en/settings/factory.zip]
Removing directory [/phoenix/syst/locales/en/settings/]
Removing directory [/phoenix/syst/locales/en/]
Deleting file [/phoenix/syst/locales/fr/dialogs.res]
Deleting file [/phoenix/syst/locales/fr/imechars.res]
Deleting file [/phoenix/syst/locales/fr/strings.res]
Deleting file [/phoenix/syst/locales/fr/sampledocuments/PriseEnMainRapide.tns]
Removing directory [/phoenix/syst/locales/fr/sampledocuments/]
Deleting file [/phoenix/syst/locales/fr/settings/factory.zip]
Removing directory [/phoenix/syst/locales/fr/settings/]
Removing directory [/phoenix/syst/locales/fr/]
Deleting file [/phoenix/syst/locales/it/dialogs.res]
Deleting file [/phoenix/syst/locales/it/imechars.res]
Deleting file [/phoenix/syst/locales/it/strings.res]
Deleting file [/phoenix/syst/locales/it/sampledocuments/GuidaIntroduttiva.tns]
Removing directory [/phoenix/syst/locales/it/sampledocuments/]
Deleting file [/phoenix/syst/locales/it/settings/factory.zip]
Removing directory [/phoenix/syst/locales/it/settings/]
Removing directory [/phoenix/syst/locales/it/]
Deleting file [/phoenix/syst/locales/no/dialogs.res]
Deleting file [/phoenix/syst/locales/no/imechars.res]
Deleting file [/phoenix/syst/locales/no/strings.res]
Deleting file [/phoenix/syst/locales/no/sampledocuments/KommeIGang.tns]
Removing directory [/phoenix/syst/locales/no/sampledocuments/]
Deleting file [/phoenix/syst/locales/no/settings/factory.zip]
Removing directory [/phoenix/syst/locales/no/settings/]
Removing directory [/phoenix/syst/locales/no/]
Removing directory [/phoenix/syst/locales/]
Deleting file [/phoenix/syst/settings/current.zip]
Deleting file [/phoenix/syst/settings/initialized]
Removing directory [/phoenix/syst/settings/]
Removing directory [/phoenix/syst/]
Deleting file [/phoenix/tblt/locales/da/dialogs.res]
Deleting file [/phoenix/tblt/locales/da/strings.res]
Removing directory [/phoenix/tblt/locales/da/]
Deleting file [/phoenix/tblt/locales/de/dialogs.res]
Deleting file [/phoenix/tblt/locales/de/icons.res]
Deleting file [/phoenix/tblt/locales/de/strings.res]
Removing directory [/phoenix/tblt/locales/de/]
Deleting file [/phoenix/tblt/locales/en/dialogs.res]
Deleting file [/phoenix/tblt/locales/en/icons.res]
Deleting file [/phoenix/tblt/locales/en/strings.res]
Removing directory [/phoenix/tblt/locales/en/]
Deleting file [/phoenix/tblt/locales/fr/dialogs.res]
Deleting file [/phoenix/tblt/locales/fr/strings.res]
Removing directory [/phoenix/tblt/locales/fr/]
Deleting file [/phoenix/tblt/locales/it/dialogs.res]
Deleting file [/phoenix/tblt/locales/it/strings.res]
Removing directory [/phoenix/tblt/locales/it/]
Deleting file [/phoenix/tblt/locales/no/dialogs.res]
Deleting file [/phoenix/tblt/locales/no/strings.res]
Removing directory [/phoenix/tblt/locales/no/]
Removing directory [/phoenix/tblt/locales/]
Removing directory [/phoenix/tblt/]

Waiting for OS download.
Starting Connectivity services.
USB Download is enabled.
Press <Enter> to download through the serial port.
phoenix dhcp server w/ VOODOO built 12-Jul-2006 (start at 7140)


phoenix enum server built 12-Jul-2006


phoenix dhcp hook fwd w/ VOODOO built 12-Jul-2006 (start at 7140)


phoenix file mgt server built 12-Jul-2006 (start at 7240)

pn-srv2-636: pol_init = -1




Remarquez bien la mention "Keypad request, deleting current OS to force upgrade."

Il semble donc que l'effacement de l'OS permette de mettre à jour plus facilement sa TI-Nspire CAS+.

Voyons cela d'un peu plus près...



Expérience 1: :48tinscp:
Prenons une TI-Nspire CAS+ munie d'un OS 1.0.529.
Envoyons-lui un OS 1.0.554: ce dernier se voit installé sans aucun problème! :bj:
804


Expérience 2a: :48tinscp:
Prenons une TI-Nspire CAS+ munie d'un OS 1.0.554.
Envoyons-lui un OS 1.0.529: ce dernier se voit refusé avec un message sur l'ordinateur disant que l'on ne peut pas installer une version antérieure à celle déjà installée! :mj:
Comme incluse mais non utilisée sur les TI-Nspire commerciales avant l'OS 2.1, il y avait donc déjà une protection anti-downgrade sur les CAS+, basée sur le numéro de version de l'OS.

Expérience 2b: :48tinscp:
Reprenons la TI-Nspire CAS+ précédente munie de son OS 1.0.554.
Supprimons l'OS grâce à la combinaison :nsmep: :nsen: :nsp:
797

A l'invite d'installation d'OS du Boot2, envoyons le 1.0.529. Et bien cette fois-ci, l'OS est accepté! :bj:
799




La combinaison :nsmep: :nsen: :nsp: sur les TI-Nspire CAS+ permet donc d'installer un OS via le Boot2 qui est beaucoup moins strict que l'OS et ne comporte pas la protection anti-downgrade. Elle permet donc d'installer des OS sans vérification de leur numéro de version. Cela permet le retour à un OS antérieur (downgrade), mais également l'installation d'un OS plus récent pour lequel la vérification du numéro de version échouerait. :bj:

Cela peut sans doute vous paraître stupide de fournir une protection et le moyen de la contourner, mais n'oublions pas que la TI-Nspire CAS+ était un prototype de tests, que la protection anti-downgrade était encore en développement, et qu'un bug éventuel aurait pu bloquer complètement la TI-Nspire CAS+ en lui faisant refuser tous les OS. Nul étonnement dans ce contexte que TI se soit aménagé une sortie de secours.





TI-Planet: encore un secret de percé! :bj:

Re: La combinaison d'effacement de l'OS des CAS+ enfin compr

Unread postPosted: 14 May 2012, 09:50
by 12jojo34
il n'y aurais pas un truc equivalent sur les nspire de production. sa permetterai de faire les downgrade d'os sans passer par ndless ou part le port rs232

Re: La combinaison d'effacement de l'OS des CAS+ enfin compr

Unread postPosted: 14 May 2012, 12:38
by Lionel Debroux
il n'y aurais pas un truc equivalent sur les nspire de production

Non. Du moins, pas qu'on sache, mais il est formidablement improbable qu'il y ait des façons aussi simples de contourner les "protections" (qui seraient alors inutiles) dans les modèles de production ;)

Re: La combinaison d'effacement de l'OS des CAS+ enfin compr

Unread postPosted: 15 May 2012, 16:55
by 12jojo34
pas si simple que sa vous avez quand meme mit 6 ans a savoir a quoi sa servait.

Re: La combinaison d'effacement de l'OS des CAS+ enfin compr

Unread postPosted: 15 May 2012, 17:48
by Adriweb
Non, "simple" dans le sens c'est juste une combinaison.
Pas simple a dumper (c'est ca qui nous a pris du temps)
(en cumulé, ptet 10-15 heures en tout ...)