S124 · SOURCE-BOUND GATE EVIDENCE
S124 BOOT8H strict physical raw, archive ve promotion PASS
Operations komutu/kapı ailesi → gerçek repository yürütme sözleşmesi Bu sayfa yalnız S124 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S124Komut / fiziksel sözleşmeOperations id exactsource SHA exact
operation: rpi5-g8h-s124-physical-boot8h-pass
script/Makefile/config · Operations · 2 exact excerpt
sequence-bound=true · implementation-bound=false
01 · Yürütme sözleşmesi
Gerçek script / Makefile / config kaynağı
tam dosyaL1–L144
scripts/verify-rpi5-g8h-physical-raw.sh::verify-rpi5-g8h-physical-raw.sh
#!/bin/sh
set -eu
SCRIPT_DIR=$(CDPATH= cd -- "$(/usr/bin/dirname -- "$0")" && pwd -P)
REPO_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)
fail() {
echo "HATA: $*" >&2
exit 1
}
run_validator() {
(
cd "$REPO_ROOT"
cargo run --quiet --locked --offline -p aselsan_microkernel_simulation \
--example verify_rpi5_g8h_physical_raw -- "$@"
)
}
stat_identity() {
/usr/bin/stat -f '%d:%i:%z:%m:%c:%Lp:%l' "$1"
}
stat_mode() {
/usr/bin/stat -f '%Lp' "$1"
}
stat_links() {
/usr/bin/stat -f '%l' "$1"
}
raw_sha256() {
/usr/bin/shasum -a 256 "$1" | /usr/bin/cut -d ' ' -f 1
}
validate_operational_identity() {
[ ! -L "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"
[ -f "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"
RAW_MODE=$(stat_mode "$RAW_PATH") || fail "could not stat raw mode"
[ "$RAW_MODE" = 444 ] || fail "raw mode must be exactly 0444"
RAW_LINKS=$(stat_links "$RAW_PATH") || fail "could not stat raw link count"
[ "$RAW_LINKS" = 1 ] || fail "raw link count must be exactly one"
}
if [ "$#" -eq 1 ] && [ "$1" = "--verify-source-only" ]; then
run_validator --canonical
echo "G8H_PHYSICAL_RAW_SOURCE=PASS validators=12 milestones=60 hardware=UNTOUCHED device=0 uart=0 power=0"
exit 0
fi
[ "$#" -eq 5 ] || \
fail "operational mode requires RAW_PATH EXPECTED_BYTES EXPECTED_SHA256 EXPECTED_DEVICE EXPECTED_INODE"
RAW_PATH=$1
EXPECTED_BYTES=$2
EXPECTED_SHA256=$3
EXPECTED_DEVICE=$4
EXPECTED_INODE=$5
case "$EXPECTED_BYTES" in
''|0|0*|*[!0-9]*) fail "EXPECTED_BYTES must be a positive canonical decimal" ;;
esac
[ "$EXPECTED_BYTES" -le 67108864 ] 2>/dev/null || \
fail "EXPECTED_BYTES exceeds the 64 MiB physical capture limit"
[ "${#EXPECTED_SHA256}" -eq 64 ] || \
fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters"
case "$EXPECTED_SHA256" in
*[!0-9a-f]*) fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters" ;;
esac
case "$EXPECTED_DEVICE" in
''|0|0*|*[!0-9]*) fail "EXPECTED_DEVICE must be a positive canonical decimal from capture_armed evidence" ;;
esac
case "$EXPECTED_INODE" in
''|0|0*|*[!0-9]*) fail "EXPECTED_INODE must be a positive canonical decimal from capture_armed evidence" ;;
esac
case "$RAW_PATH" in
/*) ;;
*) fail "RAW_PATH must be an absolute canonical path" ;;
esac
RAW_PARENT=$(/usr/bin/dirname -- "$RAW_PATH")
RAW_BASENAME=$(/usr/bin/basename -- "$RAW_PATH")
[ "$RAW_BASENAME" != . ] && [ "$RAW_BASENAME" != .. ] || \
fail "RAW_PATH must be an absolute canonical path"
CANONICAL_PARENT=$(CDPATH= cd -- "$RAW_PARENT" 2>/dev/null && pwd -P) || \
fail "RAW_PATH parent does not exist"
CANONICAL_PATH="$CANONICAL_PARENT/$RAW_BASENAME"
[ "$RAW_PATH" = "$CANONICAL_PATH" ] || \
fail "RAW_PATH must be an absolute canonical path"
validate_operational_identity
PRE_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity"
SAVED_IFS=$IFS
IFS=:
set -- $PRE_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic pre-validation raw identity"
PRE_DEVICE=$1
PRE_INODE=$2
PRE_BYTES=$3
PRE_MODE=$6
PRE_LINKS=$7
EXPECTED_FILE_ID="$EXPECTED_DEVICE:$EXPECTED_INODE"
[ "$PRE_DEVICE:$PRE_INODE" = "$EXPECTED_FILE_ID" ] || \
fail "raw pre-validation file identity does not match capture_armed evidence"
[ "$PRE_MODE" = 444 ] || fail "raw pre-validation mode must be exactly 0444"
[ "$PRE_LINKS" = 1 ] || fail "raw pre-validation link count must be exactly one"
PRE_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw"
[ "$PRE_BYTES" = "$EXPECTED_BYTES" ] || \
fail "raw size does not match EXPECTED_BYTES"
[ "$PRE_SHA256" = "$EXPECTED_SHA256" ] || \
fail "raw hash does not match EXPECTED_SHA256"
run_validator --raw "$RAW_PATH" \
--expected-bytes "$EXPECTED_BYTES" \
--expected-sha256 "$EXPECTED_SHA256" \
--expected-device "$EXPECTED_DEVICE" \
--expected-inode "$EXPECTED_INODE"
validate_operational_identity
POST_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity after validation"
IFS=:
set -- $POST_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic post-validation raw identity"
POST_DEVICE=$1
POST_INODE=$2
POST_BYTES=$3
POST_MODE=$6
POST_LINKS=$7
[ "$POST_DEVICE:$POST_INODE" = "$EXPECTED_FILE_ID" ] || \
fail "raw post-validation file identity does not match capture_armed evidence"
[ "$POST_MODE" = 444 ] || fail "raw post-validation mode must be exactly 0444"
[ "$POST_LINKS" = 1 ] || fail "raw post-validation link count must be exactly one"
POST_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw after validation"
[ "$POST_IDENTITY" = "$PRE_IDENTITY" ] || fail "raw identity changed during validation"
[ "$POST_BYTES" = "$PRE_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$PRE_SHA256" ] || fail "raw hash changed during validation"
[ "$POST_BYTES" = "$EXPECTED_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$EXPECTED_SHA256" ] || fail "raw hash changed during validation"
echo "G8H_PHYSICAL_RAW_VALIDATION=PASS exact_bytes=$POST_BYTES sha256=$POST_SHA256 device=$EXPECTED_DEVICE inode=$EXPECTED_INODE validators=12 milestones=60"
snippet sha256: 945363d7c2cf…file sha256: 945363d7c2cf…
02 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL25839–L25901
website/src/lib/operations.ts::rpi5-g8h-s124-physical-boot8h-pass
{
id: "rpi5-g8h-s124-physical-boot8h-pass",
date: "2026-08-24",
sequence: 124,
status: "passed",
title: "S124 BOOT8H strict physical raw, archive ve promotion PASS",
summary:
"S124, S123'ün immutable leading-NUL reddinden sonra uart_2ndstage=0 aday paketiyle yeni tek fiziksel denemeyi tamamladı. Aynı descriptor üzerinde fresh helper 115200/8N1 exclusive raw UART capture arm edildi; bir kullanıcı-bildirimi power-on sonrasında ASELSAN/BOOT8H marker'ı bir kez görüldü, 3 saniyelik grace tamamlandı ve raw durable mode 0444 olarak kapandı. Identity-pinned strict validator 12/12 validator ve 60/60 milestone ile exact 20270 B raw'ı PASS etti. Strict PASS sonrasında aday paket ve kart kimliği salt-okunur yeniden doğrulandı; archive/promotion açıldı. Bu kayıt dar G8h physical BOOT8H kabulüdür; K1/K2/MEM0–MEM2 veya tam workspace GREEN iddiası değildir.",
evidence: [
"Aday paket exact4 manifest PASS: image 316864 B / 7e4b713a4ba4f45d572b61ca170cf7f5c89f9a4485f839dc12cc5a8c23570de1, DTB 78703 B / 40a2fbe9c29e8b9a4912cf726a943068defb779fc052ec38e457a79c58abca00, config.txt 501 B / bb309081780859054c0601eac0234b1310e10f9c82b7eec7f2f7e7ccb3069fab; config'te uart_2ndstage=0.",
"Helper source SHA-256 6e438d260bbecde7c9cdeeb371f3b9edfd567b108533671a2b59287d4adc56cd; helper binary SHA-256 f21d002741bc3e4d327a64d229945e2857067046b94421835f80d9b265349df2.",
"UART pre-arm: /dev/cu.usbmodem214402, exclusive TIOCEXCL, 115200/8N1, raw mode ve flow-control kapalı; fresh raw identity capture ile eşleşti.",
"Terminal marker ASELSAN/BOOT8H occurrence=1, offset=18987..19002; grace=3 s; capture exact_bytes=20270, mode=0444, nlink=1, durable=true, success=true.",
"Strict validator sonucu: validators=12/12, milestones=60/60, exact_bytes=20270, PHYSICAL_BOOT8H=PASS; raw SHA-256 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158.",
"Raw capture device/inode 16777231:23040666 üzerinde korundu; leading NUL=3 ve BOOT8H count=1. S123 rejected raw'ı değiştirilmedi, trim/copy/delete veya validator retry yapılmadı.",
"Strict PASS sonrasında salt-okunur kart re-auth: /dev/disk6, Secure Digital, Built In SDXC Reader, 62549655552 B, /Volumes/ASELSANBOOT, UUID=44ABB50F-DB63-3DB8-A6B2-C5303E3211E9; aday manifest PASS; ARCHIVE=PASS PROMOTION=PASS.",
"Power-on ve power-off fiziksel geçişleri kullanıcı bildirimi olarak kaydedildi; Mac tarafındaki UART kapanışı, raw identity/hash kapanışı ve kart re-auth host gözlemleriyle doğrulandı; independently_observed=false.",
"Kalıcı kanıt: evidence/rpi5/g8h/sequence-124-physical-pass/README.md ve EVIDENCE_SHA256SUMS.",
],
commands: [
"scripts/capture-rpi5-g8h-uart10.c — fresh same-descriptor UART arm ve durable raw close",
"scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 20270 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 16777231 23040666",
"salt-okunur strict PASS sonrası card identity/manifest re-auth ve archive/promotion audit",
],
terminalSessions: [
{
id: "s124-g8h-physical-capture",
title: "G8h fresh UART capture ve terminal marker",
commandLines: [
"scripts/capture-rpi5-g8h-uart10.c — /dev/cu.usbmodem214402, 115200/8N1, exclusive raw",
],
outputLines: [
"terminal_marker_seen=ASELSAN/BOOT8H start_offset=18987 end_offset=19002",
"terminal_grace_complete=true seconds=3",
"capture_closed=true terminal_seen=true grace_complete=true exact_bytes=20270 mode=0444 durable=true success=true",
],
exitCode: 0,
outputMode: "selected",
},
{
id: "s124-g8h-strict-physical-validator",
title: "G8h strict raw validator ve archive kapısı",
commandLines: [
"scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 20270 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 16777231 23040666",
],
outputLines: [
"G8h physical raw PASS: validators=12 milestones=60 exact_bytes=20270",
"G8H_PHYSICAL_RAW_VALIDATION=PASS exact_bytes=20270 sha256=ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 device=16777231 inode=23040666 validators=12 milestones=60",
"ARCHIVE=PASS PROMOTION=PASS",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"S124 raw/validator/archive kanıtı host tarafında bağımsız gözlenmiştir. Güç verme ve güç kesme geçişleri kullanıcı bildirimi sınırındadır; bunlar için bağımsız elektriksel gözlem iddia edilmez.",
limitations: [
"Bu PASS yalnız G8h strict physical BOOT8H raw kabulüdür; Generic SMP, K1/K2, MEM0–MEM2 ve tam workspace GREEN kapsamı değildir.",
"POWER_ON=1 ve POWER_OFF=1 kullanıcı bildirimidir; independently_observed=false.",
"S123 leading-NUL rejection olayı immutable tarihsel kayıt olarak korunur ve S124 ile geriye dönük PASS'e çevrilmez.",
"S124 archive/promotion PASS, package/raw/card re-auth kapılarının sonucudur; fiziksel güç geçişlerinin bağımsız ölçümü değildir.",
],
},snippet sha256: 73a1f88a10ab…file sha256: 9726dbf00f84…
Kayıtlı yürütme/kanıt komutu
scripts/capture-rpi5-g8h-uart10.c — fresh same-descriptor UART arm ve durable raw closeRegistry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06