Vorabprüfung: proot-distro und Rootfs vor jedem Beweis

Aus dem Gerätelauf: S2 lief bis Stufe 1 durch und scheiterte dann an
'proot-distro: cannot execute: required file not found'. Danach meldete die
Auswertung folgerichtig 'S2 gescheitert' — was den Beweis inhaltlich belastet,
obwohl nur die Grundlage fehlte. Genau diese Verwechslung soll der Spike nicht
produzieren.

Alle Beweise prüfen jetzt vorab, ob proot-distro ausführbar ist und das Rootfs
steht, und brechen sonst mit klarer Ansage ab statt mitten im Test aufzulaufen.

Die Meldung selbst ist irreführend: 'required file not found' heißt nicht, dass
proot-distro fehlt — bash hat es gefunden und nennt den vollen Pfad. Es fehlt der
Interpreter aus dessen Shebang-Zeile. Die Prüfung sagt das ausdrücklich und nennt
Datei und Shebang, statt den Suchenden an der falschen Stelle graben zu lassen.
00-bootstrap versucht in dem Fall selbsttätig eine Neuinstallation.

Dazu die Berechtigungsprüfung entschärft: dumpsys verlangt die DUMP-Berechtigung,
die eine gewöhnliche App nicht hat. Das Fehlschlagen ist erwartbar und kein
Warnsignal; die Meldung nennt jetzt den Weg über adb statt Ratlosigkeit zu säen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan
2026-08-10 18:27:40 +02:00
co-authored by Claude Opus 5
parent 69802cde6b
commit 2d3c2fbc6d
5 changed files with 91 additions and 2 deletions
+14 -2
View File
@@ -24,20 +24,32 @@ WAV="$OUT_DIR/$WAV_NAME"
log "HPOS Phase 0 · S2 — Mikrofon im Linux"
log "Protokoll: $LOG"
voraussetzungen_pruefen "$DISTRO" || {
log ""
fail "Abbruch: die Grundlage steht nicht. S2 wäre nicht aussagekräftig."
exit 1
}
# ── Berechtigung ─────────────────────────────────────────────────────────────
# Der häufigste Grund für eine formal korrekte, aber stumme Aufnahme: PulseAudio
# läuft IM Termux-Prozess und öffnet das Mikrofon über OpenSL ES von dort aus.
# Eine Berechtigung, die nur Termux:API hat, nützt ihm deshalb nichts.
section "Mikrofonberechtigung von Termux"
BERECHTIGT="unbekannt"
if RECHTE=$(dumpsys package com.termux 2>/dev/null | grep -i 'RECORD_AUDIO'); then
RECHTE=$(dumpsys package com.termux 2>/dev/null | grep -i 'RECORD_AUDIO' || true)
if [ -n "$RECHTE" ]; then
log "$(printf '%s' "$RECHTE" | sed 's/^/ /')"
case "$RECHTE" in
*granted=true*) BERECHTIGT=ja; ok "com.termux darf aufnehmen" ;;
*granted=false*) BERECHTIGT=nein; fail "com.termux darf NICHT aufnehmen" ;;
esac
else
warn "Konnte den Berechtigungsstatus nicht auslesen"
# Erwartbar: dumpsys verlangt die DUMP-Berechtigung, die eine gewöhnliche App
# nicht hat. Kein Grund zur Sorge, aber der Status bleibt hier eben offen.
warn "Status von hier aus nicht auslesbar (dumpsys ist Apps verwehrt)"
hint "Vom PC prüfen: adb shell dumpsys package com.termux | grep RECORD_AUDIO"
hint "Setzen: adb shell pm grant com.termux android.permission.RECORD_AUDIO"
hint "Oder am Gerät: Einstellungen → Apps → Termux → Berechtigungen → Mikrofon"
fi
if [ "$BERECHTIGT" = nein ]; then