¿Cómo verificar si alguna aplicación en el
teléfono inteligente
Android tiene un informe de foto o video, aunque nunca lo necesita? La siguiente opción no es perfecta en absoluto, pero no requiere un firmware "raíz" o personalizado.
PD: agregué una descripción del monitoreo del acceso de las aplicaciones al micrófono al artículo.Lo que necesitas instalar:
- ADB ( Android Debug Bridge ) (por ejemplo, como parte de las herramientas de la plataforma Android SDK ; puede descargarlo aquí );
- controlador para el teléfono (si es necesario, por ejemplo, el controlador USB de Google se puede descargar aquí ).
Activamos el modo de depuración
USB en el teléfono y conectamos el teléfono inteligente al
puerto USB de la computadora, y debe seleccionar el modo de
conexión USB , que no sea "Solo carga".
Texto ocultoEn el teléfono inteligente "Administrador de dispositivos" se muestra, por ejemplo, de la siguiente manera:
en el modo "Foto" o "Archivos"

en modo de unidad USB

Y así, en la salida del comando
lsusb :

Abra la línea de comando en el directorio en el que están instaladas las "herramientas".
Verifique que la conexión sea exitosa (se muestra el número de serie del teléfono inteligente conectado):
adb devices
(para
ventanas )

Para
Linux, el comando se vería así:
./adb devices
Si la computadora no está autorizada para su uso con este teléfono inteligente (para
Android 4.2.2 y posterior), aparecerá el mensaje de advertencia "
no autorizado " junto al número de serie.
Para la autorización, debe confirmar el permiso de depuración a través de
USB en el teléfono inteligente.
Texto ocultoEn Linux , puede aparecer el mensaje " sin permisos "; en mi caso, logré resolver el problema cambiando el teléfono inteligente al modo "Dispositivo de medios ( MTP )".
Inicie el shell en el dispositivo (obtenemos el mensaje "$"):
adb shell

Luego presentamos los siguientes símbolos "mágicos":
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done
Versión mejorada, eliminando la salida "NOMBRE" y líneas vacías:
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Y no pasa nada :-) Hasta que algo decide tomar una pequeña foto :-)
El conjunto de caracteres "mágico" indicado comienza a monitorear el acceso al servicio de la cámara -
media.camera lo más rápido posible (este servicio es implementado por la biblioteca
libcameraservice.so ). Si la cámara no está activa,
dumpsys muestra algo como esto:

Y si se necesita una cámara, entonces esto aparece:
grep comprueba la presencia de un "
PID " y, si existe esta cadena, cortan el número de proceso de la cadena y lo
envían al comando
ps , que muestra datos sobre este proceso, y otro
grep corta su nombre. Después de detectar la actividad de la cámara, haga una pausa por un segundo para que los mensajes no se derramen con demasiada frecuencia. Para interrumpir el comando, use la combinación de
teclas CTRL-C y para salir del shell:
CTRL-D .
El ejemplo más simple es que después de iniciar la aplicación de teléfono inteligente normal para la toma de fotos / videos, los mensajes con el nombre del proceso y la fecha / hora comienzan a llegar a intervalos de 1 segundo:

"
Pero hay aplicaciones más astutas, se pueden encontrar con la palabra clave "cámara espía" (usando un truco, por ejemplo, con una vista previa de un solo píxel (
http://www.ez.ai/2014/05/exploring-limits-of-covert-data .html )). Tal creación se colapsa al comienzo de los disparos y los informes, pero los mensajes fluyen regularmente:

También verifiqué la funcionalidad del método propuesto en una aplicación que toma una sola foto al hacer clic en un botón flotante

sin ninguna ventana de vista previa visible.
El guión capturó con éxito una llamada a la cámara y emitió dos mensajes con cada disparo:

Pero no hay nada que le impida implementar una funcionalidad similar en una aplicación con un nombre más inocuo (
https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your- datos / ) y permisos: bueno, hay todo tipo de casos. Y la aplicación "legal" puede informar cuando lo desee (he conocido la mención de uno de esos casos). Y no es en vano que
Android P haya tomado medidas para evitar que las aplicaciones en segundo plano accedan a la cámara.
El método se ha probado en los teléfonos inteligentes
Huawei SCL-L01 (
Android 5.1.1) y
Huawei G700-U20 (
Android 4.2.1), en otros modelos de teléfonos inteligentes el
formato de salida de
dumpsys puede diferir (no está estandarizado para el servicio
media.camera ), lo que requerirá corrección de código .
El formato del mensaje está codificado en la biblioteca
/system/lib/libcameraservice.so , por ejemplo, para el
teléfono inteligente
Huawei SCL-L01 :

En el
comentario , una pista sobre cómo cambiar el código para trabajar con un teléfono inteligente con
Android 9.
Este comentario muestra el registro de acceso a la cámara mantenido por
HTC U11 .
Pero, por ejemplo, en el "antiguo"
Huawei U8650 (
Android 2.3.4)
dumpsys funciona bien:

Y los derechos no son suficientes para ...
grep :-)
Monitoreo de acceso de micrófonoSe puede aplicar un método similar para monitorear el acceso de las aplicaciones al micrófono. En este caso, debe supervisar el servicio
media.audio_flinger .
Ingresamos el comando en el "shell" (el código dado funciona en el teléfono inteligente
Huawei SCL-L01 (
Android 5.1.1)):
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A20 Input| grep -A1 Client | grep yes | grep -o "[^yes ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Si alguna aplicación graba sonido a través de un micrófono, en la salida de
dumpsys media.audio_flinger hay un fragmento similar:

(
Hilo de entrada - flujo de entrada,
22467 -
PID del proceso de grabación de sonido).
Al grabar sonido a través de la aplicación estándar "Grabadora de voz" y la monitorización está habilitada (a través del código anterior), aparecen los siguientes mensajes:

Pero qué mensajes se vierten cuando se activa la entrada de voz del traductor de
Google :
En otros teléfonos inteligentes, el formato de salida de dumpsys puede ser diferente, lo que requerirá una corrección de código.Por ejemplo, en un teléfono inteligente
Huawei G700-U20 (
Android 4.2.1):

En este caso, el código de monitoreo se verá así:
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A3 Input| grep -A1 Clien | grep -o "[^ ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
Así es como la "revivida" Alice se manifiesta en este caso:
