62 lines
3.2 KiB
Markdown
62 lines
3.2 KiB
Markdown
# Phase-0.7 offline build evidence — 2026-07-17
|
|
|
|
- Public SDK: v0.41,
|
|
`d2e2e585740362976a39fdd5ccf390f199a7bc37`
|
|
- Firmware build gate: exact `9.60`
|
|
- Host validation: MSVC 19.50 `/W4 /WX`; Clang 18
|
|
warnings-as-errors/clang-tidy/format; GCC 15 ASan/UBSan
|
|
- Fuzz fallback: 100,000 deterministic ASan/UBSan inputs for both controlled
|
|
header and verified metadata
|
|
- Cross-build: all three targets with warnings-as-errors
|
|
- Reproducibility: two clean byte-identical builds per ELF
|
|
- Console actions: none
|
|
|
|
The complete machine evidence is
|
|
`manifests/runtime/phase-0.7-offline-audit.json`. Full ignored reports and
|
|
artifacts are packaged below `outputs/phase07/`.
|
|
|
|
## Exact outputs
|
|
|
|
| Artifact | SHA-256 | Size | Undefined imports | `DT_NEEDED` |
|
|
|---|---|---:|---|---|
|
|
| hardened elfldr | `63e810982471eb40cae3a20aa9df9a0a02892f420e429874fae4e99aa400b561` | 397000 | none | `libSceLibcInternal.sprx`, `libSceNet.sprx`, `libkernel_web.sprx` |
|
|
| controlled Payload Manager | `8fecf8241a46246eddbd21e8bb4d875f5d76f1f4f4c6a11384df1f131aa5e5b1` | 99560 | none | `libSceLibcInternal.sprx`, `libSceNet.sprx`, `libkernel_web.sprx` |
|
|
| lifecycle probe | `bfb4a5cc768e162fe4c2fddf41c3978e152722918a39085277fd172cb95a7182` | 112680 | `_exit`, `sceKernelSendNotificationRequest` | `libSceLibcInternal.sprx`, `libkernel_web.sprx` |
|
|
|
|
The lifecycle project's called functions are exactly one
|
|
`sceKernelSendNotificationRequest` followed by `_exit`. The normal SDK startup
|
|
is statically included and reaches `__patch_init` before `main`; that fact is
|
|
proven from source, linker map, disassembly, and the 499-edge lifecycle
|
|
callgraph rather than inferred from imports. The hardened loader audit records
|
|
1032 call edges and the controlled manager records 478.
|
|
|
|
The lifecycle linker map also contains stock-SDK `__dlopen`, `__dlsym`,
|
|
`sceKernelLoadStartModule`, and `sceKernelStopUnloadModule` symbols. Direct
|
|
static reachability proves the rtld initialization path but cannot resolve all
|
|
116 indirect lifecycle edges. The audit therefore records linked symbols,
|
|
direct `_start` reachability where symbolization permits it, and every
|
|
unresolved indirect edge separately. No graphics/display-sensitive symbol is
|
|
linked in any of the three audited ELFs.
|
|
|
|
## Final offline tests
|
|
|
|
- Chimera GFX Windows host build: MSVC `/W4 /WX`, 16/16 CTest passed.
|
|
- Hardened elfldr: MSVC 1/1; Clang 18 plus clang-tidy 1/1; GCC 15
|
|
ASan/UBSan 1/1; 100,000-input sanitizer fuzz pass.
|
|
- Controlled Payload Manager: MSVC 1/1; Clang 18 plus clang-tidy 2/2; GCC 15
|
|
ASan/UBSan 2/2; 100,000-input sanitizer fuzz pass.
|
|
- All three PS5 cross-builds passed warnings-as-errors and reproduced the
|
|
exact hashes and sizes above.
|
|
- Negative lifecycle firmware `9.50` configure failed before creating a build
|
|
graph.
|
|
- Controlled-manager build without exact hash/size/artifact ID failed.
|
|
- Static execution-policy refusal suite, manifest schemas, Phase-0.5/0.6
|
|
historical gates, Phase-0.7 proof matrix, safety audit, and secret scans
|
|
passed.
|
|
|
|
The local Clang installation does not contain the optional
|
|
`libclang_rt.asan`/libFuzzer runtime archives. Clang warnings and clang-tidy
|
|
therefore run without sanitizers; GCC supplies the ASan/UBSan and deterministic
|
|
fuzz coverage. This is a host-tool packaging limitation, not a target
|
|
compiler, linker, or ABI blocker.
|