Indicatori sulla privacy

Le autorizzazioni di runtime in Android 6 e versioni successive offrono agli utenti il ​​controllo su quando consentire la registrazione dell'audio dal microfono di un dispositivo o del video dalla fotocamera di un dispositivo. Prima che un'app possa registrare, un utente deve concederle o negare l'autorizzazione tramite una finestra di dialogo presentata dal sistema.

Android 12 offre agli utenti trasparenza visualizzando indicatori quando un'app utilizza un'origine dati privata tramite le autorizzazioni di utilizzo dell'app per fotocamere e microfono. Le operazioni dell'app registrano gli accessi alle API protette da autorizzazioni di runtime.

App-op tiene traccia sia dello stato dell'attività che del numero di singole chiamate API e interagisce con gli indicatori del microfono e della fotocamera in Android 12 per mostrare agli utenti quando le app hanno avuto accesso ai dati audio e della fotocamera sui loro dispositivi. Quando gli utenti fanno clic sugli indicatori del microfono o della fotocamera, vedono quali app hanno avuto accesso ai loro dati. Questa funzionalità è obbligatoria per tutti gli OEM.

Requisiti di visibilità degli indicatori

Questi sono i requisiti per gli indicatori del microfono e della fotocamera sui dispositivi con Android 12 o versioni successive:

  • Gli indicatori devono apparire nella barra di stato e mantenere la massima priorità visiva (ad esempio, posizionati nella posizione più a destra nell'angolo in alto a destra).
  • Gli indicatori devono essere costantemente posizionati nella stessa posizione e non devono essere bloccati da un'app all'avvio.
  • Entrambi gli indicatori devono essere di colore verde (o una variazione del verde).
  • Facendo clic su uno o entrambi gli indicatori è necessario visualizzare una notifica di affordance di attribuzione dell'applicazione che effettua le seguenti operazioni:
    • Visualizza il nome dell'app che utilizza il microfono e/o la fotocamera
    • Visualizza il nome dell'app che ha utilizzato il microfono e (o) la fotocamera negli ultimi 15 secondi
    • Porta gli utenti alla pagina delle autorizzazioni dell'app in Impostazioni

Utilizzo e caratteristiche

In Android 12, l'interfaccia utente distingue tra usi in corso e usi recenti. Gli utilizzi sono considerati "attivi" se sono contrassegnati dal sistema come "in esecuzione" o se risalgono a meno di 5 secondi.

  • Le icone della barra di stato vengono visualizzate ogni volta che un'app dispone dell'accesso continuo al microfono o alla fotocamera sensibile all'utente.
  • Gli utenti possono fare clic su queste icone e vedere quali app accedono al microfono, alla fotocamera o a entrambi.

Microphone and camera in-use indicators showing that access is active

Figura 1. Indicatori di microfono e fotocamera in uso che mostrano l'accesso attivo (angolo in alto a destra)

L'accesso è considerato attivo finché gli indicatori lo mostrano. Viene visualizzata prima un'icona, quindi passa a un punto che persiste finché l'app non viene ignorata o chiusa.

Quando un utente tocca gli indicatori, si apre una finestra di dialogo che mostra che un'app sta attualmente utilizzando la fotocamera, il microfono o entrambi.

Indicators for both active and recent access, and whether the access was from camera or microphone

Figura 2. Indicatori di accesso attivo e recente

L'immagine nella Figura 2 mostra gli indicatori di accesso attivi quando è stato effettuato l'accesso ai dati negli ultimi 5 secondi da un'app in esecuzione.

Gli indicatori di accesso recente mostrano che un'app ha avuto accesso ai dati nei 15 secondi precedenti, ma che l'app non è attiva. Tutte le app attive vengono visualizzate nella finestra di dialogo, ma solo un'app viene visualizzata come origine dell'accesso recente, anche quando più di un'app ha avuto accesso ai dati in un intervallo di tempo precedente di 15 secondi. La visualizzazione di accesso rimane bloccata finché l'utente non chiude la finestra di dialogo di notifica.

Consegna e abilita

La classe PermissionManager fornisce un metodo per popolare la finestra di dialogo, che risiede nell'interfaccia utente del sistema.

  • L'interfaccia utente del sistema reagisce a un cambio di configurazione del dispositivo: privacy/mic_camera_indicators_enabled .
  • Il cambio è necessario perché ci sono due veicoli di consegna separati, in questo ordine:
    1. Consegnare.
    2. Abilitare.
  • L'interfaccia utente del sistema non deve bloccarsi se il metodo in PermissionManager non può fornire i dati necessari.

Flusso di processo

La funzionalità Indicatore di autorizzazione è composta da tre parti principali:

  • Le app
  • Gli indicatori (gestiti da SystemUI)
  • Un modo per determinare quali app utilizzano i dati

Il PermissionController fornisce il meccanismo per determinare quali app utilizzano i dati. SystemUI ascolta le app che utilizzano dati privati. La SystemUI mostra un'icona nella barra di navigazione superiore che corrisponde alle autorizzazioni utilizzate. Il PermissionController visualizza i dati sugli utilizzi quando un utente fa clic su un'icona.

Process flow for Permission Indicator functions

Figura 3. Componenti del sistema e flusso delle transizioni (UI).

Le transizioni numerate nella Figura 3 sono descritte di seguito:

1- Un'app richiede dati privati ​​dal sistema.

2- Il sistema verifica i permessi. Se le autorizzazioni sono consentite, il sistema invia una notifica al fornitore di dati e annota l'utilizzo in app-ops

3- Il fornitore di dati fornisce i dati all'app.

4-5 L'utente fa clic sulle icone. L'interfaccia utente del sistema richiede dati dal PermissionManager e presenta la finestra di dialogo all'utente.

Dettagli del processo

  1. Le app utilizzano il microfono e la fotocamera, chiamando AppOpsManager.startOp , stopOp e (o) noteOp . Ciò crea record app-op nel server di sistema.
  2. L'interfaccia utente di sistema ascolta le nuove operazioni dell'app utilizzando i listener AppOpsManager.OnOpActiveChangedInternalListener e OnOpNotedListener . Quando arriva un nuovo utilizzo (tramite una chiamata a startOp o noteOp ), l'interfaccia utente di sistema verifica che l'utilizzo provenga da un'app di sistema.
  3. Se l'interfaccia utente di sistema verifica l'utilizzo dell'app di sistema e se l'utilizzo è per il microfono, l'interfaccia utente di sistema controlla se il microfono è disattivato.
  4. Se l'interfaccia utente del sistema verifica l'utilizzo di app non di sistema (e, per l'utilizzo del microfono, che l'audio del microfono è attivato; per l'utilizzo della fotocamera, che la fotocamera è attivata), mostra un'icona che riflette tale utilizzo.

Se l'interfaccia utente del sistema riceve un noteOp , che non ha durata, mostra l'icona per almeno 5 secondi. Altrimenti, l'icona viene visualizzata finché non riceve uno stopOp o per 5 secondi, a seconda di quale periodo è più lungo. L'utente che fa clic su un'icona avvia un intento che va al PermissionController per avviare la finestra di dialogo.

Il PermissionController carica tutto l'utilizzo recente del microfono e della fotocamera. Controlla se qualcuno di questi è attualmente in esecuzione o era in esecuzione entro l'intervallo di tempo impostato dall'interfaccia utente del sistema. Se trova una corrispondenza, viene visualizzato il nome dell'app che ha utilizzato l'autorizzazione e quali autorizzazioni ha utilizzato l'app.

A causa di questo cambiamento in Android 12 e versioni successive, alcune app devono modificare il proprio comportamento o implementare comportamenti speciali.

La telefonia deve implementare l'utilizzo delle autorizzazioni (per tenere conto dello stack di microfoni separato utilizzato nelle telefonate), mentre funziona con l'app Ricerca Google per Android (AGSA) e i servizi mobili di Google (GMS).