1 votes

Comment vérifier si une application Android prend des photos en arrière-plan ?

J'ai une application Android qui charge la caméra en arrière-plan. Il s'agit de l'un des navigateurs internet les plus utilisés - Chrome.

J'ai essayé de déboguer ce qui se passe réellement avec LogCat dans Android Device Monitor. Quelques lignes qui attirent mon attention :

I/CameraManagerGlobal(24529): getCameraService: Reconnecting to camera service
I/CameraService(331): getCameraCharacteristics: Switching to HAL1 shim implementation...
I/NuPlayer(331): setDataSourceAsync(URL suppressed)
I/CameraClient(331): Opening camera 1
E/QCamera2HWI(331): [KPI Perf] int qcamera::QCamera2HardwareInterface::openCamera(hw_device_t**): E PROFILE_OPEN_CAMERA camera id 1
I/QCameraHalWatchdog(331): Starting Watchdog Thread...
E/mm-camera-intf(331): mm_camera_open: dev name = /dev/video2, cam_idx = 2
D/QCameraParameters(331): int32_t qcamera::QCameraParameters::initDefaultParameters(): supported pic sizes: 1280x960,1280x720,640x480,352x288
D/QCameraParameters(331): int32_t qcamera::QCameraParameters::setNumOfSnapshot(): nBurstNum = 1, nExpnum = 1
I/QCameraHalWatchdog(331): Stopped Watchdog Thread...
I/CameraClient(331): Destroying camera 1
E/QCameraPostProc(331): int32_t qcamera::QCameraPostProcessor::deinit(): Jpeg closed, rc = 0, mJpegClientHandle = 7900

Comment puis-je savoir si la photo est réellement prise ?

S'agit-il d'un comportement normal pour vérifier la disponibilité de la caméra ?

1voto

Me7e0r Points 11

Vérifier si une ou plusieurs caméras sont disponibles n'est pas si inhabituel qu'il n'y paraît, cela est souvent utilisé pour vérifier si les options de la caméra doivent être affichées ou non. Il semble également peu probable qu'un attaquant/espion génère une sortie de journal susceptible de révéler ses intentions. Cependant, l'ouverture de la caméra telle qu'elle apparaît dans votre journal semble suspecte et vous devriez l'examiner de plus près. Mes suggestions :

  • Si vous obtenez des chaînes de caractères ou des noms de classe, vous pouvez chercher plus loin dans la source ouverte de "chrome pour Android" (voir ceci poste pour savoir où trouver le code) et vérifier où les chaînes sont utilisées dans le code. Vous pouvez peut-être identifier les appels et les importations de l'API de la caméra et vérifier comment ils sont utilisés. Selon la version d'Android, les importations peuvent varier, mais voici quelques exemples pour l'API Camera. API Camera2 à surveiller :

    • "Android.hardware.camera2.CameraManager"
    • "Android.hardware.camera2.CaptureRequest"
    • "Android.hardware.camera2.CameraCaptureSession"
  • Si vous souhaitez aller plus loin, je vous recommande d'effectuer certains appels d'API à l'aide d'outils tels que Frida o RMS . Cet outil vous permet d'accrocher les appels Java lorsqu'ils sont exécutés et vous pouvez enregistrer plus de données si nécessaire. Ainsi, vous pouvez en fait accrocher l'API de l'appareil photo Java et voir si une photo a été prise. Si vous avez créé le code vous-même, vous pouvez également attacher le fichier débogueur et définir des points d'arrêt pour stopper le code à certains moments.

  • Cela semble bizarre, mais l'une des façons les plus rapides est peut-être de demander directement aux développeurs de chrome pour Android (chrome intégré) pourquoi ils utilisent la caméra et où dans le code. Vous pouvez peut-être ouvrir une nouvelle discussion sur le site projet officiel page web pour demander aux développeurs d'y jeter un coup d'œil.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X