This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user