328 lines
13 KiB
JSON
328 lines
13 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"phase": "PHASE_1_0E_INHERITED_RESULT_CHANNEL",
|
|
"status": "ONE_SHOT_DEVICE_TEST_COMPLETED_INCOMPLETE_BEFORE_D03",
|
|
"scope": "CONSUMED_ONE_SHOT_DEVICE_EVIDENCE_AND_OFFLINE_REVIEW",
|
|
"date": "2026-07-22",
|
|
"repository": "chimera-retroarch",
|
|
"branch": "codex/ps5-inherited-result-channel",
|
|
"source_commit": "b9fc037304a14199f35f8229edac26fa5c840509",
|
|
"host_client_commit": "aed1a6e014d56ed25456b8b095955c7d41f7025d",
|
|
"baseline_commit": "69b65858ffaee826d70f5c0df61013cd1b0e2048",
|
|
"source_bindings": {
|
|
"retroarch_release": "69a4f0ea1e8aaf442ae4858f2e7f2b31a1776576",
|
|
"ps5_payload_sdk": "d2e2e585740362976a39fdd5ccf390f199a7bc37",
|
|
"sdl": "0baf4ac49382b537ba449901b5b6d0d189bb1fbb",
|
|
"hardened_elfldr": "197623058f509eddde18868dafcb92fdcac66464",
|
|
"lifecycle_notification_source": "fe08300339a13f899fb78ea404ada381a5cba87c"
|
|
},
|
|
"authorizations": {
|
|
"ps5_connection_authorized": false,
|
|
"device_transfer_authorized": false,
|
|
"device_execution_authorized": false,
|
|
"result_receive_authorized": false,
|
|
"installation_authorized": false,
|
|
"autoload_authorized": false,
|
|
"device_write_authorized": false,
|
|
"automatic_retry": false
|
|
},
|
|
"phase_actions": {
|
|
"ps5_connected": true,
|
|
"device_request_performed": true,
|
|
"files_transferred": true,
|
|
"device_write_performed": false,
|
|
"target_execution_performed": true,
|
|
"result_received_from_device": true,
|
|
"installation_performed": false,
|
|
"autoload_performed": false
|
|
},
|
|
"prior_device_observations": {
|
|
"evidence_class": "OPERATOR_OBSERVED_ARTIFACT_BOUND",
|
|
"run_a": {
|
|
"artifact_sha256": "c84c0fb43392ce17abc1e7e6be38b522f1b32a681fd516d684c3dbbf7b34b743",
|
|
"visible_result": "CHIMERA C1 — CRT MAIN REACHED",
|
|
"classification": "CRT_MAIN_AND_NOTIFICATION_PROVEN_ON_FW_9_60",
|
|
"authorization_consumed": true
|
|
},
|
|
"run_b": {
|
|
"artifact_sha256": "092bcabc0f8717a648030c592aa0dc900f878952fb14ee453851a29f298ea7ee",
|
|
"visible_result": "ONE_NOTIFICATION_STAGE_UNREADABLE",
|
|
"classification": "PAYLOAD_NOTIFICATION_CODE_EXECUTED_STAGE_UNCLASSIFIED",
|
|
"console_remained_responsive": true,
|
|
"authorization_consumed": true
|
|
}
|
|
},
|
|
"artifact": {
|
|
"name": "retroarch_ps5_result_diag.elf",
|
|
"profile": "result-diag",
|
|
"local_relative_path": "build/phase10e/result-a/retroarch_ps5_result_diag.elf",
|
|
"linker_map_relative_path": "build/phase10e/result-a/retroarch_ps5_result_diag.map",
|
|
"size": 1844880,
|
|
"sha256": "1049c78099a60b472a3fb0e2999e3393b6ad76337a28532a7e53872e7772dedf",
|
|
"clean_build_sha256": [
|
|
"1049c78099a60b472a3fb0e2999e3393b6ad76337a28532a7e53872e7772dedf",
|
|
"1049c78099a60b472a3fb0e2999e3393b6ad76337a28532a7e53872e7772dedf"
|
|
],
|
|
"linker_map_size": 636588,
|
|
"linker_map_sha256": "ae9739f6f578953bc8dc562bb55967ba587912d161b2d6787438450addec3b44",
|
|
"clean_map_sha256": [
|
|
"ae9739f6f578953bc8dc562bb55967ba587912d161b2d6787438450addec3b44",
|
|
"ae9739f6f578953bc8dc562bb55967ba587912d161b2d6787438450addec3b44"
|
|
],
|
|
"execution_eligible": false,
|
|
"transfer_eligible": false,
|
|
"installation_eligible": false,
|
|
"device_action_performed": true
|
|
},
|
|
"active_one_shot": {
|
|
"authorized_by": "Jens",
|
|
"authorization_date": "2026-07-22",
|
|
"approval_record": "docs/approvals/phase-1.0e-one-shot-result-test.md",
|
|
"firmware": "9.60",
|
|
"artifact_name": "retroarch_ps5_result_diag.elf",
|
|
"artifact_size": 1844880,
|
|
"artifact_sha256": "1049c78099a60b472a3fb0e2999e3393b6ad76337a28532a7e53872e7772dedf",
|
|
"connection_count": 1,
|
|
"transfer_count": 1,
|
|
"execution_count": 1,
|
|
"result_receive_count": 1,
|
|
"timeout_seconds": 75,
|
|
"automatic_retry": false,
|
|
"reconnect": false,
|
|
"installation": false,
|
|
"autoload": false,
|
|
"device_write": false,
|
|
"consumed": true
|
|
},
|
|
"device_run": {
|
|
"run_id": "RUN_C",
|
|
"authorization_consumed": true,
|
|
"firmware": "9.60",
|
|
"trace_relative_path": "build/phase10e/run-c-device-trace.json",
|
|
"trace_tracked": false,
|
|
"trace_size": 1795,
|
|
"trace_sha256": "4ff27a0eac48283cdc4c7ff964226def2689e808e3adea6594d0e77674a676f0",
|
|
"connection_count": 1,
|
|
"sendall_count": 1,
|
|
"shutdown_write_count": 1,
|
|
"recv_call_count": 5,
|
|
"received_byte_count": 3413,
|
|
"discarded_stdout_bytes": 3221,
|
|
"retry_count": 0,
|
|
"reconnect_count": 0,
|
|
"close_called": true,
|
|
"remote_eof_observed": true,
|
|
"timeout_observed": false,
|
|
"parser_errors": [],
|
|
"validated_frames": [
|
|
{
|
|
"stage": "D00",
|
|
"sequence": 1,
|
|
"kind": "LITERAL",
|
|
"crc32": "93f81433",
|
|
"notification_attempted_mask": 1,
|
|
"notification_delivered_mask": 1,
|
|
"notification_result": 0,
|
|
"terminal": false
|
|
},
|
|
{
|
|
"stage": "D01",
|
|
"sequence": 2,
|
|
"kind": "LITERAL",
|
|
"crc32": "f2b975e4",
|
|
"notification_attempted_mask": 3,
|
|
"notification_delivered_mask": 3,
|
|
"notification_result": 0,
|
|
"terminal": false
|
|
},
|
|
{
|
|
"stage": "D02",
|
|
"sequence": 3,
|
|
"kind": "RAW",
|
|
"crc32": "69173d14",
|
|
"raw0": 0,
|
|
"notification_attempted_mask": 7,
|
|
"notification_delivered_mask": 7,
|
|
"notification_result": 0,
|
|
"terminal": false
|
|
}
|
|
],
|
|
"terminal_stage": null,
|
|
"last_proven_stage": "D02",
|
|
"classification": "REMOTE_PAYLOAD_OUTPUT_PROVEN_INCOMPLETE_BEFORE_D03",
|
|
"proves": [
|
|
"TRANSFERRED_ARTIFACT_EXECUTED",
|
|
"SDK_CRT_MAIN_REACHED",
|
|
"PLATFORM_INIT_BEGIN_REACHED",
|
|
"PLATFORM_INIT_COMPLETED_WITH_RAW_ZERO",
|
|
"INHERITED_STDOUT_RESULT_CHANNEL_WORKED"
|
|
],
|
|
"does_not_prove": [
|
|
"D03_SDL_INIT_BEGIN",
|
|
"SDL_INIT_RESULT",
|
|
"VIDEOOUT_OPEN",
|
|
"FIRST_FLIP",
|
|
"RENDERING",
|
|
"TERMINAL_STAGE",
|
|
"SAFE_EXIT_OR_LOADER_CLEANUP"
|
|
]
|
|
},
|
|
"offline_followup": {
|
|
"repository": "chimera-retroarch",
|
|
"branch": "codex/ps5-inherited-result-channel",
|
|
"commit": "f1391c3e6717ff4e2b869007fb9627c9edde52e4",
|
|
"classification": "D02_TO_D03_SOURCE_INTERVAL_BOUNDED_CAUSE_UNPROVEN",
|
|
"bounded_raw_stream_retention": true,
|
|
"bounded_ordinary_stdout_retention": true,
|
|
"encoding": "base64",
|
|
"sha256_recorded": true,
|
|
"maximum_pre_encoding_bytes": 65536,
|
|
"exclusive_trace_creation": true,
|
|
"consumed_manifest_rejected": true,
|
|
"retry": false,
|
|
"reconnect": false,
|
|
"device_action_performed": false,
|
|
"target_code_changed": false,
|
|
"target_artifact_created": false,
|
|
"authorization_changed": false
|
|
},
|
|
"elf": {
|
|
"type": "ET_DYN",
|
|
"machine": "EM_X86_64",
|
|
"entrypoint": "0xfef60",
|
|
"program_header_count": 4,
|
|
"load_segment_count": 3,
|
|
"rwx_load_segment_count": 0,
|
|
"program_headers": [
|
|
{"type": "LOAD", "flags": "RE", "offset": 16384, "vaddr": 0, "filesz": 1071054, "memsz": 1071054, "align": 16384},
|
|
{"type": "LOAD", "flags": "R", "offset": 1097728, "vaddr": 1081344, "filesz": 394264, "memsz": 394264, "align": 16384},
|
|
{"type": "LOAD", "flags": "RW", "offset": 1507328, "vaddr": 1490944, "filesz": 206124, "memsz": 903760, "align": 16384}
|
|
],
|
|
"bss_size": 697636,
|
|
"init_array_size": 0,
|
|
"fini_array_size": 0,
|
|
"tls": false,
|
|
"relocations": {"total": 1055, "by_type": {"6": 142, "8": 913}},
|
|
"dt_needed": [
|
|
"libSceAudioOut.sprx", "libSceLibcInternal.sprx", "libScePad.sprx",
|
|
"libSceSystemService.sprx", "libSceUserService.sprx",
|
|
"libSceVideoOut.sprx", "libkernel_web.sprx"
|
|
],
|
|
"undefined_symbols": [
|
|
"_Exit", "__error", "__isthreaded", "__stderrp", "__stdoutp", "abort",
|
|
"atan2", "atof", "atoi", "calloc", "clock_gettime", "close", "closedir",
|
|
"cos", "cosf", "exit", "fclose", "ferror", "fflush", "fileno", "fopen",
|
|
"fprintf", "fputc", "fputs", "fread", "free", "fseek", "fseeko", "fstat",
|
|
"ftello", "fwrite", "getenv", "gettimeofday", "isgraph", "localtime",
|
|
"longjmp", "lseek", "malloc", "memcmp", "memcpy", "memmove", "memset",
|
|
"nanosleep", "open", "opendir", "powf", "pthread_attr_init",
|
|
"pthread_attr_setdetachstate", "pthread_attr_setstacksize", "pthread_create",
|
|
"pthread_getschedparam", "pthread_getspecific", "pthread_join",
|
|
"pthread_key_create", "pthread_key_delete", "pthread_mutex_destroy",
|
|
"pthread_mutex_init", "pthread_mutex_lock", "pthread_mutex_unlock",
|
|
"pthread_mutexattr_init", "pthread_mutexattr_settype", "pthread_self",
|
|
"pthread_set_name_np", "pthread_setcanceltype", "pthread_setschedparam",
|
|
"pthread_setspecific", "pthread_sigmask", "puts", "qsort", "read", "readdir",
|
|
"realloc", "sceAudioOutClose", "sceAudioOutInit", "sceAudioOutOpen",
|
|
"sceAudioOutOutput", "sceKernelAllocateMainDirectMemory",
|
|
"sceKernelCreateEqueue", "sceKernelDeleteEqueue", "sceKernelMapDirectMemory",
|
|
"sceKernelReleaseDirectMemory", "sceKernelSendNotificationRequest",
|
|
"sceKernelWaitEqueue", "scePadClose", "scePadInit", "scePadOpen",
|
|
"scePadReadState", "sceSystemServiceHideSplashScreen",
|
|
"sceUserServiceGetLoginUserIdList", "sceUserServiceGetUserName",
|
|
"sceUserServiceInitialize", "sceVideoOutAddFlipEvent", "sceVideoOutClose",
|
|
"sceVideoOutDeleteFlipEvent", "sceVideoOutOpen", "sceVideoOutRegisterBuffers2",
|
|
"sceVideoOutSetBufferAttribute2", "sceVideoOutSetFlipRate",
|
|
"sceVideoOutSubmitFlip", "sched_get_priority_max", "sched_get_priority_min",
|
|
"sem_destroy", "sem_init", "sem_post", "sem_timedwait", "sem_trywait",
|
|
"sem_wait", "send", "setjmp", "setvbuf", "sigaction", "sigaddset",
|
|
"sigemptyset", "signal", "sin", "sinf", "snprintf", "sprintf", "sscanf",
|
|
"stat", "strchr", "strcmp", "strdup", "strerror", "strftime", "strlcat",
|
|
"strlcpy", "strlen", "strncasecmp", "strncmp", "strrchr", "strstr",
|
|
"strtod", "strtok_r", "strtol", "strtoul", "strtoull", "time", "tolower",
|
|
"vfprintf", "vsnprintf", "vsscanf"
|
|
],
|
|
"undefined_symbol_delta_from_phase10d": ["send"]
|
|
},
|
|
"loader_transport": {
|
|
"classification": "SOURCE_BOUND_LEGACY_RAW_ELF_INHERITED_STDIO_DUPLEX",
|
|
"raw_elf_exact_length_read": true,
|
|
"payload_stdout_inherits_connection": true,
|
|
"controlled_route_supported": false,
|
|
"new_loader_change": false,
|
|
"new_target_socket": false,
|
|
"new_target_connection": false,
|
|
"target_address_embedded": false,
|
|
"source_locations": [
|
|
"socksrv.c:139-141", "socksrv.c:335-339", "socksrv.c:421-423",
|
|
"elfldr.c:499-520", "elfldr.c:837-923"
|
|
]
|
|
},
|
|
"result_protocol": {
|
|
"magic": "CHD10E01",
|
|
"version": 1,
|
|
"frame_size": 64,
|
|
"byte_order": "BIG_ENDIAN",
|
|
"crc32_range": "0..59",
|
|
"reserved_zero_bytes": 20,
|
|
"stages": ["D00", "D01", "D02", "D03", "D04", "D05", "D06", "D07", "D08", "D09", "D10", "D11", "D12"],
|
|
"terminal_stages": ["D11", "D12"],
|
|
"target_write_call": "send(STDOUT_FILENO, frame, 64, MSG_DONTWAIT | MSG_NOSIGNAL)",
|
|
"target_write_attempts_per_stage": 1,
|
|
"target_write_retry": false,
|
|
"short_write_retry": false,
|
|
"target_import_added": "send",
|
|
"target_forbidden_imports_absent": ["socket", "connect", "bind", "listen", "accept", "recv"]
|
|
},
|
|
"host_contract": {
|
|
"hash_before_socket_creation": true,
|
|
"exact_size_before_socket_creation": true,
|
|
"literal_ip_required": true,
|
|
"connection_count": 1,
|
|
"sendall_count": 1,
|
|
"shutdown_write_count": 1,
|
|
"receive_limit_bytes": 65536,
|
|
"timeout_required": true,
|
|
"timeout_maximum_seconds": 120,
|
|
"retry": false,
|
|
"reconnect": false,
|
|
"resume": false,
|
|
"trace_overwrite": false,
|
|
"partial_result_is_success": false
|
|
},
|
|
"startup_effects": {
|
|
"normal_sdk_crt": true,
|
|
"patch_init_reachable_from_start": true,
|
|
"kernel_copy_helpers_statically_linked": true,
|
|
"credential_capability_changes": "TEMPORARY_SOURCE_BOUND_EXISTING_CRT_EFFECT",
|
|
"syscall_range_change": "TEMPORARY_SOURCE_BOUND_EXISTING_CRT_EFFECT",
|
|
"new_effect_from_phase10e": "ONE_NONBLOCKING_SEND_ATTEMPT_PER_REACHED_STAGE",
|
|
"side_effect_free": false
|
|
},
|
|
"callsites": {
|
|
"main": "0x3cc0",
|
|
"diagnostic_dispatch_stream_call": "0x477f5",
|
|
"stream_emit": "0x47ce0",
|
|
"send_call": "0x47eb8",
|
|
"_start": "0xfef60",
|
|
"_start_patch_init_call": "0xfefee",
|
|
"disassembly_sha256": "c49bada12eae987dd885e745417626226cd60eea0ff3002aa3656d4bb076e808"
|
|
},
|
|
"tests": {
|
|
"target_stream_host_asan_ubsan": "PASS",
|
|
"phase10e_python_cases": 13,
|
|
"phase10e_python": "PASS",
|
|
"full_retroarch_ps5_host_suite": "PASS",
|
|
"structural_validator": "PASS",
|
|
"double_clean_build": "PASS_BYTE_IDENTICAL",
|
|
"hardware_evidence_from_phase10e": true
|
|
},
|
|
"hard_stops": [
|
|
"NO_SECOND_CONNECTION",
|
|
"NO_SECOND_TRANSFER_OR_EXECUTION",
|
|
"NO_INSTALLATION_OR_AUTOLOAD",
|
|
"NO_RETRY_OR_RECONNECT",
|
|
"STOP_AFTER_TIMEOUT_EOF_ERROR_OR_TERMINAL_FRAME"
|
|
]
|
|
}
|