Files
Quer3qandClaude Opus 5.5 f5f6260b30 LZ4 asset packs for ampr_emu: trace, pack, unpack, LZ4 tab
New crate ps5-dump-forge-lz4: AMPRPAK4 manifest writer and validating
reader (volumes, CRC sidecar, runtime profile), AMPRIDX3 and AMPRCMD1
readers, pack rules (TOML profile subset, traces, built-in keep-loose
list, auto-loose), embedded ampr_emu 0.4.2.1 release and trace runtimes
(vendor/ampr_emu, pinned by SHA-256; vendor patch 0023).

Core: trace (in-place folder patch/unpatch, image rebuild + replace),
pack into an LZ4 folder or straight into .ffpkg/.exfat/.ffpfs/.ffpfsc
(measure pass, no staging), unpack any packed source, traces zip
download and reader, Save as profile, LZ4 inspection facts. Every file
and folder written on the PS5 is 0777 (the app loader refuses game files
without world-execute, CE-107750-0). Traces only narrow the keep-loose
list: engine files opened before AMPR starts (.pak/.utoc/.ini) stay loose.

CLI --lz4-* flags and lz4-patch/lz4-unpatch/lz4-profile; server routes
lz4_patch, lz4_unpatch, lz4_traces (streamed zip), lz4_plan_profile;
LZ4 tab in the app. Trace room 256 MiB default, 1 GiB max (measured).
Fuzz targets, scripts/check-lz4.sh upstream cross-check, docs.

Console: Stellar Blade traced, packed (5 .ucas) and played; unpack and
0777 folders boot. Other titles and long sessions are still open (TODO).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:16:38 +03:00

115 lines
2.0 KiB
TOML

# cargo-fuzz targets for every reader of untrusted images. Its own workspace,
# not a member of the root one: it builds on nightly with sanitizer flags.
#
# ./seed.sh # seed corpora (stable)
# cargo +nightly fuzz run exfat -- -max_total_time=60
[package]
name = "ps5-dump-forge-fuzz"
version = "0.0.0"
publish = false
edition = "2024"
license = "GPL-3.0-or-later"
[package.metadata]
cargo-fuzz = true
[workspace]
members = [".", "seedgen"]
[dependencies]
libfuzzer-sys = "0.4"
ps5upload-fpkg = { path = "../vendor/ps5upload-fpkg" }
ps5-dump-forge-fpkg = { path = "../crates/ps5-dump-forge-fpkg" }
ps5-dump-forge-pfs = { path = "../crates/ps5-dump-forge-pfs" }
ps5-dump-forge-lz4 = { path = "../crates/ps5-dump-forge-lz4" }
[lib]
path = "src/lib.rs"
[[bin]]
name = "exfat"
path = "fuzz_targets/exfat.rs"
test = false
doc = false
bench = false
[[bin]]
name = "ufs2"
path = "fuzz_targets/ufs2.rs"
test = false
doc = false
bench = false
[[bin]]
name = "pfsc"
path = "fuzz_targets/pfsc.rs"
test = false
doc = false
bench = false
[[bin]]
name = "pfs"
path = "fuzz_targets/pfs.rs"
test = false
doc = false
bench = false
[[bin]]
name = "fih_cnt"
path = "fuzz_targets/fih_cnt.rs"
test = false
doc = false
bench = false
[[bin]]
name = "kraken_descriptor"
path = "fuzz_targets/kraken_descriptor.rs"
test = false
doc = false
bench = false
[[bin]]
name = "kraken_block"
path = "fuzz_targets/kraken_block.rs"
test = false
doc = false
bench = false
[[bin]]
name = "fpkg_source"
path = "fuzz_targets/fpkg_source.rs"
test = false
doc = false
bench = false
[[bin]]
name = "lz4_manifest"
path = "fuzz_targets/lz4_manifest.rs"
test = false
doc = false
bench = false
[[bin]]
name = "lz4_index"
path = "fuzz_targets/lz4_index.rs"
test = false
doc = false
bench = false
[[bin]]
name = "lz4_journal"
path = "fuzz_targets/lz4_journal.rs"
test = false
doc = false
bench = false
[[bin]]
name = "lz4_unpack"
path = "fuzz_targets/lz4_unpack.rs"
test = false
doc = false
bench = false
[profile.release]
debug = 1