diff --git a/build_setup.txt b/build_setup.txt deleted file mode 100644 index 20ec9fe..0000000 --- a/build_setup.txt +++ /dev/null @@ -1,118 +0,0 @@ -orbisRPC - BUILD SETUP -===================== - -Working build command (copy/paste): - - cd path to project - PS4_SDK_SRC=$HOME/ps4-payload-sdk-src \ - PS4_PAYLOAD_SDK=$HOME/ps4-payload-sdk \ - ./scripts/build_sdk.sh - -Output: build-sdk/orbisrpc_sdk.elf (~2,237,856 bytes) - -Both env vars matter. PS4_PAYLOAD_SDK says where the compiler is; -PS4_SDK_SRC enables the 13.52 firmware gate described below. - - -ONE-TIME SDK SETUP ------------------- - -The ps4-payload-dev SDK must be built from git, NOT from the release ZIP. -Run this once per machine: - - cd path to project - ./scripts/build_sdk_from_source.sh - -That clones to ~/ps4-payload-sdk-src, pins commit 573b4a0, and installs to -~/ps4-payload-sdk. - -WHY NOT THE RELEASE ZIP: - - The SDK's crt/patch.c holds a per-firmware table and __patch_init() - returns an error for any firmware not in it. crt/crt.c propagates that - out of _start(), which calls payload_terminate() and never reaches - main(). Silent death - no log line, nothing to diagnose. - - Release v0.9 (2026-05-12) lists 13.50 but not 13.52. The 13.52 offsets - landed on master in 959e4ed (2026-06-25) and have never shipped in a - release. A payload linked against the ZIP cannot boot on 13.52. - -If the SDK is missing: - - ./scripts/build_sdk.sh -> "FAIL: .../orbis-clang not found" - -Both scripts verify the SDK source supports 13.52 before building, so a -too-old SDK fails at build time with a clear message instead of producing a -payload that dies on the console. - -To move to a newer SDK commit later: - - PS4_SDK_REF= ./scripts/build_sdk_from_source.sh - - -REQUIREMENTS ------------- - - WSL2 (all commands below run in WSL, not PowerShell) - git - clang-18 + lld-18 (llvm-config-18 or llvm-config must be on PATH) - -Ubuntu packages: - - sudo apt install git clang-18 lld llvm-18 - -The SDK also expects an llvm shim on PATH. build_sdk.sh adds $HOME/llvmshim -itself; if your setup differs, that line in scripts/build_sdk.sh is where to -look. - -Repo location matters: scripts assume you run from the repo root, because -they reference relative paths like orbisrpc/ and third_party/. - - -VERIFYING THE BUILD -------------------- - - ls -la build-sdk/orbisrpc_sdk.elf - -A good build prints no FAIL lines and ends with the elf listing. Two lines -are normal and not errors: - - "note: PS4_SDK_SRC not set, skipping the 13.52 SDK firmware gate." - (only appears if you omitted PS4_SDK_SRC - always pass it) - -To rebuild from scratch: - - rm -rf build-sdk && ./scripts/build_sdk.sh - - -HOST TESTS (optional, fast - no console needed) - - make -C tests all - ./tests/test_utils - -Known pre-existing failure, NOT a regression: - - test_appdb: Assertion `rc == SQLITE_OK' failed - -The system sqlite3 library on the host differs from the bundled amalgamation -(rc=14). Tests registered before test_appdb in main() do run and pass. - - -SENDING IT TO THE CONSOLE -------------------------- - -GoldHEN BinLoader on port 9020. Arm it in the exploit host menu, then send -the payload in ONE connection. Never probe the port first - any empty connect -burns the arm and the real payload then arrives at a dead listener: - -use netcat e.g nc console_ip 9090 < payload.elf - -Then confirm it ran - within ~20 seconds: - - curl -s ftp://:2121/data/orbisRPC/log.txt - -Expected first line: "orbisRPC payload boot" - -No log file at all means the payload never executed. Do not debug the daemon -until you see that line. See docs/injecting.md for elfldr (port 9021) and -other methods.