[PSP] uOFW : un projet novateur qui a besoin d’aide

Peut-être que ça ne vous dit rien, peut-être que vous scrutez la moindre news à ce sujet, dans tous les cas le projet uOFW va faire l’objet de cet article. Il consiste en une énorme rétro-ingénierie par de nombreux développeurs des modules du firmware officiel 6.60 de la PSP dans le but d’élaborer un firmware « officiel » 100 % customisable.

Le projet uOFW, un projet prometteur

Le projet uOFW, un projet prometteur


Attends… Rétro-quoi ?

Rétro-ingénierie. Il s’agit d’une étude approfondie d’un objet (enfin, d’un système dans notre cas) afin d’en connaître le fonctionnement. Les buts peuvent être multiples : utiliser correctement l’objet, s’assurer de son bon fonctionnement, le modifier… Ici, vu le contexte, vous vous imaginez bien que ce que cherchent les développeurs est de pouvoir modifier la quasi-intégralité du firmware de la PSP.

Je dis « quasi » car ce sont surtout les modules de « bas niveau » (pas les plus poussés quoi) qui sont la cible de la petite équipe. Mais ça représente déjà une quantité de boulot colossale, il est donc clair que ce n’est pas demain que l’uOFW fera son apparition. 

Euhm… Pourquoi t’en parles alors ?

Pour l’unique et bonne raison que ces développeurs ont besoin de votre aide ! Oui, toi qui es expérimenté dans les architectures MIPS et ASM ainsi que C. Comment ça, non ? :O Bref, ceux qui sont attentifs auront peut-être remarqué que le github du projet avançait pas des masses depuis un certain temps, un petit coup de pouce ne leur serait donc naturellement pas de refus.

Bon, d’accord, mais ça permettrait quoi en fait ?

Plusieurs choses ! 🙂

  • Comprendre le fonctionnement de la PSP et de son firmware ;
  • Améliorer les connaissances sur la PSP ;
  • Être en mesure de créer un custom firmware « complet ». Par « complet », il faut entendre « modifiable totalement » ;
  • Être capable de créer d’autres hacks de « bas niveau ». Ce dernier point reste indéterminé, mais envisageable.
uOFW projet exemple

Rétro-ingénierie des canaux par qwikrazor87 – _kirk7 – Address 0x00001418

Ok, ok, mais c’est quoi concrètement la différence avec un custom firmware « normal » ?

Eh bien c’est simple : un CFW (custom firmware), c’est un firmware officiel qui a été modifié (Prix Nobel 2015 de la Meilleure Explication, merci merci). En clair, les développeurs n’ont compris que certaines micro-parcelles du firmware et ont exploité une faille afin de modifier un ou plusieurs modules, en fonction de ce qui est nécessaire ou pas (chaque firmware est plus ou moins différent).

Avec l’uOFW les programmeurs, visant à comprendre le fonctionnement du firmware officiel, pourront élaborer une sorte de firmware « officiel » libre de droit et pouvant ouvrir l’accès à une ribambelle de possibilités en terme de customisation de sa console. Bien qu’il ne s’agisse pas là de l’objectif premier de l’uOFW, c’est une chose à garder dans le coin de la tête car tout à fait concevable si les développeurs acquièrent encore plus d’infos et réalisent des progrès.

Donc quels sont les avantages ?

Roh tu me les brises à la fin !

  • Eh ben, c’est d’une pierre deux coups : on pourra ensuite comprendre également un peu (beaucoup en fait) mieux comment améliorer les eCFW (émulation de CFW PSP mais sur Vita) et approfondir nos connaissances dessus ;
  • Idem pour les émulateurs, on pourra faire de réel progrès. Par exemple, sachez déjà que la rétro-ingénierie du module audio.prx a été un élément essentiel dans la conception de l’émulateur PCSP. Idem pour PPSSPP, qui a maintes fois utilisé les travaux du projet uOFW, ainsi que tous les autres projets touchant plus ou moins près le kernel (noyau) ;
  • Un développement d’un niveau encore un peu plus bas, pour le plaisir de tous (ben ouais, c’est frustrant de devoir posséder des connaissances de dingues pour personnaliser sa PSP).

Bref, les possibilités et avantages offerts sont multiples et variés, cela va de la conception d’un firmware à partir de 0 au développement de nombreux projets liés au kernel. Et même si l’objectif du projet semble être un poil trop idéaliste et pas assez réaliste, rappelez-vous ce que disait votre mère quand vous étiez plus petit : « quand on veut, on peut ! ». Or étant donné que la « mission » reste tout a fait réalisable, bien que parsemée d’embûches je n’en doute pas, je veux… y croire (lol, désolé mais mes connaissances sont pas assez pointues pour que je puisse aider les devs) !

Plus sérieusement, c’est la dernière chose qu’il reste à faire sur PSP, vu qu’on a déjà fait tout le tour et que la console portable est devenue pratiquement customisable à 90 %. Le projet est dingue, certes, mais faisable : la contribution des codeurs depuis tout ce temps ne sera certainement pas vaine. D’ailleurs, en parlant d’eux, il faudrait peut-être songer à les créditer, puisque sans eux je ne parlerais même pas de ça…

  • artart78 ;
  • Felix-Dev ;
  • Joel16 ;
  • Kern— ;
  • libcg ;
  • noname120 (yaaaaaay un français !!) ;
  • Omega2058 ;
  • qwikrazor87.

Quant aux modules actuellement étudiés, les voici :

  • 0x00008768 modulemgr (Felix, noname120)
  • 0x00001C84 dmacman.prx (Kern–) ;
  • 0x00001B44 idstorage.prx (libcg)
  • 0x00000524 mlnbridge_msapp.prx (xerpi) ;
  • 0x00000674  http_storage.prx (Joel16).

Et pour plus de détails, c’est par ici que ça se passe ! ;)

Pour conclure cet article en beauté, voici la traduction du petit message de Joel16 laissé sur son article réservé à la « renaissance » de ce projet. J’espère que cet article poussera quelques-uns d’entre vous à aider la team, et sachez que si vous n’avez pas les compétences pour, un partage sur les réseaux sociaux peut toujours permettre à cet article d’être vu par vos amis/abonnés qui eux les ont peut-être. Bref, vous savez ce qu’il vous reste à faire si vous souhaitez soutenir le projet ! 🙂

J’espère que mon nom apparaîtra sur la liste très bientôt, vu que j’ai enfin pu commencer à travailler sur ce projet et à jeter un coup d’œil aux différents documents, et j’aimerais encourager tous les autres développeurs amateurs à se joindre à nous. Vous pouvez par ailleurs consulter vite fait leur guide de reverse engineering, (rétro-ingénierie), mais comme je l’ai dit plus tôt, vous devez avoir de solides connaissances en C, MIPS et ASM. Ceux qui sont intéressés et prêts à contribuer, vous pouvez contacter l’équipe via IRC sur le serveur Freenode (irc.freenode.net de) en rejoignant le canal #uofw, ou par e-mail à l’adresse commune à l’équipe [email protected].

Joel16