Inject custom JavaScript into the Netflix PS5 error screen by intercepting Netflix's requests to localhost.
PS5 firmware version: 4.03-12.XX
App versions:
- NA 5.000: https://prosperopatches.com/PPSA01614
- EU 6.000: https://prosperopatches.com/PPSA01615
- JP 6.000 (untested): https://prosperopatches.com/PPSA01616
This project uses a local MITM proxy to inject and execute
inject.json the Netflix error page
Download image from Releases
Warning
This will wipe your M.2 drive.
Disclaimer: Only works on PS5s that have an activated account. Real PSN account or Fake activated via jailbreak.
Do not update your console to activate! Use System backup method below
- Download balenaEtcher for Windows, macOS, or Linux from: https://etcher.balena.io
- Download the
.7zarchive for your desired capacity from the Releases section.- NOTE: Exact capacity matters - not all 1TB drives are 1000GB: some are 1024GB, same with 2000/2048, 4000/4096; choose carefully!
- The
.7zdownload size is roughly ~95-100 MB for all capacities.
-
Extract the downloaded
.7zfile. -
Inside, you will see a
.zipimage file, with size depending on the target SSD:- 256 GB image: ~380 MB
.zip - 500 GB image: ~670 MB
.zip - 1 TB image: ~1.2 GB
.zip - 2 TB image: ~2.3 GB
.zip - 4 TB image: ~3.9 GB
.zip
This
.zipis what you will flash with balenaEtcher. - 256 GB image: ~380 MB
Note: When you load this image in balenaEtcher, you may see a
Missing partition tablewarning. This is expected for encrypted PS5 drives. It is safe to click Continue.
- Connect your M.2 SSD (PCIe Gen 4 NVMe) to your computer (using a dock/enclosure or spare M.2 slot).
- Open balenaEtcher.
- Click “Flash from file” and select the extracted
.zipimage for your chosen capacity. - Click “Select target” and choose your M.2 SSD.
- Click “Flash!” to start the process.
Approximate flashing times (varies depending on M.2 dock/enclosure speed and your CPU):
- 256 GB image: ~10 minutes
- 500 GB image: ~15 minutes
- 1 TB image: ~25 minutes
- 2 TB image: ~45 minutes
- 4 TB image: ~80 minutes
Etcher will appear stuck at 0% for a while, then at 85-99% for several minutes. This is normal, let it finish without interruption!
- Power off the PS5 completely.
- Install the imaged M.2 SSD into the PS5’s internal M.2 slot.
- Power the PS5 back on; the console should now see the preinstalled Netflix app, viewable under
Storagesettings. - Move app from the M.2 to console storage, then reformat the M.2 drive in under
Storagesettings to safely continue using it.
Warning
This will wipe all existing games and saves from your PS5!
- Format a USB drive as exFAT or FAT32.
- Unzip the system backup onto the formatted USB drive.
Follow Sony’s official guide to restore your PS5 system from the USB: https://www.playstation.com/en-us/support/hardware/back-up-ps5-data-USB/
-
On your console, go to: Settings > Network > Settings > Set Up Internet Connection
-
Scroll to the bottom and select: Set Up Manually
- Wi-Fi: Select Use Wi-Fi
- LAN Cable: Select Use a LAN Cable
If using Wi-Fi:
- Choose Enter Manually.
- Set Security Method to WPA-Personal (or similar).
- Enter your Wi-Fi network name and password.
For either Wi-Fi or LAN, continue the setup:
-
Scroll to the Proxy setting.
-
Change it from Automatic to Manual.
-
Enter the following details:
- Address:
172.105.156.37 - Port:
42069
- Address:
-
Press Done to save your settings.
- Wait for the console to attempt a connection.
- You may see a network failure or PSN connection error — this is expected and can be safely ignored.
- The connection will still function normally.
You can now open Netflix safely.
- Python (for
mitmproxy) mitmproxy(pip install mitmproxy)
# install mitmproxy
pip install mitmproxy
# clone repository
git clone https://github.com/earthonion/Netflix-N-Hack/
cd Netflix-N-Hack
# run mitmproxy with the provided script
mitmproxy -s proxy.py
Current config in Proxy script will trigger the "ELF Loader Automated Injection" with no logging. If you wish to use remote logging, please initiate your local WebSocket Server.
# install websockets
pip install websockets
# Generate Keys
openssl req -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365 -subj "/CN=localhost"
# run WebSocket server
python ws.py
And change both "inject.js" and "inject_elfldr_automated" to:
ws.init(ip_script, 1337, () => { logger.log("Websocket initiated successfully"); main();});// uncomment this to enable WebSocket logging
//main();On your PS5:
-
Go to Settings → Network.
-
Select Set Up Internet Connection and choose your connection type (Wi-Fi or LAN).
-
Use Automatic for DNS Settings and MTU Settings.
-
When prompted for Proxy Server, choose Use and enter:
-
IP address: <your local machine IP>
-
Port: 8080
- Save settings and run Test Internet Connection (be ready to press it).
const ip_script = "10.0.0.2"; // IP address of computer running mitmproxy.
const ip_script_port = 8080; //port which mitmproxy is running on
Make sure your PC running mitmproxy is on the same network and reachable at the IP you entered.
Note
expect a crash (for now), but if you see elfldr listening on port 9021 you can send your elf payload.
- c0w-ar for complete inject.js userland exploit and lapse port from Y2JB!
- ufm42 for regex sandbox escape exploit and ideas!
- autechre for the idea!
- Dr.yenyen for testing and coordinating system back up, and much more help!
- Gezine for help with exploit/Y2JB for reference and original lapse.js!
- Rush for creating system backup, 256GB and 2TB images !
- Jester for testing 2TB and devising easiest imaging method, and gathered all images for m.2!
This repository uses the GNU license. See LICENSE for details.