Files

67 lines
2.9 KiB
YAML

name: release
on:
push:
tags:
- 'v*'
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v5
- name: checkout ps4-payload-sdk
uses: actions/checkout@v5
with:
repository: ps4-payload-dev/sdk
path: sdk
fetch-depth: 0 # a raw SHA is not a branch/tag; checkout the repo then pin it
- name: pin ps4-payload-sdk
run: git -C sdk checkout 573b4a0 # Add 14.00 offsets; includes 959e4ed "Add 13.52 offsets"
- name: install llvm
run: sudo apt-get update -qq && sudo apt-get install -qy clang-18 lld-18 llvm-18
- name: build SDK from source
run: |
make -C sdk DESTDIR="$HOME/ps4-payload-sdk" clean install
- name: gate SDK firmware support
run: |
grep -q "case 0x1352:" sdk/crt/patch.c || {
echo "FAIL: SDK lacks 13.52 offsets; payload cannot boot on 13.52"; exit 1; }
echo "SDK has 13.52 offsets"
- name: build SDK daemon payload
run: |
export PS4_PAYLOAD_SDK="$HOME/ps4-payload-sdk"
export PS4_SDK_SRC="$GITHUB_WORKSPACE/sdk"
./scripts/build_sdk.sh
- name: gate daemon-world linkage only
run: |
export LLVM_READELF="$(command -v llvm-readelf-18 || command -v llvm-readelf)"
NEEDED=$("$LLVM_READELF" -d build-sdk/orbisrpc_sdk.elf | grep NEEDED | sed 's/.*\[//;s/\]//')
echo "$NEEDED"
echo "$NEEDED" | grep -q libkernel_web.sprx || { echo "missing libkernel_web"; exit 1; }
echo "$NEEDED" | grep -q libSceLibcInternal.sprx || { echo "missing libSceLibcInternal"; exit 1; }
echo "$NEEDED" | grep -q libSceNet.sprx || { echo "missing libSceNet"; exit 1; }
echo "$NEEDED" | grep -q libSceSystemService.sprx || { echo "missing libSceSystemService (foreground detection)"; exit 1; }
if echo "$NEEDED" | grep -q 'libkernel\.so'; then echo "FORBIDDEN: app-world libkernel.so"; exit 1; fi
echo "linkage OK"
- name: attach ELF to release
uses: softprops/action-gh-release@v3
with:
files: build-sdk/orbisrpc_sdk.elf
generate_release_notes: true
body: |
## Install
Test build `.elf` — no PKG yet.
1. Delete the `/data/orbisRPC` folder from your PS4 first.
2. Put the `.elf` at `/data/payloads/` and launch it from the payload list.
3. First run creates the config, then waits (no token yet).
3. Open `/data/orbisRPC/config.json`, put your token in the `"token": "SET_ME"` slot.
4. Re-run the payload. Launch a game, watch Discord.
Firmware 9.00 through 13.52. Issues → Discord: https://discord.gg/BWEyfcT7ZQ (`testers-chat`).