Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
oresterosso75 authored Jun 25, 2024
1 parent 4c5e7d4 commit c81b7be
Show file tree
Hide file tree
Showing 14 changed files with 247 additions and 2 deletions.
108 changes: 106 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,106 @@
# Alpine_PPPwn-Luckfox
PPPwn-Luckfox_Alpine-Linux
# PPPwn-Luckfox

An alternative low-cost Linux board for exploits PS4 on V11.00 or below.<br>
Original work by theflow <a href=https://github.com/TheOfficialFloW/PPPwn>PPPwn</a>
and thanks to xfangfang <a href=https://github.com/xfangfang/PPPwn_cpp>PPPwn-CPP</a> for an executable re-write of PPPwn in C++ for Cortex-A7 which is compatible with RV1103/RV1106 rockchip
on the luckfox pico series and SiSTRo for his <a href=https://github.com/GoldHEN/GoldHEN>GoldHen</a>, and lastly <a href=https://github.com/stooged/PI-Pwn>Stooged</a> for his inspiration. <br>

## Note

- Currently support PS4 version: `9.00, 9.60, 10.00, 10.01, 11.00`
- The average PPPwned time is around `1min - 2min` sometimes it load under `1 minute`
- Using `pppwn` nightly build from xfangfang PPPwn_cpp <be>

## Tested Version

- [x] 9.00
- [x] 9.60
- [x] 10.00
- [x] 10.01
- [x] 11.00

## What it does

The goal here is to setup the Luckfox pico to automatically try and jailbreak the console, all you need to do is wait until the process completes. Once it PPPwned the process will stop. <br>

## Requirements

- An SD Card 8GB or above
- Luckfox Pico/Pro/Max/Plus/Mini
- Ethernet Cable
- USB Type-C for power to the board
- A USB drive with exFAT32 formatted (only use for the first time to load GoldHEN)

## Support Boards

- <b>Luckfox Pico Pro</b><br>
- <b>Luckfox Pico Max</b><br>
- <b>Luckfox Pico Plus</b><be>
- <b>Luckfox Pico Mini *</b><br>
- <b>Luckfox Pico *</b><br>

## Installation Software

1. Download <a href=https://drive.google.com/drive/folders/1sFUWjYpDDisf92q9EwP1Ia7lHgp9PaFS>Ubuntu OS </a> After you download, extract one of the zip files according to your Luckfox Pico models. <br>
2. Burn the image onto an SD Card. Download <a href=https://drive.google.com/file/d/1ALo4G7rEaF1GNhUHINoYHT_RGWGddzYw>SocToolKit</a> and unzip the burning tool.
3. Open the software and select your chip type

Luckfox Models | Chip Type
------------- | -------------
Luckfox Pico Pro/Max | RV1106
Luckfox Pico/Plus/Mini | RV1103

4. Steps to download firmware for Luckfox Pico on Windows: <br>
a. Choose the SD card tool.<br>
b. The SD card size will be displayed under USB Disk. If not displayed, reinsert the card reader.<br>
c. Select SD card booting.<br>
d. Import the boot file.(Note: The startup files do not include update.img)<br>
e. Click "Create SD Card".<br>

5. After done, eject and place the SD card into the Luckfox, power it using USB Type-C, and wait about `5 to 10 min` for luckfox to config the network, then connect it to the internet by plugging the LAN cable into the router <br>
6. Loggin to ubuntu:

log in using SSH: connect Luckfox to the internet via LAN cable, find its IP on your router, and log in via SSH on <a href=https://putty.org>PuTTY</a>

```sh
Login: pico
Password: luckfox
```

7. After you log in, run the following commands and follow the setup instruction

```sh
git clone https://github.com/0x1iii1ii/PPPwn-Luckfox.git
cd PPPwn-Luckfox
chmod +x install.sh
sudo ./install.sh
```

Once the Luckfox reboots pppwn will run automatically.<be>

## * Special Note for Luckfox Pico/Mini
Ignore this if you use Pro/Max/Plus version. For these 2 boards, there's no Ethernet port, to make it work you need to solder the LAN Port (RJ45) cable to it, either female or male is fine, and burn the Ubuntu image with `pico plus image` and follow the same step as other boards. See the wiring in the `Issues` tab.

## Installation Hardware

1. You simply need to connect the LAN cable from Luckfox Pico to the PS4 and power the Luckfox from the PS4 via a USB Type-C cable or other sources.

## On your PS4:<br>

- Go to `Settings` and then `Network`<br>
- Select `Set Up Internet connection` and choose `Use a LAN Cable`<br>
- Choose `Custom` setup and choose `PPPoE` for `IP Address Settings`<br>
- Enter `ppp` for `PPPoE User ID` and `PPPoE Password`<br>
- Choose `Automatic` for `DNS Settings` and `MTU Settings`<br>
- Choose `Do Not Use` for `Proxy Server`<br>

For GoldHen you need to place the goldhen.bin file onto the root of a usb drive and plug it into the console.<br>
Once goldhen has been loaded for the first time it will be copied to the consoles internal hdd and the usb is no longer required.<br>
To update goldhen just repeat the above process and the new version will be copied to the internal hdd<br>

## Upcoming alternative method using NAND flash

- no SD card
- boot faster
- execute pppwn faster
- higher success rate
141 changes: 141 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
#!/bin/bash

echo "______________________________ "
echo "\\______ \\______ \\______ \\__ _ ______ "
echo " | ___/| ___/| ___/\\ \\/ \\/ / \\ "
echo " | | | | | | \\ / | \\ "
echo " |____| |____| |____| \\/\\_/|___| / "
echo " \\/ "
echo " __ __ _____ "
echo "| | __ __ ____ | | ___/ ____\\_______ ___ "
echo "| | | | \\_/ ___\\| |/ /\\ __\\/ _ \\ \\/ / "
echo "| |_| | /\\ \\___| < | | ( <_> > < "
echo "|____/____/ \\_____>__|_ \\ |__| \\____/__/\\_ \\ "
echo ""

echo "by: https://github.com/0x1iii1ii/PPPwn-Luckfox"
echo ""
echo "credit to:"
echo "https://github.com/TheOfficialFloW/PPPwn"
echo "https://github.com/xfangfang/PPPwn_cpp"
echo ""
echo "Recompiled by Oresterosso TeamItalianModder"
echo ""

# Display the list of firmware versions
echo "Please select your PS4 firmware version:"
echo "a) 9.00"
echo "b) 9.60"
echo "c) 10.00"
echo "d) 10.01"
echo "e) 11.00"
echo ""
# Prompt the user for the selection
read -p "Enter your choice (a/b/c/d/e): " FW_CHOICE

# Set the firmware version based on the user's choice
declare -A fw_versions=(
[a]="900"
[b]="960"
[c]="1000"
[d]="1001"
[e]="1100"
)

FW_VERSION=${fw_versions[$FW_CHOICE]}

if [ -z "$FW_VERSION" ]; then
echo "Invalid choice. Exiting."
exit 1
fi

# Confirm the firmware version selection
echo "You have selected firmware version $FW_VERSION. Is this correct? (y/n)"
read -p "Enter your choice: " CONFIRMATION

if [[ $CONFIRMATION != "y" ]]; then
echo "Firmware selection not confirmed. Exiting."
exit 1
fi

# Define the paths for the stage1 and stage2 files based on the firmware version
STAGE1_FILE="stage1/$FW_VERSION/stage1.bin"
STAGE2_FILE="stage2/$FW_VERSION/stage2.bin"

# Create the execution script with the user inputs
cat <<EOL > /root/PPPwn/pppwn_script.sh
#!/bin/bash
# Define variables
FW_VERSION=$FW_VERSION
STAGE1_FILE="$STAGE1_FILE"
STAGE2_FILE="$STAGE2_FILE"
# Disable eth0
ifconfig eth0 down
# Wait a second
sleep 1
# Enable eth0
ifconfig eth0 up
# Wait a second
sleep 1
# Change to the directory containing the pppwn executable
cd /root/PPPwn/
# Execute the pppwn command with the desired options
./pppwn --interface eth0 --fw \$FW_VERSION --stage1 "\$STAGE1_FILE" --stage2 "\$STAGE2_FILE" -a -t 5 -nw -wap 2
# Check if the pppwn command was successful
if [ \$? -eq 0 ]; then
echo "pppwn execution completed successfully."
sleep 10
ifconfig eth0 down
sleep 5
sudo halt
else
echo "pppwn execution failed. Exiting script."
exit 1
fi
EOL

# Make the pppwn script executable
chmod +x /root/PPPwn/pppwn_script.sh
chmod +x /root/PPPwn/pppwn

# Create the pppwn OpenRC service file
cat <<EOL > /etc/init.d/pppwn
#!/sbin/openrc-run
description="PPPwn Script Service"
pidfile="/run/pppwn.pid"
depend() {
need localmount net
}
start() {
ebegin "Starting PPPwn Script Service"
/root/PPPwn/pppwn_script.sh &
eend $?
}
stop() {
ebegin "Stopping PPPwn Script Service"
pkill -f "/root/PPPwn/pppwn_script.sh"
eend $?
}
EOL

# Make the OpenRC service script executable
chmod +x /etc/init.d/pppwn

# Add the pppwn service to the default runlevel
rc-update add pppwn default

echo "Install completed! Rebooting..."

sudo reboot
Binary file added pppwn
Binary file not shown.
Binary file added stage1/1000/stage1.bin
Binary file not shown.
Binary file added stage1/1001/stage1.bin
Binary file not shown.
Binary file added stage1/1100/stage1.bin
Binary file not shown.
Binary file added stage1/900/stage1.bin
Binary file not shown.
Binary file added stage1/960/stage1.bin
Binary file not shown.
Binary file added stage2/1000/stage2.bin
Binary file not shown.
Binary file added stage2/1001/stage2.bin
Binary file not shown.
Binary file added stage2/1100/stage2.bin
Binary file not shown.
Binary file added stage2/900/stage2.bin
Binary file not shown.
Binary file added stage2/960/stage2.bin
Binary file not shown.
Binary file added usb drive/goldhen.bin
Binary file not shown.

0 comments on commit c81b7be

Please sign in to comment.