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+
![[menu] :nsmep:](./images/smilies/nspire/nsmep.png)
![[enter] :nsen:](./images/smilies/nspire/ns_en.png)
![[P] :nsp:](./images/smilies/nspire/nsp.png)
Ils ont alors assisté sous leurs yeux horrifiés à l'effacement pur et simple de leur OS sans aucune autre forme de confirmation!
![Pas bien! :mj:](./images/smilies/sg3agmjg3ag.gif)
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!
![Pas bien! :mj:](./images/smilies/sg3agmjg3ag.gif)
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!
![Clin d'oeil ;)](./images/smilies/sg3bgg29g.gif)
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: Tout sélectionner
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:
![TI-Nspire CAS+ :48tinscp:](./images/smilies/nscp48.png)
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!
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
Expérience 2a:
![TI-Nspire CAS+ :48tinscp:](./images/smilies/nscp48.png)
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!
![Pas bien! :mj:](./images/smilies/sg3agmjg3ag.gif)
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:
![TI-Nspire CAS+ :48tinscp:](./images/smilies/nscp48.png)
Reprenons la TI-Nspire CAS+ précédente munie de son OS 1.0.554.
Supprimons l'OS grâce à la combinaison
![[menu] :nsmep:](./images/smilies/nspire/nsmep.png)
![[enter] :nsen:](./images/smilies/nspire/ns_en.png)
![[P] :nsp:](./images/smilies/nspire/nsp.png)
A l'invite d'installation d'OS du Boot2, envoyons le 1.0.529. Et bien cette fois-ci, l'OS est accepté!
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
La combinaison
![[menu] :nsmep:](./images/smilies/nspire/nsmep.png)
![[enter] :nsen:](./images/smilies/nspire/ns_en.png)
![[P] :nsp:](./images/smilies/nspire/nsp.png)
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
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é! ![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)