Custom Protocol

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

Un firmware "officiel" PSP mais en réalité 100 % "codé" par des développeurs, donc 100 % customisable, voici ce que propose cette team.


( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 12
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 16
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 17
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 23
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 25
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 29
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

( ! ) Notice: Use of undefined constant IT_TEXTDOMAIN - assumed 'IT_TEXTDOMAIN' in /home/custp/public_html/wp-content/themes/gridlove-child/functions/shortcodes/quotes.php on line 30
Call Stack
#TimeMemoryFunctionLocation
10.09933096456{main}( ).../index.php:0
20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
51.134824611288get_template_part( ).../single.php:25
61.134824611808locate_template( ).../general-template.php:168
71.134924611920load_template( ).../template.php:671
81.135024612312require( '/home/custp/public_html/wp-content/themes/gridlove/template-parts/single/content-1.php' ).../template.php:724
91.160224615568get_template_part( ).../content-1.php:9
101.160224616088locate_template( ).../general-template.php:168
111.160324616216load_template( ).../template.php:671
121.160424616792require( '/home/custp/public_html/wp-content/themes/gridlove-child/template-parts/single/entry-content.php' ).../template.php:724
131.171324618488the_content( ).../entry-content.php:21
141.172024630752apply_filters( ).../post-template.php:253
151.172024631152WP_Hook->apply_filters( ).../plugin.php:206
161.201224627336do_shortcode( ).../class-wp-hook.php:288
171.202124654088preg_replace_callback ( ).../shortcodes.php:199
181.203024668464do_shortcode_tag( ).../shortcodes.php:199
191.203024668928itQuotes::blockquote( ).../shortcodes.php:325

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

Wirus

Avez-vous déjà vu un gentil virus ? Maintenant, oui.

4 commentaires


    ( ! ) Notice: Undefined index: replies in /home/custp/public_html/wp-content/plugins/bridgedd/bridgedd_xcomment.php on line 101
    Call Stack
    #TimeMemoryFunctionLocation
    10.09933096456{main}( ).../index.php:0
    20.09943097464require( '/home/custp/public_html/wp-blog-header.php' ).../index.php:17
    30.904623769704require_once( '/home/custp/public_html/wp-includes/template-loader.php' ).../wp-blog-header.php:19
    40.936823828536include( '/home/custp/public_html/wp-content/themes/gridlove/single.php' ).../template-loader.php:98
    51.321124772280comments_template( ).../single.php:32
    61.345524796944require( '/home/custp/public_html/wp-content/themes/gridlove-child/comments.php' ).../comment-template.php:1508
    71.351124801944wp_list_comments( ).../comments.php:83
    81.351124803432apply_filters( ).../comment-template.php:2033
    91.351124803832WP_Hook->apply_filters( ).../plugin.php:206
    101.351124805336bridgedd_pro_xcomment_showlink( ).../class-wp-hook.php:288
  • salut

    bon j'ai à peu près compris le sujet mais c'est vrai qu'il est pas facile à comprendre dans sa première lecture mais merci quand même pour la news

Suivez-nous

Venez, on n'est pas méchants, on est même très sympas ! 🙂

Nouveaux sujets

Pas de nouveaux messages

Catégories

Archives

Bannière Hypsoma

Suivez-nous

Venez, on n'est pas méchants, on est même très sympas ! 🙂

Catégories

Archives