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:
+14
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user