Following up on the PS4 NOR Flash Dump from earlier, Spanish PlayStation 4 developer JaiCraB has made available JAISPI V1.0 which is a utility to read and write to the main memory (MX25L25635) of PS4 with Raspberry Pi through the SPI protocol.
He also released SLB2 V1.0 which is a utility to pack and unpack the PlayStation 4 Update PUP files similar to the PS4UPDATE PUP scripts available in the spoiler below.
Spoiler
Download: jaispi (v1) / jaispi.txt (v1) / slb2.exe (v1) / slb2.txt (v1)
To quote, roughly translated:
JAISPI - Utility to read and write to the main memory (MX25L25635) of PS4 with the Raspberry Pi through the SPI protocol.
Version V1.0
-I: Displays information of the flash.
# Jaispi-i / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
-E: Clears all flash.
Average time 1min, 30sec.
# Jaispi-e / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Erasing blocks ...
Done!
-R: Makes a full dump of the flash.
Average time 35sec.
# Jaispi dump.bin-r / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Reading ...
0x02000000
Done!
-P: Write to flash only the changed sectors.
Average time 1min 30sec
# Jaispi-p Base.bin / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Starting ...
0x02000000 -> 8192 written Sectors
Done!
-V: Show the contents of the flash with the filename.
Average time 35sec.
# Jaispi-v Base.bin / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Checking ...
0x02000000 -> 0 the industries Different
Done!
Installation Instructions
Materials Required
MX25L25635 RaspberryPi GPIO
Installation
Run win32diskimage.
File-In image select the image downloaded and decompressed Raspbian.
-In Device select the drive where the SD memory is.
We Power-Write.
We insert the SD in Raspberry and fed by the USB cable. After two minutes, run Putty.
-In Host Name put: raspberrypi
-De not work well the previous step, go to the router and find the IP assigned to your RaspberryPi.
-We marked SSH.
-We Power Open.
We request Login. According Raspbian the user is "pi" and the password "raspberry" (Both without quotes). We insert the following commands:
Installation is complete. By Putty you can access the RaspberryPi. To run the command jaispi need to be root (sudo-s):
SLB2 - Utility to pack and unpack Updates.
Version V1.0
argument-i:
* Displays information about the container 1.500.000.PUP
argument-e:
* Extract the files in the folder container 1.501.000.PUP 1501.
argument-c:
* Creates the container containing the PS4UPDATE1.PUP NEW.PUP and PS4UPDATE2.PUP files with version 1.
Raspberry Pi2 and Pi1 -> Installer JaiSPI (Update) (via http://jaicrab.org/?&a=Raspberry2/Article/JAISPI)
Raspberry2/Article/JAISPI
Equipment needed
Connections
Installation
We expel the microSD and insert it into the Raspberry. Feed the USB cable. After two minutes run Putty.
(Both without quotes).
First expand the file system:
Select the first option. We accept and then give the option to restart.
JAISPI installation is as follows:
By Putty you can access the RaspberryPi.
Surely you want to set up a Samba server to share information with a Windows machine. That search SAMBA in RASPBERRY.
He also released SLB2 V1.0 which is a utility to pack and unpack the PlayStation 4 Update PUP files similar to the PS4UPDATE PUP scripts available in the spoiler below.
Spoiler
Download: jaispi (v1) / jaispi.txt (v1) / slb2.exe (v1) / slb2.txt (v1)
To quote, roughly translated:
Code:
## ###### ########
## # ## ## ## ### # ## ##
## ## ## ## ## # ## ## ## ##
## ## ## ## ## ## ## ## ## ########
## ## ####### ## ## #### ####### ## ##
## ## ## ## ## ## ## ## ## ## ## ## ##
###### ## ## ## ###### ## ## ## ## ########
Version V1.0
- Support MX25L25635.
- Reading.
- Programming.
- Full Erase.
Code:
-I / dev / spidevX.X Get ID from flash
-E / dev / Erase Entire Flash spidevX.X
File.bin-r / dev / spidevX.X Read Entire file to flash
File.bin-p / dev / spidevX.X Differences Only write blocks from file
File.bin-v / dev / spidevX.X Verify blocks with file
# Jaispi-i / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
-E: Clears all flash.
Average time 1min, 30sec.
# Jaispi-e / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Erasing blocks ...
Done!
-R: Makes a full dump of the flash.
Average time 35sec.
# Jaispi dump.bin-r / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Reading ...
0x02000000
Done!
-P: Write to flash only the changed sectors.
Average time 1min 30sec
# Jaispi-p Base.bin / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Starting ...
0x02000000 -> 8192 written Sectors
Done!
-V: Show the contents of the flash with the filename.
Average time 35sec.
# Jaispi-v Base.bin / dev/spidev0.0
JaiSpi v1.0
ID: 0xC22019 MX25L25635
Checking ...
0x02000000 -> 0 the industries Different
Done!
Installation Instructions
Materials Required
- 1x RaspberryPi (raspberrypi.org)
- 1x SD Memory
- 1x Integrated MX25L25635 (Main Memory PS4)
- Raspbian (downloads.raspberrypi.org/raspbian_latest)
- Win32 Disk Imager (sourceforge.net/projects/win32diskimager/files/latest/download)
- Putty (the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
Code:
MX25L25635
_______
1 - | * | -14
2 - | | -13
3 - | | -12
4 - | | -11
5 - | | -10
6 - | | -9
7 - | _____ | -8
RaspberryPi
2 4 6 8 10 12 14 16 18 20 22 24 26
*************
*************
1 3 5 7 9 11 13 15 17 19 21 23 25
(P1)
Code:
1 = No Connection
2 = vcc -> 17
3 = No Connection
4 = No Connection
5 = No Connection
6 = No Connection
7 = CS -> 24
8 = SO -> 21
9 = GND -> 25
10 = GND -> 25
11 = No Connection
12 = No Connection
13 = No Connection
14 = No Connection
15 = SI -> 19
16 = CLK -> 23
Run win32diskimage.
File-In image select the image downloaded and decompressed Raspbian.
-In Device select the drive where the SD memory is.
We Power-Write.
We insert the SD in Raspberry and fed by the USB cable. After two minutes, run Putty.
-In Host Name put: raspberrypi
-De not work well the previous step, go to the router and find the IP assigned to your RaspberryPi.
-We marked SSH.
-We Power Open.
We request Login. According Raspbian the user is "pi" and the password "raspberry" (Both without quotes). We insert the following commands:
Code:
sudo-s
cd / bin
wget http://jaicrab.org/Ps4/Tools/JAISPI/jaispi
chmod + x jaispi
echo "# blacklist spi-bcm2708"> / etc / modprobe.d / blacklist.conf raspi-
echo "blacklist i2c-bcm2708" >> / etc / modprobe.d / blacklist.conf raspi-
reboot
Code:
# Sudo-s
# Jaispi-i / dev/spidev0.0
Version V1.0
- Unpack.
- Package.
- Information.
Code:
-I UPDATE.PUP container Info
-E Extract files to UPDATE.PUP PATH PATH
NEW.PUP VERS-c file1 file2 ... Create container.MAX 10 files
Code:
> Slb2.exe-i 1.500.000.PUP
Container SLB2
0x133E0600 Size
Version 0x01
Param 0x00
Total block 0x02
file content:
PS4UPDATE1.PUP. From block to size 0x01 0xDAE7600
PS4UPDATE2.PUP. From block to size 0x6D73C 0x58F8D90
argument-e:
Code:
> SLB2-e 1.501.000.PUP 1501
PS4UPDATE1.PUP (0xDAE9210) ...
PS4UPDATE2.PUP (0x58FA130) ...
argument-c:
Code:
> Slb2.exe-c NEW.PUP 1 PS4UPDATE1.PUP PS4UPDATE2.PUP
PS4UPDATE1.PUP (0xDAE9210) ...
PS4UPDATE2.PUP (0x58FA130) ...
Raspberry Pi2 and Pi1 -> Installer JaiSPI (Update) (via http://jaicrab.org/?&a=Raspberry2/Article/JAISPI)
Raspberry2/Article/JAISPI
Equipment needed
- 1x RaspberryPi2
- 1x slot microSD
- 1x Integrated MX25L25635 (main memory PS4)
Connections
- MX25L25635
- RaspberryPi1
- RaspberryPi2
Code:
MX25L25635 RaspberryPi GPIO
----------------------------------------
1=No Connection
2=vcc -> 17
3=No Connection
4=No Connection
5=No Connection
6=No Connection
7=CS -> 24
8=SO -> 21
9=GND -> 25
10=GND -> 25
11=No Connection
12=No Connection
13=No Connection
14=No Connection
15=SI -> 19
16=CLK -> 23
- Run win32diskimage.
- In Image File select the downloaded image and MINIBIAN decompressed.
- In Device select the drive where the SD memory is.
- Accionamos Write.
Code:
dtparam = spi = on
- In Host Name put the IP address assigned by the router.
- Marcamos SSH.
- Accionamos Open.
(Both without quotes).
First expand the file system:
Code:
# Apt-get update
# Apt-get install-config raspi
# Raspi-config
JAISPI installation is as follows:
Code:
# cd / bin
#wget http://jaicrab.org/Ps4/Tools/JAISPI/jaispi
#chmod + x jaispi
Code:
-i #jaispi /dev/spidev0.0