Apples eigene Einblendung lässt sich aushängen, ohne Root und ohne SIP anzufassen: `com.apple.OSDUIHelper` liegt in der GUI-Domäne des angemeldeten Benutzers, nicht im System. `launchctl bootout` dort hinein genügt. Standardmäßig aus, denn es verschwindet **jede** Einblendung — auch Helligkeit und Feststelltaste, und für die Feststelltaste hat Onyx keinen Ersatz. Beim Beenden wird wieder eingehängt: eine Einstellung darf nicht überleben, was sie eingestellt hat. Dazu zwei Fehler im Anlernen behoben. Der Posenname stand als roher Schlüssel da — die Zeichenketten liegen im Bündel von `FaceProvider`, gesucht wurden sie im Hauptbündel. Und „Gesicht vergleichen" blieb nach dem Anlernen grau, weil `isEnrolled` bei jedem Aufruf den Schlüsselbund las: richtig, aber für SwiftUI unsichtbar, weil es nichts gab, woran eine Ansicht die Änderung hätte bemerken können. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# Spike J — Apples eigene Einblendung unterdrücken
|
|
|
|
> Im Plan heißt dieser Spike „G". Die Buchstaben in `docs/spikes/` sind
|
|
> fortlaufend vergeben; hier läuft die vorhandene Reihe weiter.
|
|
|
|
**Frage.** Lässt sich `com.apple.OSDUIHelper` zuverlässig aushängen? Kommt er von
|
|
selbst zurück? Was passiert beim Ab- und Anmelden? Steht SIP im Weg?
|
|
|
|
**Gemessen am 05.09.2026**, rein lesend.
|
|
|
|
## Ergebnis
|
|
|
|
| Prüfung | Befund |
|
|
|---|---|
|
|
| Prozess läuft dauerhaft? | **nein** — bedarfsgesteuert, `state = not running` |
|
|
| LaunchAgent | `/System/Library/LaunchAgents/com.apple.OSDUIHelper.plist` |
|
|
| Domäne | **`gui/<uid>`** — die des angemeldeten Benutzers, nicht `system` |
|
|
| SIP | aktiviert, `OSDUIHelper.app/Contents` ist `restricted` |
|
|
|
|
**Der entscheidende Punkt:** der Dienst ist in der **Benutzer**-Domäne geladen.
|
|
`launchctl bootout gui/<uid>/com.apple.OSDUIHelper` hängt ihn dort aus — ohne
|
|
Root und ohne die SIP-geschützte Datei anzufassen. Geändert wird nur, was in der
|
|
eigenen Sitzung geladen ist.
|
|
|
|
## Was das kostet
|
|
|
|
Es verschwindet **jede** Einblendung, nicht nur die für die Lautstärke: auch
|
|
Helligkeit und Feststelltaste. Onyx zeigt nur die Lautstärke und die Helligkeit
|
|
— die Feststelltaste hätte dann gar keine Rückmeldung mehr.
|
|
|
|
Deshalb:
|
|
|
|
- Der Schalter steht **standardmäßig aus**. Das ist eine Entscheidung, die man
|
|
treffen soll, nicht eine, die man vorfindet.
|
|
- Beim Beenden von Onyx wird wieder eingehängt. Ohne das säße jemand bis zum
|
|
nächsten Abmelden ganz ohne Rückmeldung da und wüsste nicht, warum. Eine
|
|
Einstellung darf nicht überleben, was sie eingestellt hat.
|
|
|
|
## Was der Spike **nicht** getan hat
|
|
|
|
Nichts ausgehängt. An einem Systemdienst zu drehen, um zu sehen was passiert,
|
|
ist nichts, was ungefragt geschieht — auch dann nicht, wenn es sich zurücknehmen
|
|
lässt. Geprüft wurde nur, wo der Dienst liegt und wem er gehört.
|
|
|
|
**Damit ist auch nicht gemessen**, ob er von selbst zurückkommt, wenn etwas ihn
|
|
anfordert. Der Verdacht besteht: er ist bedarfsgesteuert. Falls ja, muss das
|
|
Aushängen wiederholt werden — das zeigt sich beim ersten Einschalten.
|