Android brinda transparencia a los usuarios mostrando indicadores de privacidad para los siguientes tipos de acceso:
Acceso a la cámara y al micrófono. El indicador aparece cuando una app usa una fuente de datos privada a través de los permisos app-op de la cámara y el micrófono. Para conocer el requisito del CDD relacionado, consulta 2.2.5. Modelo de seguridad.
Acceso a la ubicación: El indicador aparece cuando una app accede a la ubicación del dispositivo. Para conocer el requisito del CDD relacionado, consulta 9.8.8. Ubicación.
Los usuarios presionan un indicador para ver qué apps accedieron a sus datos.
Usos activos y recientes
La IU de Android distingue entre los usos en ejecución y los usos recientes:
En Android 17 o versiones posteriores, los usos de la ubicación se consideran activos si el sistema los marca como en ejecución o si tienen menos de 10 segundos. En el caso del punto de ubicación, se considera que el acceso está activo si la app que no es del sistema se ejecuta en un estado de primer plano.
En Android 12 y versiones posteriores, los usos del micrófono y la cámara se consideran activos si el sistema los marca como en ejecución o si tienen menos de cinco segundos de antigüedad.
Los íconos de la barra de estado se muestran cada vez que una app tiene acceso continuo al micrófono, la cámara o la ubicación, que son sensibles para el usuario. Los usuarios pueden presionar estos íconos y ver qué apps acceden al micrófono, la cámara, la ubicación o una combinación de estos elementos. A continuación, se muestra un ejemplo de indicadores en uso:
Figura 1: Indicadores de uso que muestran el acceso activo (esquina superior derecha).
El acceso se considera activo mientras se muestren los indicadores. Primero se muestra un ícono y, luego, se transforma en un punto que permanece hasta que se descarta o cierra la app. Cuando un usuario abre Configuración rápida y, luego, presiona los indicadores, aparece un diálogo que muestra si la app está usando el micrófono, la cámara, la ubicación o una combinación de estos elementos.
En la figura 2, se ilustran los indicadores de acceso activo cuando una app en ejecución accedió a los datos dentro del período activo.
Figura 2: Indicadores de acceso activo y reciente
Los indicadores de acceso reciente muestran que una app accedió a los datos durante los 15 segundos anteriores (o 20 segundos en el caso de los datos de ubicación), pero que la app no está activa. Todas las apps activas se muestran en el diálogo, pero solo una app se muestra como la fuente del acceso reciente, incluso cuando más de una app accedió a los datos en un período anterior de 15 o 20 segundos. En el diálogo, se muestran todas las apps que accedieron a los datos de ubicación dentro del período activo o reciente. La vista de acceso permanecerá hasta que el usuario descarte el diálogo de notificación.
Entrega y habilitación
La clase PermissionManager proporciona un método para completar el diálogo (que reside en la IU del sistema). La IU del sistema reacciona al interruptor de configuración del dispositivo privacy/mic_camera_indicators_enabled. Este interruptor es necesario porque hay dos vehículos de entrega separados: (1) Entrega y, luego, (2) Habilitación.
Flujo del proceso
La funcionalidad del indicador de permisos tiene tres partes principales:
- Las apps
- Los indicadores (controlados por la IU del sistema)
- Una forma de determinar qué apps usan los datos
PermissionController proporciona el mecanismo para determinar qué apps usan datos. La IU del sistema detecta las apps que usan datos privados. La IU del sistema muestra un ícono en la barra de navegación superior que corresponde a los permisos utilizados. PermissionController muestra datos sobre los usos cuando un usuario hace clic en un ícono.
Figura 3: Componentes del sistema y flujo de transiciones (de la IU).
1 Una app solicita datos privados del sistema.
2 El sistema verifica los permisos. Si se permiten los permisos, el sistema notifica al proveedor de datos y registra el uso en app ops.
3 El proveedor de datos le proporciona datos a la app.
4-5 El usuario hace clic en los íconos. La IU del sistema solicita datos de
PermissionManagery presenta el diálogo al usuario.
Detalles del proceso
App ops registra los accesos a las APIs protegidas por permisos de tiempo de ejecución, hace un seguimiento del estado de actividad y la cantidad de llamadas a la API individuales, y también interactúa con los indicadores de la cámara y el micrófono para mostrar a los usuarios cuando las apps acceden a los datos de la cámara y el audio en sus dispositivos.
Las apps usan el micrófono, la cámara o la ubicación llamando a
AppOpsManager.startOp,stopOponoteOp. Esto crea registros de operaciones de la app en el servidor del sistema. En la versión 17 y posteriores, el indicador de ubicación también usa estos registros de operaciones de la app.La IU del sistema detecta nuevas operaciones de la app con los objetos de escucha
AppOpsManager.OnOpActiveChangedInternalListeneryOnOpNotedListener. Cuando llega un uso nuevo (a través de una llamada astartOponoteOp), la IU del sistema verifica que el uso sea de una app del sistema:Si la IU del sistema verifica el uso de la app del sistema y si el uso es para el micrófono, la IU del sistema verifica si el micrófono está silenciado.
Si la IU del sistema verifica el uso de apps que no son del sistema (y, en el caso del uso del micrófono, que el micrófono no esté silenciado; en el caso del uso de la cámara, que la cámara esté activada), muestra un ícono que refleja ese uso.
Si la IU del sistema verifica el uso de apps que no son del sistema, muestra un ícono que refleja ese uso, siempre que los botones de activación pertinentes estén activos:
- En el caso del micrófono, este debe estar activado.
- En el caso de la cámara, el botón de activación está activado.
- En el caso de la ubicación, la app se ejecuta en primer plano.
Si la IU del sistema recibe un noteOp, que no tiene duración, muestra el ícono durante al menos 5 segundos (10 segundos para la ubicación). De lo contrario, el ícono se muestra hasta que recibe stopOp o durante la duración mínima de 5 o 10 segundos, lo que sea más largo. Cuando el usuario hace clic en un ícono, se inicia un intent que va a PermissionController para iniciar el diálogo.
PermissionController carga todo el uso reciente del micrófono, la cámara y la ubicación. Verifica si alguno de ellos se está ejecutando o se ejecutó dentro del período establecido por la IU del sistema (15 segundos para el micrófono o la cámara, 20 segundos para la ubicación). Si encuentra una coincidencia, muestra el nombre de la app y los permisos que usa.
La telefonía debe implementar el uso de permisos (para tener en cuenta la pila de micrófono independiente que se usa en las llamadas telefónicas) mientras trabaja con la app de Búsqueda de Google para Android (AGSA) y los GMS.