Dans ce tuto je vais vous montrer comment rendre à nouveau fonctionnel la fonction Play'n'Charge grâce à SMC Utility.
L'opération a été réalisé sur une Japser 256Mo, la méthode fonctionne aussi sur les 512Mo.
Pré-requis:
- Une console avec le Hack Jtag en place
- SMC Utility: SMC Utility v1.1
- Easy-FreeBoot-12611-Update: google est ton ami (ou tout autre logiciel pour créer une image FreeBOOT...)
- 360 Flash Tool: 360 Flash Tool v0.97
- Une NAND originale
- et un cerveau
Difficulté: 7/10
Ici je détaillerai uniquement la méthode pour un branchement GPU JTAG classique (TMS=ARGON_DATA, TDI=DB1F1) à vous d'adapter vos I/O suivant votre montage...
Liaisons SMC-JTAG Hack:
DB1F1 ---|[|--- J2D2.1 RFUnit 2nd row, 2nd Pin ---|[|---- J2D2.2 J2D2.4 --------- J2D2.7
C'est parti !
1ère étape: Extraire le SMC décrypter de sa NAND
(On peut partir d'un SMC original, mais je suis parti du SMC extrait d'un dump de NAND FreeBOOT-12611.)
Pour ce faire nous allons utiliser l'outil 360 Flash Tool afin d'extraire la partie SMC de votre NAND:
- Ouvrir 360 Flash Tool > Open File > choisissez votre dump .bin > OK
- Une fois votre dump chargé cliquez sur le bouton Extract en bas de la fenêtre > cochez SMC > puis OK
- Sélectionner le dossier de destination qui contiendra les fichiers SMC_dec.bin et SMC_enc.bin (SMC décrypté et encrypté)
Vous voila avec votre fichier SMC_dec.bin qui va nous servir à l'application des patchs sous SMC Utility. Copier celui-ci dans le dossier où vous avez installé SMC Utility (smc_util)
note: si vous utilisez Easy-FreeBoot comme moi, vous pouvez directement récupérer le fichier "jasper.bin" contenu dans le dossier SMC de l'outil.
2ème étape: Patcher votre fichier SMC_dec.bin
Ouvrir un invité de commande "Exécuter... > cmd"
Dans le dossier contenant smc_util tapez les commandes suivantes:
>smc_util.exe analysis SMC_dec.bin
Vous devriez obtenir quelque chose dans le genre...
*** Xbox 360 SMC Utility *** *** Version 1.1 by Blackaddr *** Looking for SMC version... SMC Version: 2.3 Processing ANALYSIS section of smc_util.ini DMA_READ_HACK: found at 0x2D73 GPU_JTAG: found at 0x2DAD PCI_MASK_BUG: found at 0x2E9C TMS_PATCH: found at 0x2DC2 : TMS_value_is 0x83 TDI_PATCH_0_of_3: found at 0x2E20 : TDI_value_is 0xC0 TDI_PATCH_1_of_3: found at 0x2E46 : TDI_value_is 0xC0 TDI_PATCH_2_of_3: found at 0x2E5D : TDI_value_is 0xC0 TDI_PATCH_3_of_3: not found PNC_CHARGE: not found PNC_NO_CHARGE: not found
Nous voyons ici que le HACK JTAG est actif et les connections vers le SMC se font comme suit:
- le TMS à la valeur 0x83 ce qui correspond à l'ARGON_DATA (carte RF)
- le TDI est lui positionné sur la valeur 0xC0 ce qui correspond au DB1F1 (carte mère).
(Dans le fichier .ini de SMC Utility vous trouverez les correspondances pour les autres points de montages alternatifs...)
Le patch sur la ligne PNC_CHARGE est inexistant... pour le moment
On va maintenant patcher l'AIO sur notre fichier SMC_dec.bin:
>smc_util.exe custom SMC_dec.bin smc.bin
Ce qui va créer le fichier smc.bin contenant le patch PnC:
*** Xbox 360 SMC Utility *** *** Version 1.1 by Blackaddr *** Looking for SMC version... SMC Version: 2.3 Processing CUSTOM section of smc_util.ini Skipping AIO151, version mismatch: 1.51 != 2.3 Skipping AIO16, version mismatch: 1.6 != 2.3 Processing AIO23. Version 2.3 ...done! Writing smc.bin ...done
(La version de mon SMC étant 2.3 la partie CUSTOM correspondante du fichier "smc_util.ini" est appliqué à mon SMC_dec.bin)
On vérifie en faisant une analyse du fichier obtenu:
>smc_util.exe analysis smc.bin
Ce qui donne:
*** Xbox 360 SMC Utility *** *** Version 1.1 by Blackaddr *** Looking for SMC version... SMC Version: 2.3 Processing ANALYSIS section of smc_util.ini DMA_READ_HACK: found at 0x2ED2 GPU_JTAG: found at 0x2F11 PCI_MASK_BUG: not found TMS_PATCH: found at 0x2DBB : TMS_value_is 0xCC TDI_PATCH_0_of_3: found at 0x2E19 : TDI_value_is 0xC0 TDI_PATCH_1_of_3: found at 0x2E3F : TDI_value_is 0xC0 TDI_PATCH_2_of_3: found at 0x2E56 : TDI_value_is 0xC0 TDI_PATCH_3_of_3: found at 0x2F17 : TDI_value_is 0xC0 PNC_CHARGE: found at 0x2EBF PNC_NO_CHARGE: not found
Cette fois on remarque que le patch PNC_CHARGE à été trouvé à l'adresse 0x2EBF ! (en plus des autres patchs appliqués par le AIO...)
Attention pour les plus attentifs, on voit que la valeur du TMS a changée, elle est passée de "0x83" à "0xCC"
(le PCI_MASK_BUG n'est plus nécessaire...)
Avec le mode interactif I/O de SMC Utility nous allons remettre cela en ordre pour être conforme à notre montage JTAG d'origine.
>smc_util.exe io smc.bin final_smc.bin /i
Sur le menu choisissez 1 pour le TMS puis 2 pour le TDI
*** Xbox 360 SMC Utility *** *** Version 1.1 by Blackaddr *** *** Xbox 360 SMC I/O Config Utility *** *** Version 0.3a by Blackaddr *** INTERACTIVE MODE 1 - ARGON_DATA (Ring of light board) 2 - DB1F1 or alternate 3 - AUD_CLAMP (Q2N1) 4 - TRAY_OPEN (DVD power cable or connector) Which I/O for TMS? [1-4]: 1 ...using 83 Which I/O for TDI? [1-4]: 2 ...using C0 Found the TMS code at 0x2DBC and 0x2DC4 ...patched TMS output...patched TMS delay. Found the 1/4 TDI code at 0x2E1C ...patched TDI output. Found the 2/4 TDI code at 0x2E42 ...patched TDI output. Found the 3/4 TDI code at 0x2E59 ...patched TDI output. Found the 4/4 TDI code at 0x2F1C ...patched TDI output. Found the TCLK delay code at 0x2DF3 ...patched TCLK delay. *** ARGON_DATA is used, attempting to add ROL lockout code during JTAG *** Found the ROL disable code at 0x2F03 ...inserted ROL disable. Found the ROL enable code at 0x2F0D ...inserted ROL enable. The output file final_smc.bin must be re-encrypted before it can be flashed to the NAND.
Voila votre fichier "final_smc.bin" prêt à être réinjecté dans votre NAND.
Petite vérification:
>smc_util.exe analysis final_smc.bin
*** Xbox 360 SMC Utility *** *** Version 1.1 by Blackaddr *** Looking for SMC version... SMC Version: 2.3 Processing ANALYSIS section of smc_util.ini DMA_READ_HACK: found at 0x2ED2 GPU_JTAG: found at 0x2F11 PCI_MASK_BUG: not found TMS_PATCH: found at 0x2DBB : TMS_value_is 0x83 TDI_PATCH_0_of_3: found at 0x2E19 : TDI_value_is 0xC0 TDI_PATCH_1_of_3: found at 0x2E3F : TDI_value_is 0xC0 TDI_PATCH_2_of_3: found at 0x2E56 : TDI_value_is 0xC0 TDI_PATCH_3_of_3: found at 0x2F17 : TDI_value_is 0xC0 PNC_CHARGE: found at 0x2EBF PNC_NO_CHARGE: not found
Tout semble en ordre !
3ème étape: Injecter le "final_smc.bin" dans votre NAND FreeBOOT
Il y a surement d'autres méthodes(fbbuild,...) mais ayant échoué l'injection avec 360 Flash Tool(black screen... mais Xell fonctionnel) je propose cette astuce avec Easy-FreeBoot qui est très simple à mettre en oeuvre.
L'astuce ici est de recréer une image FreeBOOT propre à partir de sa NAND d'origine et du fichier SMC patché.
Pour ce faire il faut remplacer le fichier "jasper.bin" contenu dans le dossier "SMC" de Easy-FreeBoot par notre nouveau fichier "final_smc.bin".
Bien renommer celui-ci en "jasper.bin" !!!
Contenu du dossier de Easy-FreeBoot:
(ici nand.bin et Updflash.bin correspondent à mes fichiers précédemment utilisés)
Contenu du dossier SMC:
Il ne reste plus qu'à créer l'image FreeBOOT de façon classique, le logiciel prendra automatiquement le fichier "japser.bin" patché pour créer l'image FreeBOOT
Ne pas cocher les cases "Use Donor files" et "Aud_clamp Fix" !
Et voilà ! Il ne vous reste plus qu'à flasher le fichier "Updflash.bin" fraichement créé par Easy-FreeBoot sur votre Xbox 360 avec votre outil préféré
Enjoy!
Remerciements à Blackaddr pour son outil, aux forums XboxHacker, Gueux et les gens que j'oubli