BFpilot / BS5FileManager
BFpilot ist ein kleines PS5-Payload, das dir einen browserbasierten Dateimanager auf Port 5905 zur Verfügung stellt.
Es ist bewusst einfach gehalten: kein PKG-Installer, kein FTP-Dienst, keine Mounting-Tools und kein zusätzliches Payload-Bundle. Das Payload startet einen Webserver, aktualisiert eine Launcher-Kachel auf dem PS5-Startbildschirm und lässt die PS5 Dateivorgänge lokal ausführen.
Was es macht
- Führt eine Dateimanager-Web-Benutzeroberfläche unter http://<PS5_IP>:5905/ aus.
- Installiert oder aktualisiert eine BFpilot-Launcher-Kachel auf dem PS5-Startbildschirm.
- Verwendet ausschließlich ein dunkles Design (Dark UI).
- Ermöglicht das Durchsuchen, Hochladen, Herunterladen, Kopieren, Verschieben, Umbenennen, Erstellen von Ordnern und Löschen.
- Zeigt den Fortschritt für Kopier-, Verschiebe-, Lösch- und Browser-Upload-Vorgänge an.
- Zeigt während der Arbeit Größe, Geschwindigkeit, verbleibende Zeit (ETA), Elementanzahl sowie den aktuellen Pfad bzw. die Datei an.
- Berechnet die Ordnergröße nur, wenn du einen Ordner auswählst.
- Erstellt fehlende Zielordner für Kopiervorgänge/Verschiebevorgänge automatisch.
- Behält die Standard-Zielverknüpfungen unter /data/homebrew und /mnt/usb0 bei.
Changelog
v0.3.5
This release contains structural performance, memory efficiency, and usability optimizations.
heavily tested on 11.6 but didnt have chance to test on other firmwares.
indexing and files search is working mostly but keep in mind a lot of things are encrypted and are not visible so they cant be indexed.
treat this as a stablish release with all features, its fast and its working fine, but i stacked a lot of features now so any feedback would be appreciated, if you want lighter version that only has file manager use 3.0.
Key Features
- Graceful Exit & Re-injection:
- Implemented loopback TCP wakeup to unblock the socket accept() loop instantly during shutdown.
- Added graceful exit flags to terminate background archive daemon and search crawler threads cleanly.
- Web port 5905 and loader port 9021 release instantly on exit, allowing payload re-injection without console reboots.
- Fast Multi-Threaded Search Indexing:
- Added a work-stealing concurrent crawler thread pool for filesystem indexing.
- Search matches are resolved in 0ms with dynamic path/filename highlighting.
- Integrated Archive Extraction:
- Integrated RAR, 7z (including split .7z.001 volumes), and ZIP extraction directly in the main ELF.
- Full support for encrypted/passworded ZIP, RAR, and 7z archives with clean error handling and partial folder cleanups.
- Premium Web UI & Virtual Scrolling:
- Implemented virtual scrolling row recycling to prevent the PS5 Web Browser from running out of memory (OOM) on massive directories (10,000+ files).
- Storage & Network Optimizations:
- Uses FreeBSD sendfile syscall for zero-copy file downloads.
- Boosted socket send/receive buffers to 2MB and enabled TCP_NODELAY to eliminate latency.
- Bypasses heavy lstat calls during crawls to maximize SSD indexing speed.
v0.3.1 (Test Build 4 - 9)
High-level changes since v0.3:
- Adds standalone archive extraction support inside bfpilot.elf; normal archive extraction no longer requires injecting a separate worker ELF.
- Adds archive handling for ZIP, RAR, 7z, and common split archive flows, including password prompting for encrypted archives.
- Keeps the launcher installer as a separate payload for firmware compatibility.
- Includes UI polish around storage display, plugged drive handling, and persistent custom shortcuts.
- Keeps diagnostics and transfer instrumentation available for troubleshooting.
- Archive extraction is back out of the main payload. bfpilot.elf is
file-manager-only again. - RAR and 7z extraction were made conservative for PS5 stability.
- Docs and diagnostics were aligned to the worker-based archive flow.
- Build and import checks passed.
- bfpilot.elf now includes integrated archive extraction for normal use without requiring a second archive-worker payload injection.
- bfpilot-archive-worker.elf remains available as a fallback and diagnostic asset.
- Archive extraction support and diagnostics were updated for RAR, 7z, split 7z, ZIP stored/deflate/ZIP64/ZipCrypto, password handling, progress/status metrics, and conservative runtime behavior.
- Storage reporting now distinguishes usable/raw/reserved bytes, and the UI labels usable free space more clearly.
- Added a read-only PS5 storage audit script for investigating mismatched storage accounting.
- Launcher installation remains isolated in bfpilot-launcher-installer.elf.
- Keeps archive extraction integrated in bfpilot.elf; no archive worker injection is required for normal extraction.
- Adds RAR output buffering and expanded archive timing telemetry for bottleneck diagnosis.
- Keeps RAR extraction clamped to 1 effective thread for stability after the large-archive crash investigation.
- Adds scripts/ps5_archive_perf.py for controlled BFpilot-owned archive performance tests and cleanup.
- Updates diagnostics/docs and removes machine-specific LAN IP examples from release docs/scripts.
- Adds indexed search to the file manager UI.
- Adds Index All for user/storage roots.
- Adds Index System for broader system-file crawling.
- Adds search status, cancel, stale tracking, and absolute-path search results.
- Keeps launcher/AppInst imports isolated from the main payload.
- Includes current archive extraction performance work in this build.
Artifacts:
- bfpilot.elf - main compatible BFpilot file manager payload.
- bfpilot-launcher-installer.elf - separate launcher tile installer payload.
- bfpilot-archive-worker.elf - standalone archive worker payload kept for diagnostics/manual testing.
Validation:
- PS5_PAYLOAD_SDK=/home/blurf/PS5/ps5-payload-sdk make all passed.
- PS5_PAYLOAD_SDK=/home/blurf/PS5/ps5-payload-sdk make inspect-imports passed.
Checksums:
- bfpilot.elf: 9c59141cdf0c9b0c8c5c912c207ac055986833f0232d2e6d0ac348bfdebd60f3
- bfpilot-launcher-installer.elf: fa26790beabdaced2c90858dab7183829c3c2b3b6a43b7638fab524fa7f1d056
- bfpilot-archive-worker.elf: 507c06abc41306fc366d1dc007796d67e4dd1c7804373b8100bd147324ab4e1b
Known limitations:
- ZIP AES and some uncommon multi-volume ZIP variants remain limited.
- Archive behavior should still be tested on the target PS5 with real user archives before treating this as final stable behavior.
v0.3 ist eine stabile Version, die Kompatibilitäts- und UI-Änderungen mit sich bringt. (getestet auf 11.6 und 12.6)
Highlights:
- Stabile, reine Dateimanager-Version (bfpilot.elf) für eine breite Firmware-Kompatibilität.
- Separater bfpilot-launcher-installer.elf für die PS5-Startbildschirm-Kachel.
- Übersichtlichere Web-UI mit den Bereichen Daten/Homebrew/Mounts/User/Root, Anzeige von gemounteten Laufwerken nur bei Verfügbarkeit und einer kompakten Speicherübersicht.
- Dauerhafte benutzerdefinierte Verknüpfungen mit Steuerelementen zum Hinzufügen, Entfernen und Umbenennen.
- Transferdiagnose mit Zeitmessung, Durchsatz, Byte-Zahl, Geräte-IDs und Statistiken zum letzten Upload.
- Schnellerer PS5-seitiger Kopierpfad durch einen größeren Transferpuffer.
- Lokale Diagnose und ein sicherer Funktionstest („Smoke Test“) für Upload, Download, Kopieren, Verschieben, Umbenennen und Bereinigen unter /data/test.
- Repository-Bereinigung: Alte Debug-/Full-/Probe-Payloads und generierte Artefakte wurden aus der Release-Oberfläche entfernt.
SHA256:
- bfpilot.elf: 7aa63351a21bf7a663e95dee78409f9cd06fac29fc329fae902652399a3ffe46
- bfpilot-launcher-installer.elf: 46645d64c4e0f087ceb3339d4a70b359c03f5360f565a22109c292cf0a27a8d9
v0.2.1 Beta3 Pre-Release
Dies ist ein Pre-Release-Build zur Kompatibilitätsprüfung, kein finales, stabiles Release.
Empfohlener erster Payload:
- bfpilot.elf: Dateimanager mit maximaler Kompatibilität, ohne AppInstUtil/Launcher-Installer-Importe.
Debug-/Test-Payloads:
- bfpilot-debug.elf: Dateimanager mit zusätzlichen Boot-/Debug-Benachrichtigungen.
- bfpilot-full.elf: Experiment mit dynamischem Launcher plus Dateimanager.
- bfpilot-launcher-installer.elf: Direkter AppInstUtil Launcher-Installer-Test, hauptsächlich für Firmwares/Loader, die AppInst-Importe akzeptieren.
- bfpilot-launcher-installer-safe.elf: Diagnose für die Laufzeit-Auflösung von AppInst.
- tests/*.elf: Kleine Probes für Boot/HTTP/Benachrichtigungen/AppInst.
Änderungen in diesem Test-Build:
- Hält den Haupt-Dateimanager Firmware-unabhängig (leichtgewichtig).
- Fügt Boot-Marker-Diagnose und Import-Überprüfung hinzu.
- Behebt den Fehler, bei dem der Fortschrittsbalken bei Mehrfachauswahl verschwand, während das zweite Element noch verschoben wurde.
- Stellt geräteübergreifende Kopier-/Verschiebevorgänge in .bfpilot-part-* bereit, bevor sie abgeschlossen werden.
- Verweigert das Überschreiben/Zusammenführen von Zielen während des Kopierens/Verschiebens.
- Bereinigt fehlgeschlagene/abgebrochene Staging-Ordner.
Validierung:
- Erstellt mit PS5_PAYLOAD_SDK=C:/Users/Blurf/ps5-payload-sdk.
- make inspect-imports erfolgreich durchlaufen.
bfpilot.elf und bfpilot-debug.elf haben keine direkten AppInstUtil-Importe.
v0.2.1 Beta2 Pre-Release
Firmware-Kompatibilitäts-Test-Build. Dies ist ein Pre-Release-Test-Build, kein finales, stabiles Release.
Änderungen seit v0.2.1 Beta1:
- Der „Full“-Build verlinkt nun libSceAppInstUtil normal.
- Der „Full“-Build ruft sceAppInstUtilInitialize() und sceAppInstUtilAppInstallAll(NULL) über SDK-Stubs auf.
- Nur sceAppInstUtilAppInstallTitleDir wird dynamisch über den NID Wudg3Xe3heE aufgelöst.
- Die Launcher-Installation erfolgt nach dem Start des Webservers; Fehler sind dabei nicht fatal.
- Die Benachrichtigung bei Launcher-Fehlern lautet nun: „BFpilot launcher skipped / Use https://psxtools.de/“.
- /api/diag berichtet nun über: core_server_started, launcher_attempted, appinst_init_rc, title_dir_resolved, install_title_rc, install_all_rc, uninstall_rc und launcher_final_state.
Empfohlene Testreihenfolge:
- Sende bfpilot-core.elf an den elfldr-Port 9021 und öffne http://PS5_IP:5905/.
- Wenn der „Core“-Modus funktioniert, sende bfpilot-full.elf und nutze weiterhin http://PS5_IP:5905/, selbst wenn die Launcher-Installation übersprungen wurde.
- Speichere /api/diag und /data/BFpilot/log.txt für jeden Launcher-Fehler, der auftritt.
SHA256-Prüfsummen:
- bfpilot-core.elf: 4375479705F599147533E3EC667FB18BF03FE9DE17EB29FB54C5998078D429E0
- bfpilot-full.elf: C5B66745332A4B353B0B32ABD0EC408B179E7B6A7D22BD9C0DB4BE7250633FC7
v0.2.1 Beta1 Pre-Release
BFpilot v0.2.1 Firmware-Kompatibilitätstest-Build. Dies ist ein Pre-Release/Test-Build, kein finales, stabiles Release.
Empfohlene Testreihenfolge:
- Teste zuerst die bfpilot-core.elf auf jeder Firmware bzw. mit jedem Loader.
- Öffne http://PS5_IP:5905/ und überprüfe /api/status sowie /api/diag.
- Teste die bfpilot-full.elf erst, wenn der Core-Modus einwandfrei funktioniert.
- Betrachte einen Installationsfehler des Launchers als unkritisch, solange der Webserver weiterhin läuft.
Das vollständige Testprotokoll findest du unter docs/FIRMWARE_TESTING.md.
v0.2.0
Diese Version wurde bisher nur für die Firmware 11.60 bestätigt. Allen, die eine neuere oder ältere Firmware nutzen, empfehle ich, sich die neuesten Pre-Releases anzusehen.
In diesem Build hinzugefügt und behoben:
- Umbenennung des Projekts, der Web-Benutzeroberfläche (UI), der PS5-Launcher-Kachel, der Benachrichtigungen und der Release-Binärdatei von BS5FileManager zu BFpilot.
- Entfernt ältere BSFM00001 / BS5F00001 Launcher-Kacheln während der Aktualisierung.
- Behält die Kompatibilität für die Neu-Injektion (Reinjection Handoff) mit älteren BS5FileManager-Listenern auf Port 5905 bei.
- Upload-Fortschritt in der Web-UI zeigt jetzt die gesendete Datenmenge, Geschwindigkeit, geschätzte Restzeit (ETA), Dateianzahl und den aktuellen Dateinamen an.
- Fehlende Zielordner werden automatisch erstellt.
- Das Injizieren des Payloads aktualisiert/installiert die PS5-Launcher-Kachel, ohne den Browser automatisch zu öffnen.
- Das Abbrechen von Vorgängen ist während Scan-, Kopier-, Verschiebe-, Bereinigungs- und Löschvorgängen jetzt sicherer.
- Jetzt im Dark-Mode.
Injektions-/Deployment-Port: 9021
Web-UI-Port: 5905
Launcher Title ID: BFPL00001
v0.1.1
Frühes BS5FileManager-Build, fokussiert auf einen kleinen, stabilen Datei-Manager für den PS5-Browser. Änderungen in diesem korrigierten 0.1.1-Build:
- Aktualisiert und registriert die PS5-Launcher-Kachel auf dem Homescreen bei jeder Injektion neu.
- Speichert den Status des Launchers unter /data/BS5fm.
- Fügt einen sicheren „Reinjection-Handoff“ hinzu: Inaktive, alte Instanzen werden gestoppt, laufende Dateiaufträge werden nicht unterbrochen.
- Behält die Web-UI auf Port 5905 und den Injektions-/Deployment-Port 9021 bei.
- Zeigt Kopier-/Verschiebe-/Löschgeschwindigkeit in MB/s sowie die geschätzte Restzeit (ETA) basierend auf server-seitigen Job-Zählern an.
v0.1.0 Frühes, aber stabiles BS5FileManager-Build. Dies ist die erste öffentliche Veröffentlichung des leichtgewichtigen PS5-Browser-Datei-Manager-Payloads. Highlights:
- Web-Datei-Manager auf Port 5905.
- PS5-Launcher-Kachel auf dem Homescreen.
- Kopieren, Verschieben, Löschen, Umbenennen, Ordner erstellen (mkdir), Hochladen und Herunterladen.
- Ordnergrößen per Klick berechnen.
- Injiziere bs5filemanager.elf über Port 9021 und öffne anschließend `
