
Blog · · Aktualisiert am · Von Matt Senter
Regen hinter deinen Fenstern – ohne Bildschirmaufnahme
Weatherling benötigt weder die Berechtigung zur Bildschirmaufnahme noch andere Berechtigungen, um Regen hinter deinen Fenstern zu zeigen. Es sieht nie, was auf deinem Bildschirm steht. Es arbeitet mit den Umrissen der Fenster, die macOS jeder App bereitstellt, und läuft in Apples App Sandbox ohne Netzwerkzugriff.
Das klingt vielleicht zu gut, um wahr zu sein. Wenn ein Tropfen auf einer Titelleiste landet, seitlich herunterläuft und hinter dem vorderen Fenster verschwindet, fragt man sich zu Recht, woher die App den Bildschirminhalt kennt. Die kurze Antwort: Sie kennt ihn nicht. Sie weiß, wo sich Dinge befinden, und das reicht für den Regen aus.
Fenstergeometrie statt Fensterinhalte
Jede Mac-App kann macOS nach einer Liste der aktuell sichtbaren Fenster fragen. Weatherling verwendet dafür CGWindowListCopyWindowInfo, denselben öffentlichen Aufruf, mit dem auch Fenstermanager und Bildschirmfoto-Werkzeuge beginnen. Für jedes Fenster liest die App genau fünf Angaben:
- Abmessungen. Position und Größe des Fensters.
- Ebene. Ob es ein normales Fenster, ein Menü oder Teil der Systemoberfläche ist.
- Deckkraft. Ob es tatsächlich sichtbar oder vollständig transparent ist.
- Fensternummer. Eine Kennung, um ein Fenster bei Bewegungen wiederzuerkennen.
- Prozess-ID des Eigentümers. Eine Nummer, die nur dazu dient, Weatherlings eigene Fenster von deinen zu unterscheiden.
Die Liste ist von vorn nach hinten sortiert. Das ist die andere Hälfte des Tricks: Fällt ein Tropfen am Rand eines vorderen Fensters vorbei und landet weiter hinten, wird er einfach gegen den nächsten Umriss in der Liste geprüft. So fällt Regen vor einem Fenster und hinter einem anderen, ohne dass die App ein einziges Pixel von beiden sieht.
Die Liste enthält auch Fenstertitel, den Namen der zugehörigen App und den Freigabestatus. Weatherling liest diese Felder nie. Der Regen braucht sie nicht. Dass sie unberührt bleiben, ist einer der Gründe, warum keine Berechtigung nötig ist.
Warum Fenstertitel Bildschirmaufnahme erfordern würden
Seit macOS Catalina zählt der Titel eines fremden App-Fensters als Bildschirminhalt. Er kann einen E-Mail-Betreff, Dokumentnamen oder die gelesene Seite enthalten. Deshalb gibt macOS Titel nur an Apps weiter, denen du Bildschirmaufnahme erlaubt hast. Ohne diese Berechtigung bleibt das Titelfeld leer.
Diese Grenze bestimmt das Design. Eine App, die sich bei E-Mails anders verhalten wollte als beim Codeeditor, bräuchte Titel oder Bildschirmaufnahmen und müsste um Erlaubnis fragen. Weatherling interessiert nur, wo ein Fenster ist, nicht was es enthält. Deshalb braucht es keine Nachfrage. Auch Bedienungshilfen werden nicht angefordert, weil die App weder andere Apps ausliest noch steuert. Keine Tastaturüberwachung, kein Eingabezugriff, keine Automation.
In der Sandbox, ohne Extras
Mac-App-Store-Apps laufen in Apples App Sandbox. Zusätzliche Zugriffe auf Netzwerk, Kamera oder Dateien außerhalb des eigenen Containers werden über Berechtigungen deklariert. Weatherling deklariert com.apple.security.app-sandbox und beicom.apple.security.files.user-selected.read-write. Letzteres erlaubt das Speichern einer Punktekarte in einer Datei, die du im Speicherdialog auswählst. Apples Codesignierung ergänzt außerdem bei jeder App-Store-App App- und Teamkennungen, die selbst keine Zugriffe erlauben.
Was fehlt, ist genauso wichtig wie das, was vorhanden ist. Eine Sandbox-App ohne Netzwerk-Client-Berechtigung kann keine ausgehende Verbindung öffnen. Dass Weatherling keine Netzwerkanfragen stellt, wird also von macOS erzwungen und nicht nur hier versprochen. Es gibt weder Konto noch Analyse- oder Absturzmeldedienst. Einstellungen wie Regenintensität und Wind liegen im eigenen Sandbox-Speicher auf deinem Mac.
Beim Regengeräusch ist es genauso. Die Aufnahme ist in der App enthalten und wird bei Anrufen ausgeblendet. Weatherling erkennt einen Anruf daran, ob irgendeine App das Mikrofon nutzt – eine Ja-Nein-Auskunft, die macOS über das Gerät bereitstellt. Es öffnet das Mikrofon nie, nimmt kein Audio auf und fragt nicht nach Mikrofonzugriff.
Prüfe es selbst
Du musst das nicht einfach glauben. Drei Prüfungen dauern ungefähr eine Minute:
- Öffne Systemeinstellungen > Datenschutz & Sicherheit > Bildschirmaufnahme (in neueren macOS-Versionen „Aufnahme von Bildschirm & Systemaudio“). Weatherling steht nicht in der Liste, weil es nie danach gefragt hat.
- Prüfe im selben Bereich Bedienungshilfen und Mikrofon. Auch dort steht die App nicht.
- Führe im Terminal Folgendes aus:
codesign -d --entitlements - /Applications/Weatherling.app. Abgesehen von App- und Teamkennungen, die Apples Signierung jeder App-Store-App hinzufügt, sind nur App Sandbox und der Zugriff auf vom Nutzer ausgewählte Dateien zum Speichern von Punktekarten vorhanden. Es gibt keine Netzwerkberechtigung.
Sollte eine künftige Version mehr benötigen, würdest du zuerst eine Nachfrage sehen. macOS erlaubt keiner App, diese Zugriffe unbemerkt zu erhalten.
Der Aufwand der Fensterbeobachtung
Das Lesen der Fensterliste ist günstig. Weatherling fragt sie bei ruhenden Fenstern ungefähr zehnmal pro Sekunde ab, bei Bewegung kurzzeitig häufiger. So folgt das Wasser einem verschobenen Fenster ohne Verzögerung. Zwischen den Abfragen werden nur die Umrisse gespeichert. Sobald ein Fenster schließt, verschwinden auch sie.
Schreibtischdekoration sollte keine Datenschutzverhandlung verlangen. Schalte den Regen ein, passe ihn deiner Stimmung an und mach weiter. Weatherling muss nicht wissen, womit.
Du kannst das Verhalten ohne Installation auf der Startseite ausprobieren. Die verschiebbaren Fenster zeigen dieselbe Idee im Browser. Was die App speichert und was nicht, steht in der Datenschutzerklärung. Warum sich das Ganze lohnen kann, erfährst du unter Warum Regen auf dem Schreibtisch beruhigen kann.