Files
ps5debug-NG/build.sh
T
OpenSourcereR-dev 9c649a44dc Initial public release: ps5debug-NG v1.2.2
PS5 debugger payload, inspired by Ctn's ps5debug 1.0b5 and
wire-compatible with it. Runs the wire-protocol server inside
SceShellCore via an umtx-loaded installer that injects the embedded
debugger ELF.

Features: process scan/RPC/ELF-inject, on-console scan, full
debugger (breakpoints, watchpoints, single-step, regs/FP/DR access),
kernel R/W, server-side Zydis disassembly, on-console Keystone
assembler (0xBDAA0024), foreground-app metadata (0xBDDD0006),
server-side RBP stack walk (CMD_PROC_READ_STACK), klog forwarder
(TCP 3232), rest-mode survival and a lot more.

Supports FW families 3.x / 4.0 / 4.x (incl. 4.51) / 5.x / 6.x /
7.x / 7.5x / 8.x via the kpatch routine in installer/source/main.c.

GPL-3.0-only.
2026-05-14 13:44:35 +07:00

55 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-3.0-only
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
SDK_SRC="$SCRIPT_DIR/ps5-payload-sdk"
SDK_INSTALL="$SDK_SRC/install"
ARTIFACT="$SCRIPT_DIR/ps5debug-NG.elf"
clean_build() {
echo "==> cleaning"
(cd debugger && make clean) || true
(cd installer && make clean) || true
(cd "$SDK_SRC" && make clean) || true
rm -rf "$SDK_INSTALL" "$ARTIFACT"
}
build_sdk() {
if [ ! -f "$SDK_INSTALL/toolchain/prospero.mk" ]; then
echo "==> building SDK (one-time, ~30s)"
mkdir -p "$SDK_INSTALL"
make -C "$SDK_SRC" DESTDIR="$SDK_INSTALL" -j"$(nproc)" install
else
echo "==> SDK already built at $SDK_INSTALL"
fi
}
build_debugger() {
echo "==> building debugger"
make -C debugger
}
build_installer() {
echo "==> building installer (embeds debugger)"
make -C installer
}
publish_artifact() {
cp installer/build/ps5debug-NG.elf "$ARTIFACT"
echo "==> ps5debug-NG.elf ready ($(stat -c %s "$ARTIFACT") bytes)"
}
if [ "${1:-}" = "clean" ]; then
clean_build
exit 0
fi
build_sdk
build_debugger
build_installer
publish_artifact