WeatherlingSono felice solo quando piove

Blog · · Aggiornato · Di Matt Senter

Pioggia dietro le finestre senza registrare lo schermo

Weatherling non necessita dell'autorizzazione alla registrazione dello schermo o di qualsiasi altra autorizzazione per far piovere dietro le finestre. Non vede mai cosa c'è sullo schermo. Funziona dal contorno di ogni finestra, che macOS condivide con ogni app, e funziona all'interno dell'App Sandbox di Apple senza accesso alla rete.

Può sembrare troppo bello per essere vero. Quando guardi una goccia atterrare su una barra del titolo, correre lungo il lato e scivolare dietro la finestra di fronte, è ragionevole chiedersi come fa l'app a sapere cosa c'è sullo schermo. La risposta breve è che non è così. Sa dove sono le cose e questo risulta essere tutto ciò di cui la pioggia ha bisogno.

Geometria della finestra, non contenuto della finestra

Ogni app per Mac può chiedere a macOS l’elenco delle finestre sullo schermo. Weatherling usa CGWindowListCopyWindowInfo, la stessa chiamata pubblica usata da gestori di finestre e strumenti per screenshot. Per ogni finestra legge soltanto cinque informazioni:

  • Limiti. Dove si trova la finestra e quanto è grande.
  • Strato. Che si tratti di una normale finestra, di un menu o di parte dell'interfaccia utente del sistema.
  • Alfa. Se sia effettivamente visibile o completamente trasparente.
  • Numero della finestra. Un ID, in modo che una finestra possa essere seguita mentre si muove.
  • ID del processo proprietario. Un numero, utilizzato solo per distinguere le finestre di Weatherling dalle tue.

L'elenco ritorna in ordine dalla parte anteriore a quella posteriore, che è l'altra metà del trucco. Una goccia che cade oltre il bordo di una finestra anteriore e si ferma su una più indietro è semplicemente una goccia confrontata con il contorno successivo nell'elenco. È così che la pioggia può cadere davanti a una finestra e dietro un'altra senza che l'app veda nemmeno un pixel di nessuna delle due.

Lo stesso elenco offre anche il titolo di una finestra, il nome dell'app che la possiede e se è condivisa. Weatherling non legge mai quei campi. La pioggia non ha alcuna utilità per loro e lasciarli soli è uno dei motivi per cui non è richiesta alcuna autorizzazione.

Perché i titoli delle finestre necessitano della registrazione dello schermo

A partire da macOS Catalina, il titolo della finestra di un'altra app conta come contenuto dello schermo. Un titolo può contenere l'oggetto di un'e-mail, il nome di un documento o la pagina che stai leggendo, quindi macOS trasmette i titoli solo alle app consentite in Registrazione schermo. Senza tale autorizzazione il campo del titolo torna semplicemente vuoto.

Quella linea rappresenta l'intero vincolo di progettazione. Un'app che volesse comportarsi in modo diverso per la tua posta rispetto al tuo editor di codice avrebbe bisogno di titoli o catture di schermate e dovrebbe chiedere. A Weatherling non interessa cosa sia una finestra, solo dove si trova, quindi rimane sul lato della linea che non necessita di prompt. Non esiste nemmeno una richiesta di accessibilità, perché nulla viene letto dall'interno di altre app e nulla le controlla. Nessun monitoraggio della tastiera, nessun accesso all'input, nessuna automazione.

Sandboxed, senza alcuna aggiunta

Le app del Mac App Store vengono eseguite nell'App Sandbox di Apple e dichiarano tutto ciò che desiderano in più tramite i diritti: accesso alla rete, fotocamera, file all'esterno del proprio contenitore e così via. dichiara Weatherling com.apple.security.app-sandbox e com.apple.security.files.user-selected.read-write. Quest'ultimo consente di salvare una scheda punteggio in un file scelto nella finestra di dialogo Salva. (La firma del codice di Apple contrassegna inoltre ogni app dell'App Store con i suoi identificatori di app e team, che non garantiscono nulla.)

L'assenza conta tanto quanto la presenza. Un'app sandbox senza autorizzazione client di rete non può aprire una connessione in uscita, quindi il fatto che Weatherling non effettui richieste di rete è imposto da macOS, non solo promesso qui. Non esiste alcun account, nessuna analisi e nessun servizio di segnalazione degli arresti anomali. Impostazioni come l'intensità della pioggia e il vento risiedono nello spazio di archiviazione sandbox dell'app sul tuo Mac.

Il suono della pioggia funziona allo stesso modo. La registrazione viene fornita all'interno dell'app e durante una chiamata la pioggia svanisce. Weatherling nota la chiamata controllando se qualche app sta utilizzando il microfono, un sì o un no che macOS segnala sul dispositivo. Non apre mai il microfono, non acquisisce l'audio né richiede l'accesso al microfono.

Controlla tu stesso

Non devi fidarti di nulla di tutto ciò. Tre controlli richiedono circa un minuto:

  1. Apri Impostazioni di sistema, Privacy e sicurezza, quindi Registrazione schermo (chiamata Registrazione audio schermo e sistema nelle versioni più recenti di macOS). Weatherling non è nell'elenco perché non ha mai chiesto.
  2. Controlla Accessibilità e Microfono nella stessa sezione. Non c'è neanche questo.
  3. Nel Terminale, esegui codesign -d --entitlements - /Applications/Weatherling.app. Oltre agli identificatori di app e team che la firma di Apple aggiunge a ogni app dell’App Store, i diritti sono App Sandbox e accesso ai file selezionati dall’utente per il salvataggio delle schede punteggi. Non esiste alcun diritto di rete.

Se una versione futura avesse bisogno di qualcosa in più, verrebbe visualizzato prima un messaggio. macOS non consente a un'app di acquisire nessuno di questi in silenzio.

Quanto costa guardare le finestre

Leggere l'elenco delle finestre è economico. Weatherling lo richiede circa dieci volte al secondo mentre le finestre sono ferme, e brevemente più velocemente mentre qualcosa si muove, in modo che l'acqua segua una finestra che trascini invece di restare indietro. Tra un controllo e l'altro non viene memorizzato nulla tranne i contorni stessi, che scompaiono nel momento in cui la finestra si chiude.

Una decorazione per il desktop non dovrebbe comportare una trattativa sulla privacy. Attiva la pioggia, impostala in base al tuo umore e torna a fare quello che stavi facendo. Weatherling non ha bisogno di sapere di cosa si tratta.

Puoi provare il comportamento senza installare nulla sulla pagina iniziale, dove le finestre trascinabili riproducono la stessa idea nel browser. I dettagli su ciò che l’app memorizza o meno sono nell’informativa sulla privacye perché vale la pena farlo Perché la pioggia sul desktop può calmarti.