ShadowMountPlus
版本与更新日志
需要登录后才能下载插件文件
插件文件下载当前仅对注册登录用户开放,欢迎在此登录后免费下载使用。
本次发布重点关注已安装 PKG 的 backport、更安全的挂起处理、更快的存储操作以及运行时稳定性。
已安装 PKG backport
- 通过原生 NSFS 重定向,为已安装的 PS5 PKG 游戏添加了外部 backport 支持。
- Backport 会在游戏进程启动前,从
/data/homebrew/backports/<TITLE_ID>立即应用。 - 常规文件使用直接重定向,而缺失的目录树使用 NSFS overlay。
- 每个 package sandbox 最多支持 256 个重定向。
- 继续支持外部和 package 提供的
fakelib/fakelib2目录。
存储和 Web 界面
- 为复制和移动操作添加了存储目标选择器。
- 不再为不支持的 PFSC 源提供读/写挂载。
Rest Mode 和生命周期安全
- 现在会在进入 Rest Mode 前检测并停止明文 PPR package 游戏。
API 变更
/api/v1/storage 响应现在包含:
destination_countdestinations- 可选择的目标路径及其文件系统容量信息
[!IMPORTANT] 不要将独立的 BackPork payload 与 ShadowMountPlus PKG backport 一起运行,因为两者可能会尝试管理相同的 sandbox 资源。 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7beta1...1.7beta2
版本 1.7 是与 1.6 相比的一次重大 ShadowMountPlus 更新。
它专注于游戏生命周期、大型游戏库的性能、挂载资源的安全
释放,以及新的管理功能。
[!WARNING] 挂载镜像仍可能导致关机问题以及内部驱动器上的数据损坏, 尤其是在较旧的固件版本上。更新前请备份重要数据和配置。
亮点
新的基于 SceShellCore 的运行时
- 游戏注册和运行时挂载准备现在使用 SceShellCore 桥接。
- 默认情况下,镜像在游戏启动前按需挂载,并在应用程序退出后释放。
- 游戏可以切换,而不会留下陈旧的挂载层。
- 改进了对
ExitSpawn/LoadExec、PID 变化、游戏退出、 挂起/恢复以及 payload 关闭的处理。 - 在 FW 12.00+ 上,个别游戏通过 TitleDir 桥接注册;
不再需要强制
app_install_all。 - 支持最高 13.60 的固件版本。
大型游戏库和更快的扫描
- 可复用的镜像索引支持在 2,048 个镜像中最多 8,192 个游戏。
- 更快的元数据读取、暂存和游戏注册。
- 同时打开的文件描述符更少。
- 从休息模式恢复后的 USB 游戏库恢复更快。
- 新的
persistent_image_mounts=1模式在游戏启动之间保持已发现的 镜像挂载。它默认禁用。 - 可选择从系统游戏库中移除不可用的游戏,包含延迟, 并在源返回时取消待处理的移除。
- 已安装 DLC 的游戏会受到保护,不会被自动移除,
除非明确启用
auto_remove_games_with_dlc=1。
Web 界面和 HTTP/JSON API
- 内置游戏库界面提供搜索、筛选、游戏卡片、源管理、 扫描、设置和日志查看。
- PS5 菜单中会安装一个 Shadow Mount+ 启动器,并打开本地 Web 界面。
- HTTP/JSON API v1 提供对镜像、游戏和存储设备的访问, 以及游戏挂载、源管理、设置和扫描。
- 后台任务可以复制、移动、解包镜像或删除源。它们的 进度可查询,并且可以在不可逆阶段之前取消。
- 默认地址是
127.0.0.1:10101,因此该 API 仅对 在 PS5 上运行的应用程序可访问。 - 配置
api_bind_address和api_port以允许从本地 网络访问。 - 此版本包含 API 文档、
OpenAPI schema、网页 以及
tools/api_test.py测试客户端。
[!CAUTION] 该 API 没有身份验证。不要在不受信任的网络上使用
api_bind_address=0.0.0.0。
挂载配置文件和镜像性能
- 对于
.exfat、.ffpkg和独立的.ffpfs,优化配置文件仅用于/data/...或/user/...下的直接路径。其他直接路径使用 1.6 配置文件。外层.ffpfsc镜像和嵌套的.ffpfs/pfs_image.dat镜像始终使用新配置文件。 - 优化的 exFAT 配置文件支持 LVD
img_type=5以及 用于内部存储镜像的 BFS 快速路径。 - 快速路径要求使用
lvd后端、512 字节逻辑扇区, 以及 64 KiB exFAT 簇。 - Linux、macOS 和 Windows 的 exFAT 镜像创建脚本现在使用固定的 64 KiB 簇大小。
- 对于嵌套 PFS 镜像,
nested_pfs_index_cache会在附加前请求 压缩偏移索引缓存。 - 改进了对异步 LVD/MD 分离、繁忙资源的延迟卸载, 以及挂载失败后不完整附加的清理的处理。
- 移除了 MD 设备的强制分离,以避免干扰 仍在使用中的挂载。
fakelib 和模拟器更新
- 全局和按游戏的
fakelib现在会合并到按标题的缓存中, 并具有可配置的game或global优先级。 - 匹配的游戏模拟器文件可以替换为来自
emulators_path的文件,而无需更改原始游戏文件夹。 - 未使用的 fakelib 缓存会在最后一次游戏启动后的七天内 自动移除。
- 可选自动检查和下载
libSceAmpr.sprx更新。 fakelib2始终具有最高优先级:它会被直接挂载,并且 不会与全局fakelib或模拟器更新合并。- 修复了跨
ExitSpawn/LoadExec转换时 fakelib 的重新挂载。 - 对于已安装的 PKG,它们自己的
fakelib会在游戏进程 启动前挂载。
本地化、散热和诊断
- 系统通知已本地化为 31 种语言。
language=auto会选择主机的系统语言;也可以 显式选择语言。- 添加了
fan_target_temperature=system|50..91。默认的system值 将风扇控制留给主机。 - 启动通知会更清晰地显示当前温度以及 向后移植和模拟器更新的结果。
- 扩展了针对繁忙挂载、致命游戏信号以及 运行时状态转换背后原因的诊断。
- 改进了自动 Kstuff 暂停/恢复以及在游戏提前退出后 恢复的可靠性。
新的配置选项
1.7 中新增的关键选项:
# Notification language
language=auto
# HTTP/JSON API
api_enabled=1
api_bind_address=127.0.0.1
api_port=10101
# Runtime and library maintenance
persistent_image_mounts=0
auto_remove_missing_games=0
auto_remove_games_with_dlc=0
auto_remove_missing_delay_seconds=300
# fakelib and emulators
update_emulators=1
emulators_path=/data/shadowmount/emus
auto_update_ampr=0
# Cooling
fan_target_temperature=system
请参阅 config.ini.example 获取完整选项列表和有效值。
从 1.6beta16 升级
- 现有的
/data/shadowmount/config.ini仍然兼容,不必 重新创建。 - 新选项不会自动添加到现有配置文件中。
如有需要,请从新的
config.ini.example中复制相关行。 - 更新前请备份
config.ini和autotune.ini。 - 挂载配置文件根据源路径选择。旧的
legacy_mount_*选项 不再受支持,应从配置中移除。nested_pfs_index_cache仍然可用;legacy_gddr5_cache可作为其旧名称 使用。 - 默认的
lvd_pfs_sector_size从32768改为4096。 - 默认的
md_ufs_sector_size是4096。 - 对于 exFAT 快速路径,不要设置
image_sector=...:65536:64 KiB 是 簇/次级单元大小,而逻辑扇区必须保持 512 字节。 auto_remove_missing_games、persistent_image_mounts、auto_update_ampr以及对 API 的网络访问默认禁用。
兼容性
- 支持运行 Kstuff-lite v1.07 或更新版本的已越狱 PS5 固件。
- UFS(
.ffpkg)是正常使用推荐的格式。 - PFS(
.ffpfs/.ffpfsc)仍为实验性。 - 仍不支持将 ShadowMountPlus 与单独的 BackPork payload 一起运行, 因为它们的 fakelib 挂载会冲突。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha13fix1...1.7beta1
- 新增了网页界面(草稿版)及其访问快捷方式。
- 修复了在睡眠模式及加载大型游戏时外壳崩溃的问题。 修复:固件版本 12+ 上设备意外关机的问题。 若问题依旧存在,请先运行 kstuff,再运行 SM+ 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha13...1.7alpha13fix1
- 新增了网页界面(草稿版)及访问快捷方式。
- 修复了睡眠模式及启动大型游戏时shell崩溃的问题。 完整变更日志: https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha12...1.7alpha13
- 仅对
/data或/user下的直接源路径使用优化的 exFAT、UFS/FFPKG 和 PFS/FFPFS 挂载配置 - 在系统休眠期间暂停后台服务
- 支持 FAKExxxxx 标题 ID 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha11...1.7alpha12
- 添加了外部USB驱动器连接或断开时的通知。扫描后,通知会显示容量、可用空间、块大小以及找到的游戏数量。
- 提升了镜像挂载和卸载的稳定性,防止竞态条件和设备过早重用。
- 提升了应用程序数据库和缓存的可靠性。
- 修复了取消AMPR更新下载时可能出现的冻结问题 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha10...1.7alpha11
- 重新设计了 ShellCore 桥接,改用动态分配的远程内存。
- 提升了游戏进程交接的稳定性。
- 添加了 ShellCore 钩子失败通知。
- 将
legacy_gddr5_cache重命名为nested_pfs_index_cache;旧名称仍受支持。 如果 ShadowMountPlus 1.7 已在运行,更新后必须重启主机。 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha8...1.7alpha9
- 保持 fakelib2 仅在全局和模拟器覆盖层中独占使用 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha9...1.7alpha10
测试版本。不稳定
- 修复跨 ExitSpawn/LoadExec 的游戏进程交接及 fakelib 重新挂载问题。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha7...1.7alpha8
测试版本。不稳定
- ShadowMount+ 现在可以从
/data/shadowmount/emus更新游戏 fakelib 中匹配的模拟器文件。 要更新模拟器,您需要将其文件夹放入/data/shadowmount/emus/libSceAmpr.sprx。它只会更新已存在的文件。 - 添加了从 GitHub 自动更新
libSceAmpr.sprx的功能(自动更新默认禁用,可通过auto_update_ampr=1启用) - 全局和按游戏的 fakelib 文件现在通过缓存合并。
- 为 UFS、exFAT、PFS 和 PFSC 镜像添加了可选的旧版和优化挂载配置文件。(默认使用旧版)
- 改进了 exFAT 挂载的验证和恢复。
- 在 ShadowMount+ 更新或更改
config.ini和autotune.ini后,镜像扫描缓存会自动重建。 README 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha6...1.7alpha7
测试版本。不稳定
- 修复了在 ext1 上挂载 exfat 镜像的问题。
- 更改了关闭游戏时的卸载方法以防止崩溃。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha5...1.7alpha6
测试版本。不稳定
- 优化了 LVD 挂载,并在支持的情况下启用了 BFS 快速路径,采用 64 KiB I/O 批处理。
- 为嵌套 PFSC 镜像启用了压缩偏移缓存。
- 更新了镜像创建脚本,使用固定的 64 KiB exFAT 分配单元。
- 提高了 LVD/MD 镜像挂载和卸载的稳定性。
- 忙碌的镜像现在可以安全卸载,无需强制拆除。
- 添加了风扇温度配置:
fan_target_temperature=auto|50..91。 - 扩展了 backport/UnionFS 诊断日志。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha4...1.7alpha5
测试版本。不稳定。
此版本提升了挂载可靠性、游戏生命周期处理及易用性:
- 增加了游戏启动之间的可选持久镜像挂载(Legacy 模式)
persistent_image_mounts=1|0(1在游戏启动之间保持已发现的镜像挂载;默认值:0) - 减少了扫描器文件描述符的使用。
- 为追踪的游戏增加了详细的致命信号报告。
- 改进了挂起/恢复后 USB 游戏的恢复。
- 增加了已挂载游戏之间的无缝切换。
- 为 30 种语言增加了本地化通知,支持自动检测控制台语言及通过
language手动选择。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha3...1.7alpha4
测试版本。不稳定。
- 新增了一个公开的 HTTP/JSON API,用于列出、挂载和卸载游戏。
- 新增了可选功能,可自动移除源不可用的游戏及支持 DLC 保护
auto_remove_missing_games=1|0(1 表示当游戏源不再可用时,自动从系统库中移除该游戏;默认值:0)auto_remove_games_with_dlc=1|0(1 表示允许自动移除已安装 DLC 的游戏;默认值:0)auto_remove_missing_delay_seconds=<1..86400>(源在移除前需保持不可用的时长;默认值:300) - 改进了游戏元数据的暂存和注册性能。
- 修复了退出游戏后的运行时挂载清理问题。
- 修复了索引中未更改图像重复使用的游戏计数问题 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha1...1.7alpha3
测试版本。不稳定。
- 改进了运行时路径和标题验证。
- 修复了游戏挂载生命周期、重启、挂起和关机处理。
- 将运行时拆除延迟至 ShellCore 完成 unmountWorkspace 之后。
- 通过避免强制拆除并在设备繁忙时报告挂载依赖,使 nullfs 和镜像卸载更加安全。
- 使 KStuff 自动挂载交接和 .kstuff_noautomount 标记在关机时更安全。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.7alpha1...1.7alpha2
ShadowMountPlus 1.7alpha1
- 游戏现在仅在启动时挂载,退出后卸载,减少持久文件系统挂载。
- 添加图像元数据缓存,避免扫描过程中重复挂载未更改的图像。
- 改进了嵌套图像链的支持和运行时挂载清理。
- USB 游戏在进入休眠模式前会安全停止。
- 固件 12.00 及更高版本现在使用按标题的 InstallTitleDir 注册,而非批量 InstallAll。
- 改进了挂载稳定性、关机处理和扫描器性能。
- 支持跨 2048 个图像最多 8192 款游戏。
- 减少扫描监视器,并在睡眠期间释放 USB 监视器。 完整更新日志:https://github.com/drakmor/ShadowMountPlus/compare/1.6beta16...1.7alpha1
ShadowMountPlus 1.6beta16
- 尝试恢复 nullfs 被占用的挂载点
- 优先使用
fakelib2而非fakelib用于游戏覆盖层(fakelib文件夹仍按原方式工作,新机制旨在无需重新打包镜像即可替代 backport 或模拟器) 要替换镜像中的fakelib文件夹,请使用与镜像同一目录下的backports/PPSAXXXXX/fakelib2。镜像中的fakelib文件夹将不会被挂载,因此请将所有必需文件复制到fakelib2中。 完整变更日志:https://github.com/drakmor/ShadowMountPlus/compare/1.6test15-fix1...1.6beta16
- Fixed issues with mounting in /system_ex/app
- Experimental support for .ffpfsc images has been added. Scan depth can be left at
scan_depth=1. Do not use with MicroMount! fix: PFS mount issue
- Fixed issues with mounting in /system_ex/app
- Experimental support for .ffpfsc images has been added. Scan depth can be left at
scan_depth=1. Do not use with MicroMount! fix: PFS mount issue fix2: removed forced unmounting of nullfs due to a conflict with kstuff, causing KP Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6beta14-fix1...1.6test15-fix2
- Fixed mounting of exfat
- Added support for compressed PFS images https://github.com/PSBrew/MkPFS (read speed 150-250 Mb/s). EXPIREMENTAL! Thanks to @PSBreew for his great work! Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6test13...1.6beta14-fix1
- Added copying of trophy data (for new kstuff) Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6test12...1.6test13
- Fixed an issue with deleting games on firmware 12+ (undeletable gray icons)
- Added the expiremental ability to install games via Dump Installer https://github.com/drakmor/dump_installer Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6test11...1.6test12
- Improved stability
- Default scan period reduced from 60 to 15 seconds Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6beta10...1.6test11
- Added support for the global
fakelibfolder (backports), which is automatically mounted for all games. - Added support for deep sleep mode and unmounting all images before entering it.
- Fixed an issue where background game music was lost in the main menu.
- Added support for kstuff autopause up to version 13.20.
- Fixed an issue with searching for new games when connecting external drives (introduced in 1.6beta9). Full Changelog: https://github.com/drakmor/ShadowMountPlus/compare/1.6beta9...1.6beta10
- The algorithm for detecting crashes caused by kstuff pauses has been updated and is now enabled by default.
- Backports are now searched for first in the folder next to the game, and then in other scan directories as well.
- Background scanning for changes is disabled while the game is running.
- Improved game install flow, especially on newer firmware.
- On firmware
12.00+, batch app installation is enabled automatically. config.iniis now created automatically on first launch if it is missing.- The file /data/.ksuff_noautomount that disables automatic mounting is now removed automatically on shutdown.
- Default scan interval was increased to
60seconds to reduce background activity. - Shutdown is faster and handles in-progress scan/install work more cleanly. fix: firmware 12.00 crash
- Improved kstuff auto-pause behavior and added support for firmware up to 12.00.
- Added per-image sector size overrides with automatic autotune when an image mount fails due to cluster size being too small (at the cost of falling speed)
- Added automatic kstuff pause-delay tuning after detected early post-launch crashes (disabled by default).
- Fixed app metadata recovery for already installed titles (snd0 fix).
- Fixed mount /system_ex/app error.
- Increased kstuff's default autopause delay to 15/25 seconds. Use this version of Kstuff Lite 1.1-dr for maximum performance and compatibility.
- Reworked scanning to use filesystem events, reducing unnecessary rescans and improving reaction time for new, changed, or removed games and images.
- Added scan_depth:
- scan_depth=1 scans the first level only
- scan_depth=2 scans one extra nested level
- recursive_scan=1 is now treated as compatibility mode and forces scan_depth=2.
- Fixed stability waiting for image files so it works correctly for both folders and images.
- Improved damaged image handling: unreadable mounted images are now reported as damaged images instead of misleading param.json errors.
- Kstuff auto-pause now checks kstuff availability at the moment auto-pause is needed, not only at startup.
- Added optional per-game autopause.txt support for local auto-pause delay rules.
- Added runtime hot-reload for selected config.ini settings without restarting the payload.
- Improved duplicate title handling: valid installed sources are preferred, and ignored duplicates are reported more clearly.
A small update before the big changes.
- Image mounting has been moved to /mnt/shadowmnt
- For the test turbo version of kstuff-lite automounting is disabled (the file /data/.kstuff_noautomount is created)
- Notification log spam has been fixed
- Duplicate image handling has been fixed
- A check for kstuff being installed on the system has been added. After testing, I recommend the FFPKG image format with the settings in README.md as the most performant. However, creating them using UFS2Tool sometimes causes problems – broken images are created with these settings.
Refactored ShadowMount+ into modular subsystems, added automatic kstuff lifecycle management and sandbox fakelib support, improved remount/recovery flow.
- Backports are now mounted from a backports folder located next to the game images instead of /data/backports. This fixes external drive mounting and also works for unpacked games.
- Sandbox fakelib backports are now mounted directly by ShadowMount+. backpork.elf must be disabled.
- Automatic kstuff pause is now enabled by default. You should disable sentinel_warden.elf and turn off etaHEN auto-pause settings.
- Reboot and power-off handling has been fixed, including proper image unmounting during shutdown.
- A quiet mode has been added, with minimal notifications. See README.md for full details.
- Fixed an issue with /dev/lvd1 waiting forever.
- Added protection against mounting images with too small a cluster size, as they will not work.
- Wait for /dev/lvd1 to be freed to avoid remounting after closing y2jb
- The number of game registration attempts has been increased to 2x
- The backport is mounted only after successful registration to ensure its successful completion. If you delete a game with a backport, re-registration will only occur after a reboot.
The first beta of the 1.6, which will receive new features.
- Instant game mounting has been restored, eliminating the need to wait for Kstuff. To avoid kernel panics, load Kstuff/EthaHEN last in autoload.txt.
- Added support backports for games in images. Place the unpacked backport in /data/backports/TITLEID and load backpork.elf.
- Added "force_mount" option A known issue: when using ffpkg, the console won't shut down or restart on older firmware versions. The recommended solution is to use exfat. I'll try to fix this in the next release.
- Fixed issues with remounting unmounted images (this happens when the first /dev/lvd* numbers remain occupied and the system frees them, unmounting all mounted images).
- Changed the mount folder to /data/imgmnt to align with Dump Installer. The old /data/ufsmnt folder must be manually deleted.
- You can use config.ini to change the R/W mode individually for each image, as some games require the ability to write to the file system.
- Improved verbosity of mounting error messages.
- Added caching of app.db requests. fix1 - Added a forced mount option for damaged file systems. It's better to fix the errors than to use this option.
Fixed an issue with deadlocked links and kstuff causing kernel panics. Added automatic image mount recovery. Automatic cleanup of invalid mount.lnk links. If you're having trouble running kstuff 1.6.7, you can either run ShadowMount+ once before kstuff to clean up the links, or manually delete all /user/app/PPSA*/mount.lnk files. This error occurred on one of the previous versions of ShadowMount+.
Fix kstuff loader mount-link handling - should fix kernel panic Fix RO/RW mount flag mapping - should solve the shutdown problem Optimized work with app.db Setting added scan_interval_seconds=<1..3600> (full scan loop interval; default: 10) Setting added stability_wait_seconds=<0..3600> (minimum source age before processing; default: 10)
Optimized mounting parameters and the speed has been increased. Automatic param.json correction Extended error diagnostics output Optional recursive folder scanning (slower) Automatic disk image size calculation in creation scripts Fixed exFAT image creation on Windows Expanded documentation, examples, and troubleshooting guidance fix: Fix source stability checks to avoid false wait/skip loops fix: exFAT image builds in Windows Please read README.md
Completely refactored
- Working with a large number of folders
- Eliminating duplicate operations
- Correct game registration
- Mounting images as read-only by default
- Correct unmounting and deleting folders on shutdown/restart
- The ability to customize folders for scanning
exFAT and UFS2 on /dev/lvd. Testing CPU load and disk speed.
Release for testing reboot/shutdown and mounting UFS via /dev/lvd