Suite à mon article %5BPS4%5D Hack 9.00 sans clé USB à l'aide d'un Raspberry Pi voici un tuto complet pour tous ceux qui aimeraient se lancer.
1. Matériel nécessaire
Pour ce tuto il vous faudra :
- une PS4 Fat, Slim ou Pro sous firmware 9.00 (strictement)
- un Raspberry Pi Zero W ou Raspberry Pi Zero 2 W ou Raspberry 4B
- une carte SD de 512 Mo ou +
- un ordinateur (PC ou Mac) sur lequel préparer la carte SD
- un câble USB pour relier le Raspberry à la PS4
- la dernière version de l'image disque de PS4RaspberryPi correspondant à votre Raspberry Pi, que vous trouverez sur la page "releases"
Personnellement, je vous recommande un simple Pi Zero W car on peut en trouver à moins de 10 euros et pour ce que l'on va en faire ici ça suffit amplement. Un Pi Zero 2 est aussi acceptable (moins de 18 euros) mais un Rpi 4B (plus de 40 euros) c'est du gâchis à mon sens.
Attention: ce projet ne fonctionne pas sur Raspberry Pi 1, 2 ou 3 car leurs ports USB ne sont pas capable d'émuler un lecteur USB, c'est donc une restriction matérielle.
2. Préparer la carte SD
Une fois l'image disque téléchargée, comme (presque) toujours avec le Raspberry Pi, il vous faudra préparer la carte SD à l'aide d'un logiciel de "gravure d'image". Pour ce tutoriel, j'ai choisi "balenaEtcher" car il est gratuit, fonctionne sur toute les plateformes et qu'il est simple.
Si ce n'est pas déjà fait, téléchargez balenaEtcher ici et installez le sur votre ordinateur.
Vous pouvez également choisir d'utiliser un autre logiciel tel que "Raspberry Pi Imager" ou "unetbootin", le fonctionnement reste similaire.
Ouvrez "balenaEtcher" et commencez par sélectionner le fichier image disque téléchargé (sur la page releases de PS4RaspberryPi) en cliquant sur "Flash from file".
Si vous avez un Pi Zero, le fichier doit se nommer "PiZW-*.zip", pour un Zero 2, "PiZ2W-*.zip" et pour un Pi 4 "Pi4B-*.zip".
Cliquez ensuite sur "Select target" et sélectionnez le périphérique de destination, c'est à dire votre lecteur de carte SD.
Vous devriez avoir quelque chose comme ceci:
Vérifiez que les informations sont bonnes (et surtout que vous avez sélectionné le bon disque) puis validez en cliquant sur "Flash".
Sur mac os et Linux il vous sera demandé votre mot de passe, c'est normal, le logiciel a besoin des droits administrateur pour écrire sur le périphérique.
L'opération devrait prendre 2 petites minutes. Une fois terminé, retirez "proprement" votre carte SD de son lecteur.
3. Connexion du Raspberry Pi
Insérez la carte SD dans le Raspberry Pi et branchez le via un câble USB sur votre PS4 puis démarrez la si ce n'est pas déjà fait.
Attention 1: pour les Raspberry Pi Zero (1 et 2), il faut impérativement brancher la fiche USB micro-B sur le port nommé "USB" et non PAS sur le port "PWR" (ceci pour que l'émulation fonctionne).
Veuillez également prendre soin d'utiliser un câble USB capable de transférer des données, c'est à dire un câble qui a bien les 4 fils et qui ne sert pas uniquement pour l'alimentation / la charge, comme ça peut être le cas avec des câbles de batterie de secours.
Attention 2: au premier démarrage du Raspberry Pi il faudra patienter un bon 30 secondes car il va faire quelques opérations de préparation gourmandes (comme retaillé la partition). Les démarrage suivant prendront eux moins de 5 secondes.
4. Connexion au Raspberry Pi
Pour faire simple, nous allons utiliser le Raspberry Pi comme point d'accès (comme pour les ESP pour ceux qui on déjà utilisé cette méthode).
Console allumée et Raspberry Pi connecté, rendez-vous dans les paramètres de la Console, puis Réseau.
Cochez la case "Se connecter à Internet".
Rendez-vous dans "Configurer la connexion Internet", sélectionnez "Par Wifi" puis "Personnalisé".
Sélectionnez le réseau Wifi nommé "PiZero".
Choisissez une configuration manuelle.
Et indiquez les paramètres suivant.
Adresse IP: 7.7.7.10
Masque: 255.255.255.0
Passerelle: 7.7.7.1
DNS primaire: 7.7.7.1
DNS secondaire: 0.0.0.0
Validez, passez le MTU et le Proxy.
Le test de connexion va échouer (normal, le Rpi n'est pas connecté à Internet), continuez en appuyant sur rond (les paramètres seront tout de même sauvegardés).
Vous voila connectez au Raspberry.
IMPORTANT: ces étapes 1, 2, 3 et 4 ne sont à réaliser qu'une seule fois; à partir de là votre Raspberry Pi doit rester branché en permanence à votre PS4, vous n'y touchez plus... jamais
5. Jailbreak !
Une fois la PS4 démarrée, le Raspberry Pi branché sur la PS4, le wifi activé et connecté au point d'accès du Raspberry Pi, on peut y aller.
Ici 2 méthodes:
- soit vous passez par "Paramètres > Guide de l'utilisateur / Infos utiles > Guide de l'utilisateur"
- soit vous ouvrez directement la page "http://7.7.7.1" dans le navigateur
Cliquez sur le premier bouton en haut à gauche nommé "GoldHEN" puis patientez quelques secondes.
Si tout se passe bien vous verrez alors un message vous informant de l'émulation de la clé USB par le Raspberry PI et vous invitant à patienter jusqu'à l'apparition ET la fermeture la notification système.
ATTENTION: il est réellement très important d'attendre la fermeture de cette notification système avant d'appuyer sur OK.
Une fois la notification système disparue (oui j'insiste...), cliquez sur OK. Vous aurez alors une autre alerte vous informant de la réussite de l'opération et vous invitant à poursuivre; validez avec OK.
Une fois validé, vous aurez le plaisir de voir la notification système "GoldHEN".
Et voila... vous pouvez profiter pleinement de votre PS4.
Au prochain cold boot (ou reboot), laissez brancher le Rpi sur la console et refaites simplement cette étape 5.
A noter qu'il n'est pas nécessaire que le Raspberry Pi soit alimenter durant le mode repos de la console, il est donc préférable de désactiver l'alimentation des ports USB durant la veille (dans les paramètres).
Je n'ai pas de compte Youtube mais vous pouvez trouver une vidéo complète de cette étape à cette adresse:
https://dsc.cloud/86c949/1642775996
Vous pourrez y constater que le JB avec cette méthode prend en réalité entre 30 et 35 secondes, entièrement dans le navigateur et sans intervention physique sur la console.
6. Pour aller plus loin...
Comme vous pouvez le constater sur les captures d'écran de la page d'accueil, nous avons ici tous les payload habituels vous pouvez donc utiliser WebRTE, PS4Debug et autre App2Usb sans passer par un autre "host" (il y a même les trainers offline pour ceux que ça intéressent).
Mais le plus intéressant pour moi reste le bouton 'Raspberry' qui offre quelques options propres au système dont la possibilité d'attacher / connecter le Raspberry pi à votre réseau existant.
Le Rpi va donc se connecter à votre Wifi comme tout autre périphérique et vous pourrez vous y connecter via son IP (attribuée par votre Box/Routeur). L'avantage ici est de pouvoir accéder à Internet sur la PS4 et de pouvoir accéder à la PS4 via le réseau local (pour le remote play ou le FTP par exemple).
Si cette option vous intéresse, cliquez sur le bouton "Raspberry" sur la page d'accueil puis sélectionnez votre réseau wifi et indiquez son mot de passe.
Redémarrez le Raspberry (soit en le dé/re-branchant soit en redémarrant la console) et n'oubliez de refaire la configuration réseau de votre PS4 pour qu'elle aussi se connecte au réseau local (idéalement utilisez un DNS de la scène ou indiquez l'IP du Rpi).
Vous pourrez alors accéder aux Raspberry via son adresse locale (à chercher sur l'interface d'admin de votre box/routeur).
7. Mise à jour de GoldHEN
(edit du 5 avril 2022)
PaulJenkin n'ayant pas mis à jour son image depuis fin janvier, voici un petit step by step pour mettre à jour manuellement GoldHEN.
Etape 1 : Téléchargez la dernière version de GoldHEN sur https://github.com/G...oldHEN/releases puis décompressez l'archive et gardez seulement le fichier "goldhen_X.X.X_900.bin" (par exemple goldhen_2.2.2_900.bin).
Etape 2 : si ce n'est pas déjà le cas, allumez votre PS4 / Rpi et connectez vous en sFTP au Raspberry Pi (à l'aide d'un logiciel tel que Filezilla ou Transmit). L'utilisateur est "root" et le mot de passe par défaut est "<?>123".
- si vous utilisez le mode "point d'accès" il faudra connecter votre ordinateur à ce point d'accès (donc au RPi) et vous connecter à l'IP 7.7.7.1
- si vous avez connecté le Rpi à votre Wifi, utilisez l'IP qu'il lui a été attribué (par exemple: 192.168.1.51 sur mon screenshot).
Etape 3 : transférez le fichier "goldhen_X.X.X_900.bin" dans le dossier "/usr/html/Bin/GoldHen" sur le Raspberry Pi
Etape 5 : dans le navigateur de la PS4, une fois sur l'interface du Raspberry Pi, rendez vous dans "GoldHEN" en bas à droite.
Puis sélectionnez le Payload a utiliser (celui fraichement ajouté normalement).
Si vous ne voyez pas votre fichier, n'hésitez pas à faire un refresh de la page.
Une fois sélectionné, le Rpi vous indiquera que l'opération a réussi et que c'est ce payload qui sera utilisé par défaut dorénavant.