Remote PKG Installer NextGen
A modern rewrite of flatz's ps4_remote_pkg_installer for jailbroken PS4 consoles, built with the OpenOrbis PS4 Toolchain.
Install PKG packages remotely over your network from any device — no USB drives — with a live on-screen dashboard: active transfers with real-time speed and progress, pause/resume/stop/re-transfer controls per item, storage status, and an activity log.
Highlights
- Live dashboard UI (dark tech theme) — no more static splash screen
- Full pkg info on every card — icon, title, version, content id, type, size
- Per-item controls — pause, resume, stop, and re-transfer each transfer
- Stability first — works with or without a network connection; the server starts automatically once a link is available, and the app never crashes offline
- Faster transfers — adaptive multi-segment HTTP downloads for staged installs
- Legacy API compatible — the original Web API is preserved 1:1, so existing tools (remote_installer, web frontends, scripts) keep working
- New v2 API — a cleaner REST interface with job management, progress, and logs
- Community friendly — plain C11, one Makefile, CI builds every push
Requirements
- PS4 with HEN (or any kernel payload providing fPKG support +
/datamount), same as the original application - A device on the same network to send commands (PC, phone, ...)
Building
Requires the OpenOrbis PS4 Toolchain
(OO_PS4_TOOLCHAIN env var), clang, lld, and python3.
export OO_PS4_TOOLCHAIN=/path/to/OpenOrbis/PS4Toolchain
make
The final package is IV0000-RPIN00001_00-RPINEXTGEN000000.pkg.
Every push and pull request is built by CI (see .github/workflows/build.yml);
grab the .pkg from the workflow artifacts.
Usage
- Install the package on your PS4 (HEN must be active).
- Launch it — the dashboard shows the console's IP, storage and transfers.
- Send installs from any device on the same network (see below). The app works with or without a network link: the server starts automatically once a link is available, and the app never exits on its own.
- Transfers run through the system's BGFT download manager — they continue even after the app closes.
On-screen controls
| Button | Action |
|---|---|
| D-pad up/down | Select transfer |
| X (cross) | Pause / resume the selected transfer |
| O (circle) | Stop the selected transfer |
| [ ] (square) | Re-transfer (re-run a completed/failed/stopped transfer) |
| ▲ (triangle) | Expand full pkg details (icon, version, title id, source URL) |
| OPTIONS | Exit |
Quick start (from a PC)
# Check the server
curl http://<PS4-IP>:12800/api/v2/system
# Install a package (URL served by any web server on your network)
curl -v 'http://<PS4-IP>:12800/api/install' \
--data '{"type":"direct","packages":["http://<PC-IP>:8080/UP0001-CUSA09311_00-GAME.pkg"]}'
# Watch progress (speed, percent, ETA)
curl 'http://<PS4-IP>:12800/api/v2/jobs'
# Pause / resume / stop a job
curl 'http://<PS4-IP>:12800/api/v2/jobs/1/pause' -X POST
curl 'http://<PS4-IP>:12800/api/v2/jobs/1/resume' -X POST
curl 'http://<PS4-IP>:12800/api/v2/jobs/1/stop' -X POST
The full API reference (legacy + v2) is documented in docs/API.md.
Roadmap
- Project skeleton, build system, CI
- Core services (logging, network monitor, storage info, pkg/SFO parsing, HTTP client)
- Transfer engine (BGFT wrappers, task manager, adaptive multi-segment prefetch)
- HTTP server (legacy API 1:1, v2 API, /static/ + accelerated piece proxy)
- Live on-screen dashboard (status strip, transfer cards, activity log, controller controls)
- Docs & polish (API reference)
Development
Host unit tests cover the portable core (util/SFO/pkg parsing) and run on every push:
make test
Fixtures in tests/data/ are generated from a real build (param.sfo and
the first 0x3000 bytes of a real package header).
Regenerate the embedded bitmap font after changing the generator:
python3 tools/gen_font.py # requires Pillow
Project layout:
src/ application code (C11, no framework)
thirdparty/ vendored cJSON + dbglogger (MIT), custom libSceBgft stub
tools/ asset/font generators, host unit tests
tests/data/ unit test fixtures
docs/API.md HTTP API reference (legacy + v2)
Credits
- flatz — the original Remote Package Installer
- OpenOrbis Team — the OpenOrbis PS4 Toolchain and SDL2 port
- DaveGamble — cJSON (MIT)
- bucanero — dbglogger (MIT)
License
GPL-3.0 — see LICENSE.