Zwei Anzeigen für einen Handgriff sind eine zu viel
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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fd29df51cf
commit
a3399d3a96
@@ -0,0 +1,47 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user