ItsBlurf/BFpilot

GitHub: ItsBlurf/BFpilot

BFpilot 是一个基于浏览器的 PS5 轻量级文件管理 payload,提供文件浏览、传输、压缩包解压等功能,解决了在 PS5 上通过 Web UI 管理本地文件的需求。

Stars: 36 | Forks: 4

# BFpilot BFpilot 是一个轻量级的 PS5 payload,它通过浏览器提供文件管理器服务,访问地址为: `http://:5905/`。 该项目分为三个 payload: - `bfpilot.elf` - 带有集成解压功能的主文件管理器 payload。 - `bfpilot-launcher-installer.elf` - 可选的主屏幕图标安装程序。 - `bfpilot-archive-worker.elf` - 后备诊断解压工具。 主 payload 保持以兼容性为核心。它不导入启动器安装程序库,不安装图标,并且可以在不触及 PS5 应用安装服务的情况下使用。 ## 功能 - 通过 Web 浏览器浏览本地 PS5 路径。 - 上传和下载文件。 - 通过 Web UI 复制、移动、重命名、创建文件夹和删除。 - 支持带进度显示和取消功能的 PS5 端复制和移动操作。 - 传输计时、吞吐量和设备诊断。 - 从主文件管理器 ELF 中提取 RAR、7z、分卷 7z 和 ZIP 压缩包。 - 简洁的位置侧边栏,包含 Root、Homebrew、Mounts、User、Data、已挂载驱动器和自定义快捷方式。 - 挂载的 USB/ext 驱动器仅在实际存在时显示。 - Data 和已挂载驱动器的顶部存储摘要。 - 持久化的自定义快捷方式,提供添加、重命名和删除控件。 - 可选的启动器图标,可打开 `http://127.0.0.1:5905/`。 ## 下载 使用发布资产: - `bfpilot.elf` 用于文件管理和压缩包解压。 - `bfpilot-archive-worker.elf` 仅在需要 PS5 主屏幕图标时使用。 - `bfpilot-archive-worker.elf` 仅作为后备诊断解压工具。 首先运行 `bfpilot.elf`。它提供 Web UI 并启动集成的压缩包守护进程;压缩包解压不需要注入其他 payload。仅在需要图标时运行启动器安装程序 payload。 ## 用法 将文件管理器 payload 注入到你的加载器中,通常端口为 `9021`: ``` python3 payload_sender.py 9021 bfpilot.elf ``` 打开: ``` http://:5905/ ``` 健康检查: ``` http://:5905/api/status http://:5905/api/diag http://:5905/api/fs/places ``` 安装或刷新启动器图标: ``` python3 payload_sender.py 9021 bfpilot-launcher-installer.elf ``` 图标打开: ``` http://127.0.0.1:5905/ ``` ## 压缩包解压 压缩包解压已集成到 `bfpilot.elf` 中。文件管理器准备作业,启动轻量级压缩包守护进程,并通过 Web API 报告进度。`bfpilot-archive-worker.elf` 作为相同压缩包引擎的后备诊断构建保留。 在 Web UI 中: 1. 选择一个压缩包文件。 2. 点击 `Extract`。 3. 在 `/data` 或已挂载的 USB/ext 驱动器下选择目标位置。 4. 如果压缩包需要,请输入密码。 5. 观察进度面板。 UI 轮询: ``` http://:5905/api/fs/archive/status ``` 目前支持: - RAR,包括带密码的压缩包以及普通多卷 RAR 集(当所有分卷都与第一个卷并存时)。 - 7z、带密码的 7z 以及 `.7z.001` 分卷集。 - ZIP stored/deflate 条目、ZIP64 大小/偏移量以及传统的 ZipCrypto 密码。 默认情况下,解压使用保守的压缩包引擎线程数。压缩包 API 接受 `threads=0` 以进行自动调整。7z 自动模式目前上限为 2 个有效线程;RAR 被限制为 1 个有效线程,直到在 `perf5` 崩溃调查之后证明大压缩包在 PS5 上的稳定性。状态响应包括 `threads`、`effectiveThreads`、`threadMode`、经过时间、平均 MB/s、输入/输出计时计数器以及尽力而为的压缩包优先级字段。RAR 状态还报告线程池计数器,例如 `rarMtThreadedBlocks` 和 `rarMtLargeBlocks` 用于诊断,但目前正常的 RAR 解压应报告 `effectiveThreads=1`。 已知限制: - ZIP AES 加密报告不受支持。 - 尚未实现分卷 ZIP。 - 解压开始后,无法从浏览器中取消压缩包作业。 - 解压失败会保留 BFpilot 拥有的暂存文件夹以供检查,而不是删除证据。 ## 构建 将 `PS5_PAYLOAD_SDK` 设置为你的 PS5 payload SDK 路径: ``` export PS5_PAYLOAD_SDK=/path/to/ps5-payload-sdk make clean all make inspect-imports ``` 预期输出: ``` bfpilot.elf bfpilot-launcher-installer.elf bfpilot-archive-worker.elf ``` `make inspect-imports` 验证文件管理器 payload 不包含 launcher/AppInstUtil 导入,并且隔离的安装程序包含所需的安装程序导入。文件管理器可能包含压缩包引擎代码,但它必须保持无启动器状态。 ## 诊断 本地只读诊断: ``` PS5_IP= BF_WEB_PORT=5905 make ps5-diag ``` 针对 Settings/BFpilot 可用空间不匹配的只读存储核算审计: ``` PS5_IP= BF_WEB_PORT=5905 make ps5-storage-audit PS5_IP= BF_WEB_PORT=5905 \ python3 scripts/ps5_storage_audit.py --deep --settings-free-gb 18 ``` 使用 `/data/test` 下仅由 BFpilot 创建的文件对文件 API 进行冒烟测试: ``` PS5_IP= BF_WEB_PORT=5905 \ BF_ALLOW_PS5_WRITE=1 \ make ps5-smoke ``` 可选的基准测试模式默认写入到 `/data/test/bfpilot-bench` 下: ``` PS5_IP= BF_WEB_PORT=5905 \ BF_ALLOW_PS5_WRITE=1 \ BF_ALLOWED_REMOTE_ROOTS=/data/test/bfpilot-bench \ python3 scripts/ps5_diag.py --bench ``` 压缩包性能测试工具: ``` BF_ALLOW_PS5_WRITE=1 \ BF_ARCHIVE_LOCAL=/path/to/test.rar \ BF_ARCHIVE_PASSWORD='optional-password' \ BF_ARCHIVE_THREADS=0,1,2 \ PS5_IP= BF_WEB_PORT=5905 \ make ps5-archive-perf ``` 该测试工具在 BFpilot 拥有的测试文件夹下上传一次压缩包,为每个请求的线程数提取到单独的目标位置,保存 `diagnostics/ps5-archive-perf-*.json`,捕获压缩包日志,并默认仅删除其自己的测试文件夹。仅在受控稳定性测试中使用高于 2 的手动线程计数。 运行时日志存储在 PS5 上的: ``` /data/BFpilot/boot.log /data/BFpilot/log.txt /data/BFpilot/crash.log /data/BFpilot/launcher-installer.log /data/BFpilot/archive-integrated/archive-worker.log /data/BFpilot/archive-integrated/status.json /data/BFpilot/archive/archive-worker.log /data/BFpilot/archive/status.json ``` ## 兼容性说明 `bfpilot.elf` 在设计上是无启动器的。它避免使用 AppInstUtil、SystemService、UserService 和特权启动器导入,因为在某些固件/加载器组合中,它们可能会在 `main()` 之前失败。压缩包解压已集成到主 ELF 中,但仅通过 libc/网络安全压缩包代码以及 `/data/BFpilot/archive-integrated` 下 BFpilot 拥有的作业/状态文件进行。 `bfpilot-launcher-installer.elf` 是独立的,并使用完整的启动器安装程序依赖集。如果启动器安装在某个固件上失败,文件管理器 payload 仍然可用。 更多详细信息请参见 [docs/COMPATIBILITY_STRATEGY.md](docs/COMPATIBILITY_STRATEGY.md) 和 [docs/FIRMWARE_TESTING.md](docs/FIRMWARE_TESTING.md)。
标签:Payload, PS5, Python脚本, TCP SYN 扫描, Web UI, 客户端加密, 文件传输, 文件管理器, 解压缩, 越狱插件, 逆向工具