Page 1 of 1

Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 25 Dec 2015, 22:08
by Lionel Debroux
Aujourd'hui, Jean-Baptiste Boric a publié les binaires d'une première version officielle de son firmware tiers "Rip'Em" pour Prime, que j'avais signalé plus tôt cette semaine, et ouvre vraisemblablement une nouvelle page de l'histoire de la Prime :)

Ce qu'il a fait est basé sur le remplacement du deuxième étage de chargement (PRIME_OS.ROM, anciennement BESTAARM.ROM) spécial. Moyennant d'ouvrir sa Prime pour connecter un adaptateur au port série TTL 3.3V (même matériel que pour reflasher le boot2 des Nspire, et bien d'autres choses hors calculatrices), ce nouveau code permet pour l'instant de:
  • lancer un GDBstub sur port série, écrit par Jean-Baptiste, permettant de modifier les registres et la mémoire, et d'uploader puis lancer du code;
  • charger et lancer un seul fichier ELF (NdT: format d'exécutables standard), deux tels payloads étant actuellement disponibles: dummy.elf pour faire clignoter les LEDs examen et utiliser la Prime comme complément au sapin de Noël (c'est de saison), ou le PRIME_OS.ROM standard après empaquetage dans un fichier ELF avec l'outil "osrom2elf" fourni;
  • lancer sa propre application arbitraire "bare metal" (contrôle complet du matériel sans aucune couche d'abstraction) avec les librairies fournies, qui ne demandent qu'à être étendues

Jean-Baptiste donne quelques éléments sur ce qu'il veut faire maintenant et ce sur quoi on peut aider:
  • commencer par jouer avec Rip'Em, évidemment - ce n'est pas compliqué ou dangereux, on peut facilement reflasher la Prime pour mettre ou enlever l'OS standard;
  • documenter le matériel en utilisant le GDBstub. NdT: et/ou d'autres programmes. Le chip S3C2416 est bien documenté, avec sa datasheet publique, et bien géré par Linux; mais il manque par exemple les assignations des GPIO;
  • porter le GDBstub standard, pour l'utiliser plutôt que celui fait par Jean-Baptiste. NdT: peut-être que celui de Jean-Baptiste ne gère peut-être pas toutes les commandes; mais écrire un GDBstub est un exercice formateur et il a eu raison de le faire :)
  • écrire un driver USB série, et remettre le GDBstub par dessus, pour permettre de se passer de matériel supplémentaire pour utiliser le firmware tiers de façon utile;
  • ajouter la gestion de plusieurs payloads et le choix au démarrage par une interface simple. NdT: pour ça, il faut vraisemblablement documenter le clavier d'abord.

L'auteur, cependant, ne prévoit pas de:
  • s'occuper du firmware standard: reverse-engineering, patches et autres modifications. Il s'intéresse davantage à faire des choses nouvelles sur lesquelles on a un plein contrôle, et la todo list constitue déjà une bonne occupation. NdT: les devs de HP ont déjà écrit que HP ne nous emmerdera pas tant qu'on fait des choses complètement séparées du firmware standard, mais qu'il y aura le jeu du chat et de la souris, comme sur Nspire, si on s'attaque au firmware standard.
  • faire de Rip'Em un programme compliqué et lourd. Le seul but est d'être un lanceur d'ELF, et non un OS complet. Même le GDBstub devrait devenir à terme un programme séparé


Le premier firmware tiers que j'avais fait, et que Jean-Baptiste référence dans son annonce, était basé sur le troisième et dernier étage de chargement, armfir.elf dans PRIME_APP.DAT (anciennement APPSDISK.DAT). Il a déjà passé plus de temps que moi sur son firmware, et a fait nettement mieux... enfin quelqu'un qui s'intéresse réellement aux firmwares tiers sur la Prime, plus de deux ans après critor et moi, presque un an et demi après mon PoC !

Je renouvelle mes félicitations à Jean-Baptiste, et vous invite à faire de même ;)

Et bien sûr, si vous faites des bêtises avec vos calculatrices et que vous les cassez (NdT: c'est difficile avec des Prime, tant qu'on n'explose pas le mode recovery dans le boot0 - et ça, il faut vraiment le faire exprès), c'est pour vos pieds. Ni Jean-Baptiste, ni moi, ni les autres ne seront responsables.


Code source et téléchargements: https://github.com/boricj/ripem
Source de l'info: https://www.omnimaga.org/hp-prime/annou ... -hp-prime/

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 26 Dec 2015, 01:05
by critor
Très belle avancée ! :bj:

Lionel Debroux wrote:Jean-Baptiste ne prévoit pas de:
  • s'occuper du firmware standard: reverse-engineering, patches et autres modifications. Il s'intéresse davantage à faire des choses nouvelles sur lesquelles on a un plein contrôle, et la todo list constitue déjà une bonne occupation. NdT: les devs de HP ont déjà écrit que HP ne nous emmerdera pas tant qu'on fait des choses complètement séparées du firmware standard, mais qu'il y aura le jeu du chat et de la souris, comme sur Nspire, si on s'attaque au firmware standard.


Tu sembles faire une distinction sur la tolérance de HP envers :
  • des modifications injectées au fimware officiel (telles un pseudo-Ndless inexistant à ce jour) - qui seraient selon toi officiellement inacceptables
  • des firmwares HP-Prime tiers - qui seraient selon toi officiellement tolérables

Je crains hélas que les choses ne soient pas aussi simples que ce que tu présentes.
Les devs HP ont écrit cela il y a un peu plus de deux ans... Nous sommes désormais dans un monde totalement différent dans lequel les constructeurs de calculatrices ont réussi à ou sont en train de vendre leur "mode examen" inutile et néfaste aux différents pays européens.

Dans ce contexte, je pense malheureusement que les firmwares tiers sont désormais tout aussi inacceptables.
Surtout que le firmware tiers présenté ici s'amuse à faire clignoter les diodes examen...

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 26 Dec 2015, 08:41
by DoOmnimaga
J'ai posté ce firmware en news sur CodeWalrus (en retard). Je crois que la meilleure chose à faire, afin de ne pas se mettre HP à dos serait par contre de faire un bootloader qui permet de lancer un firmware officiel ou des programmes en langage natif, et faire en sorte que ce bootloader bloque l'utilisation des programmes ASM/C lorsque le mode examen est activé. De plus, il faudrait que la license du firmware tiers interdise tout fork qui permet l'execution de programmes ASM/C sous le mode examen.

(Streetwalrus voulait créer un tel firmware dans le passé, mais il ne possède pas la calculatrice et ne voulait pas en payer une de sa poche, donc le projet est mort.)


Mais c'est ton choix. Beau travail tout de même, qui prouve que l'on pourrait faire des choses incroyables sur cette machine. :)


Pour TI, on s'en fout un peu, car même si on fait tout pour ne pas toucher au mode examen, ils bloque Ndless quand même, alors qu'HP nous ont laissés une chance.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 26 Dec 2015, 10:38
by critor
DJ Omnimaga wrote:Je crois que la meilleure chose à faire, afin de ne pas se mettre HP à dos serait par contre de faire un bootloader qui permet de lancer un firmware officiel ou des programmes en langage natif, et faire en sorte que ce bootloader bloque l'utilisation des programmes ASM/C lorsque le mode examen est activé. De plus, il faudrait que la license du firmware tiers interdise tout fork qui permet l'execution de programmes ASM/C sous le mode examen.


En gros, tu proposes que le code source du bootloader/firmware tiers ne soit pas libre.
Car à partir du moment où le code source est disponible, n'importe qui pourrait le modifier pour supprimer les restrictions que tu décris.

C'est une solution, mais ce n'est pas dans les habitudes de la communauté.

Ce n'est pas un reproche, nSonic2MS lui aussi n'est pas libre alors que tous mes autres projets le sont :
viewtopic.php?p=193292#p193292
Ce serait en effet trop facile de le modifier pour avoir accès à ses documents en mode examen.


Il est bien triste que continuer à développer pour nos calculatrices semble désormais de plus en plus souvent entrer en contradiction avec l'esprit de ce qu'a été la communauté calculatrices, à cause de cette saleté de mode examen.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 26 Dec 2015, 11:55
by jean-baptiste boric
DJ Omnimaga wrote:Je crois que la meilleure chose à faire, afin de ne pas se mettre HP à dos serait par contre de faire un bootloader qui permet de lancer un firmware officiel ou des programmes en langage natif, et faire en sorte que ce bootloader bloque l'utilisation des programmes ASM/C lorsque le mode examen est activé. De plus, il faudrait que la license du firmware tiers interdise tout fork qui permet l'execution de programmes ASM/C sous le mode examen.


Inutile sur plusieurs niveaux.

1) Rip'Em n'a aucune emprise sur le firmware officiel ni en particulier sur le mode examen. J'ai vérifié au cas où : le mode examen fonctionne exactement comme avant avec mon bootloader, il faudrait obligatoirement passer par un patch du firmware officiel pour oblitérer le mode examen.
2) J'ai publié les sources de mon firmware. N'importe qui pourrait facilement ôter une hypothétique restriction dans le code source de Rip'Em.
3) HP n'utilise aucun chiffrement ni authentification du firmware. N'importe qui avec arm-none-eabi-objdump et un éditeur hexadécimal pourrait ôter une hypothétique restriction dans le binaire de Rip'Em.
4) Une personne qui souhaite s'attaquer au mode examen ne se soucierait pas des restrictions de licence de Rip'Em.

En résumé : Rip'Em n'est pas un outil qui permet de contourner le mode examen, ni qui a vocation à le faire. Même si une personne souhaiterait s'en servir comme point de départ à un tel projet, il lui resterait un travail tout simplement énorme à fournir pour arriver à ses fins.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 27 Dec 2015, 07:55
by DoOmnimaga
Ah ok merci des précisions. Je crois que ce qui m'a porté à croire que le firmware pourrait nous mettre HP à dos c'est ce post par critor:

critor wrote:Surtout que le firmware tiers présenté ici s'amuse à faire clignoter les diodes examen...


Je n'aime pas le closed-source ni les licenses restrictives, mais avec ce qui s'est passé avec Ndless, la TI-82 Advanced et la ClassPad II, on marche sur des oeufs depuis 5 ans.
jean-baptiste boric wrote:En résumé : Rip'Em n'est pas un outil qui permet de contourner le mode examen, ni qui a vocation à le faire. Même si une personne souhaiterait s'en servir comme point de départ à un tel projet, il lui resterait un travail tout simplement énorme à fournir pour arriver à ses fins.


Sans compter le fait que si un programme dédié à la triche, ou un tutoriel pour tricher était posté sur TI-Planet, CodeWalrus, Cemetech ou Omnimaga, le lien de téléchargement serait probablement supprimé par les modérateurs.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 27 Dec 2015, 09:10
by Adriweb
DJ Omnimaga wrote:Sans compter le fait que si un programme dédié à la triche, ou un tutoriel pour tricher était posté sur TI-Planet, CodeWalrus, Cemetech ou Omnimaga, le lien de téléchargement serait probablement supprimé par les modérateurs.

Un PTTKiller-like, par exemple, oui.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 27 Dec 2015, 09:31
by Lionel Debroux
Une censure sur les sites de la communauté n'empêcherait en aucune façon que des PTT Killers soient disponibles. Si ceux qui font des PTT Killers commettaient l'erreur d'héberger de tels programmes sur les sites de la communauté, ils seraient vite ré-hébergés ailleurs, c'est tout. Voir ce qui s'était passé sur Omnimaga en 2012.

Re: Nouveau firmware tiers plus intéressant pour HP Prime...

Unread postPosted: 28 Dec 2015, 01:23
by critor
J'ai réalisé une petite vidéo, histoire que le potentiel énorme de ce nouveau firmware devienne un peu plus concret dans la tête des lecteurs. ;)
viewtopic.php?p=193984#p193984