Indicatori sulla privacy

Le autorizzazioni di runtime in Android 6 e versioni successive consentono agli utenti di controllare quando consentono la registrazione dell'audio dal microfono di un dispositivo o del video dalla videocamera di un dispositivo. Prima che un'app possa registrare, un utente deve concedere o negare l'autorizzazione tramite una finestra di dialogo presentata dal sistema.

Android 12 offre agli utenti trasparenza mostrando indicatori quando un'app utilizza un'origine dati privata tramite le autorizzazioni app-op per fotocamere e microfono. I record app-ops accedono alle API protette dalle autorizzazioni di runtime.

App-op monitora sia lo stato di attività sia il numero di chiamate API individuali e interagisce con gli indicatori microfono e 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, visualizzano le app che hanno acceduto ai loro dati. Questa funzionalità è obbligatoria per tutti gli OEM.

Requisiti di visibilità dell'indicatore

Di seguito sono riportati i requisiti per gli indicatori di microfono e fotocamera sui dispositivi con Android 12 o versioni successive:

  • Gli indicatori devono essere visualizzati nella barra di stato e mantenere la priorità visiva più alta (ad esempio, si trovano nella posizione più a destra nell'angolo in alto a destra).
  • Gli indicatori devono trovarsi sempre nella stessa posizione e non devono essere bloccati da un'app al momento dell'avvio.
  • Entrambi gli indicatori devono essere di colore verde (o una variazione di verde).
  • Se fai clic su uno o entrambi gli indicatori, deve essere visualizzata una notifica di attribuzione dell'app che:
    • Mostra il nome dell'app che sta utilizzando il microfono e/o la fotocamera
    • Mostra il nome dell'app che ha utilizzato il microfono e/o la fotocamera negli ultimi 15 secondi
    • Reindirizza gli utenti alla pagina delle autorizzazioni dell'app in Impostazioni

Utilizzo e funzionalità

In Android 12, l'interfaccia utente distingue tra usi in esecuzione e usi recenti. Gli utilizzi vengono 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 ha accesso continuo al microfono o alla fotocamera sensibili all'utente.
  • Gli utenti possono fare clic su queste icone e vedere quali app accedono al microfono, alla fotocamera o a entrambi.

Indicatori di utilizzo di microfono e fotocamera che mostrano che l'accesso è attivo

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

L'accesso è considerato attivo finché gli indicatori sono visibili. Viene visualizzata un'icona che poi si trasforma in un punto che rimane visibile finché l'app non viene chiusa o ignorata.

Quando un utente apre le Impostazioni rapide e tocca gli indicatori, viene visualizzata una finestra di dialogo che mostra se l'app sta utilizzando la fotocamera, il microfono o entrambi.

Indicatori per l'accesso attivo e recente e se l'accesso è avvenuto tramite la fotocamera o il microfono

Figura 2. Indicatori di accesso attivo e recente

L'immagine nella Figura 2 mostra gli indicatori di accesso attivo quando i dati sono stati accessibili 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 una viene visualizzata come origine dell'accesso recente, anche quando più di un'app ha eseguito l'accesso ai dati in un periodo di tempo precedente di 15 secondi. La visualizzazione dell'accesso rimane bloccata finché l'utente non chiude la finestra di dialogo di notifica.

Pubblica e attiva

La classe PermissionManager fornisce un metodo per compilare la finestra di dialogo, che si trova nell'interfaccia utente di sistema.

  • L'interfaccia utente di sistema reagisce a un cambio di configurazione del dispositivo: privacy/mic_camera_indicators_enabled.
  • Il passaggio è necessario perché esistono due veicoli di distribuzione separati, in questo ordine:
    1. Consegna.
    2. Attiva.
  • L'interfaccia utente di sistema non deve arrestarsi in modo anomalo se il metodo in PermissionManager non può fornire i dati necessari.

Flusso del processo

La funzionalità Indicatore delle autorizzazioni è composta da tre parti principali:

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

PermissionController fornisce il meccanismo per determinare quali app utilizzano i dati. SystemUI è in ascolto delle app che utilizzano dati privati. SystemUI mostra un'icona nella barra di navigazione in alto che corrisponde alle autorizzazioni utilizzate. Il PermissionController mostra i dati sugli utilizzi quando un utente fa clic su un'icona.

Flusso di elaborazione per le funzioni dell'indicatore delle autorizzazioni

Figura 3. Componenti di sistema e flusso di transizioni (UI)

Le transizioni numerate nella Figura 3 sono descritte di seguito:

1. Un'app richiede dati privati al sistema.

2- Il sistema controlla le autorizzazioni. Se le autorizzazioni sono consentite, il sistema invia una notifica al fornitore di dati e registra 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 di sistema richiede i dati da PermissionManager e presenta la finestra di dialogo all'utente.

Dettagli della procedura

  1. Le app utilizzano il microfono e la fotocamera, chiamandoAppOpsManager.startOp, stopOp e/o noteOp. In questo modo vengono creati record app-op nel server di sistema.
  2. La UI di sistema è in ascolto di nuove app-ops utilizzando i listener AppOpsManager.OnOpActiveChangedInternalListener e OnOpNotedListener. Quando viene registrato un nuovo utilizzo (tramite una chiamata a startOp o noteOp), la UI di sistema verifica che l'utilizzo sia da parte di un'app di sistema.
  3. Se l'interfaccia utente di sistema verifica l'utilizzo delle app di sistema e se l'utilizzo riguarda il microfono, l'interfaccia utente di sistema controlla se il microfono è disattivato.
  4. Se l'interfaccia utente di sistema verifica l'utilizzo di app non di sistema (e, per l'utilizzo del microfono, che il microfono non è disattivato; per l'utilizzo della fotocamera, che la fotocamera è attivata), mostra un'icona che riflette tale utilizzo.

Se l'interfaccia utente di sistema riceve un noteOp senza durata, mostra l'icona per almeno 5 secondi. In caso contrario, l'icona viene visualizzata fino a quando non riceve un stopOp o per 5 secondi, a seconda di quale periodo è più lungo. Quando l'utente fa clic su un'icona, viene avviato un intent che va a PermissionController per avviare la finestra di dialogo.

PermissionController carica tutto l'utilizzo recente di microfono e fotocamera. Controlla se una di queste è in esecuzione o è stata in esecuzione entro il periodo di tempo impostato dall'interfaccia utente di sistema. Se trova una corrispondenza, mostra il nome dell'app che ha utilizzato l'autorizzazione e quali autorizzazioni ha utilizzato l'app.

A causa di questa modifica in Android 12 e versioni successive, alcune app devono modificare il proprio comportamento o implementare un comportamento speciale.

La telefonia deve implementare l'utilizzo delle autorizzazioni (per tenere conto dello stack del microfono separato utilizzato nelle chiamate), mentre funziona con l'app Android Google Search (AGSA) e Google Mobile Services (GMS).