Скрытая активация камеры браузерами: Большой Брат или технологический просчёт?

    image


    Всем привет!


    Меня зовут Вадим, и я один из технических консультантов и, по совместительству, системный администратор "РосКомСвободы".


    Но данный пост будет не обо мне. Он будет историей о подозрительной (с точки зрения приватности в контексте мобильных телефонов) ситуации, с которой мы недавно столкнулись.
    Он мог бы быть в стиле "А-а-а-а-а-а! Смотрите, Большой брат (Google) следит за нами", но я, всё же, попробую провести какой-никакой анализ и выдвинуть правдоподобные гипотезы о том, почему может происходить то, что произошло.


    Заранее прошу прощения, если кому-то не нравится формат а-ля "журнал }{akep в нулевые". Пишите — исправлюсь.


    Итак. К нам обратился один из наших читателей, утверждая, что при входе на наш сайт (на котором, весьма иронично, сейчас в топе висит плитка нашей кампании против распознавания лиц — BanCam) у него активируется фронтальная камера.


    Дело в том, что он является обладателем телефона из нового поколения телефонов без "чёлок", у которых фронтальная камера вынесена в отдельный "выезжающий" лоток. Который, собственно, и выезжает при обращении к камере.



    Как вы, наверное, догадываетесь, моими первыми мыслями были подозрения о том, что нас каким-то чудом, не смотря на все "охранные механизмы", которые я выстраивал, всё-таки взломали и "протроянили".


    Однако расследование показало, что с нашим сайтом всё в порядке.


    После проведения вышеупомянутого расследования и обсуждения его выводов в техническом чате "РосКомСвободы" я вспомнил о том, что я уже сталкивался на нескольких форумах в интернете с тем, что через баннерные сети (при открытии форума с Android-телефона) "подсовывались" "троянские" apk-пакеты (видимо, в надежде что пользователь установит их, думая, что это официальный клиент данного форума).


    Обдумав данную мысль, я предложил попробовать попроверять "трекеры", которые попали в список разрешённых (данный читатель использует Firefox и установленный в нём аддон uBlock).


    Пара часов экспериментов показали, что камера перестаёт выезжать если заблокировать обращения к домену google.com. Также, где-то к этому же моменту данный юзер заявил, что на сайте kod.ru тоже воспроизводится данная ситуация (до этого мы работали с версией "только у нас").


    Немного углубившись в раскопки, я обнаружил, что запросы к google.com провоцируют не только гугловые трекеры (aka "аналитика"), но даже и обычное "встраивание" видео с ютуба на странице. Воспроизводимость выезда камеры на kod.ru тоже попадала в данную теорию (как выяснилось, на тестируемой странице тоже было видео с ютуба).


    Для того, чтобы еще более точно подтвердить эту теорию я нагуглил рандомный блогопост а-ля "как вставить ютуб-видео в блог, видео-инструкция" с встроенным видео, и на нём ситуация тоже воспроизвелась.


    Итак. Хорошо. На данный момент у нас на руках такая информация: наличие встроенного ютуб-видео на странице триггерит подгрузку каких-то скриптов с google.com, а те, в свою очередь, триггерят выезд камеры.


    Окей, копаем дальше.


    Поковырявшись в браузерных инструментах отладки я нашёл, что с www.google.com (именно с www) грузится странный и до ужаса обфусцированный (да так, что ни один испробованный мной деобфускатор из поисковой выдачи не справился) скрипт, у которого даже имя и то обфусцировано (зная гугл, могу предположить, что через некоторое время этот скрипт пропадёт, а на его место будет поставлен скрипт с другим (но столь же нечитабельным) именем. Так что, вот его код, на всякий случай).


    Беглый просмотр скрипта не показывает наличия тут упоминаний камеры, а погружаться в отладку ещё глубже и интерпретировать что он там делает — нет времени и возможности (хотя, если кто-то из вас, читателей, хочет — можете заняться).


    Пробуем зайти с другой стороны:
    Лично у меня телефон без выездной камеры, поэтому так легко отловить обращение к ней я не могу. Но я могу подключить его по USB и сделать adb logcat | grep -C5 camer (grep — потому что иначе уж слишком много иррелевантного мусора на каждый чих, включая нажатия пальцем на экран или движения телефона в пространстве). Что я, собственно, и делаю...


    Итак, попытка номер один: захожу на тестируемые сайты, и… ничего!


    Закрадывается мысль, что проблема, похоже, всё-таки, где-то на стороне юзера.


    Параллельно с этим процессом, мы обсуждаем ситуацию в вышеупомянутом техническом чате "РосКомСвободы". Спустя некоторое время от одного из участников поступает мнение, что, мол, мобильные браузеры хитрые: они не всегда запрашивают глобальные права на доступ к камере, и если они не предоставлены, то в некоторых случаях они могут и не спрашивать!


    Иду в настройки приложения и вижу что, да, у меня для Firefox не выставлены разрешения на камеру. Включаю, проверяю ещё раз, и вижу простыню на пару "экранов" с подобным:


    скриншот


    Ага! Обращение к камере, значит, всё же есть!
    Более того, сразу после строки с "get device info" идёт явное открытие девайса камеры:


    12-12 17:10:14.734   751  6924 I QCamera : <HAL><INFO> int qcamera::QCamera2Factory::cameraDeviceOpen(int, struct hw_device_t **): 405: Open camera id 0 API version 256

    Проверяю то же самое с Chrome, и всё воспроизводится: если права на камеру отобрать, то в логе "молчание ягнят", а если выдать — тоже, как и с "рыжиком" появляется простыня про доступ к камере.


    Значит, получается проблема:
    а) не локальная для юзера,
    б) не специфичная для браузера.


    Что интересно, при всех этих событиях ни один из этих браузеров не пытался и словом обмолвиться о запросе разрешений на доступ к камере от какого-либо сайта из участвовавших в тесте (да и, впрочем, от ютуба и google.com — тоже).


    В свете вышеописанного у меня родились две гипотезы:


    1. Либо Big Brother, всё же, is watching you, либо
    2. тот обфусцированный до ужаса скрипт в реальности вызывает какую-то часть Camera API в браузерах для фингерпринтинга юзера, но при этом не обращается к камере напрямую. Поэтому и нет запроса на доступ к ней (впрочем, если присмотреться к видео в начале статьи, то можно увидеть как между открытием и закрытием камеры моргает светодиод, что заставляет задуматься).

    Браузеры же исповедуют тут логику: "при инициализации Camera API, если доступа к камере нет, то не делаем ничего (даже не запрашиваем его, пока не возникнет реальная необходимость) а если есть — инициализируем камеры и проверяем что за девайсы там у нас и что они умеют" (для чего, видимо, и происходит "открытие" девайса).


    Вендор же телефона у юзера, похоже, не стал особо углубляться в изобретение софтверных костылей над камерой и решил проблему просто (за что ему, кстати, респект): при обращении к камере — она выезжает. При открытии девайса и обмене с ним данными — моргает диод.


    Итого, получается, что проблема не так уж и фатальна, как казалась в начале, и, хотелось бы надеяться, снимков никто не делает (хотя это, всё же, до сих пор "не точно", т.к. моей компетенции в познании исходных кодов Android'а недостаточно для того чтобы однозначно гарантировать в каком случае простыня обращений к камере в logcat говорит о сделанном снимке, а в каком — просто о светских беседах приложения с девайсом).


    Однако, тем не менее, сам факт того, что открытие любой веб-страницы, на которой будет iframe с встроенным видео с YouTube'а приводит к обращению к камере (и даже каким-то переговорам с девайсом) всё равно довольно печален в контексте приватности и, как мне кажется, всё же стоит обсуждения сообществом.


    А как думаете вы?


    P.S. На английском данный пост опубликован на Medium.


    UPD: спасибо хабравчанам berez и ksil за пакет орфографических правок (а то при вычитке и переписывании разных кусков текста, как это водится, "исправляя одни баги, привнесли пучок других")

    РосКомСвобода
    60.30
    Мониторинг интернет-регулирования в России и мире
    Support the author
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 92

      +13
      Как я уже раньше говорил, я подозреваю, что это сочетание неприспособленности Camera API к механически выезжающим камерам и косяков в фирмвари производителя на стыке с этим самым API.
      Производитель решил, что "этот вызов ОБЫЧНО используется для того чтобы (или прямо перед тем как) получить картинку — ну значит будем выдвигать камеру". Вероятно, это даже могло быть самым лучшим решением потому, что, например, выдвигание камеры на другом вызове могло бы заставлять пользователя ждать перед снимком пока камера выедет.
      Это самое логичное объяснение учитывая, что браузеры должны спрашивать пользователя если код сайта хочет получить доступ к картинке с камеры, звуку, сенсорам движения, локации и прочему. И если он этого не делает (а не делают этого целых два браузера на разных движках) — скорее всего из JavaScript действительно запрашиваются только какие-то метаданные, которые не требуют разрешений.
        +30

        Мой внутренний параноик говорит, что он был бы рад, если бы разрешения запрашивались даже на получение метаданных :)

          +4
          Да, конечно. Однако тут нужно ещё соблюдать баланс между «запрашивать обо всём» и «не задолбать пользователя».
          А вообще, если смотреть на разрешения на уровне Android, то к этому некоторое движение есть. Если вспомнить детализацию разрешений в Android 4-5 и текущих версиях — сейчас стало гораздо подробнее. На одно только использование стореджа минимум два разрешения есть.
          Хотя не все проблемы решены. Например, всё ещё очень неочевидно для конечного пользователя выглядит запрос разрешений из группы «location» для того чтобы, скажем, подключиться по Bluetooth к чему-то или посканировать Wi-Fi сети.
            0
            неочевидно для конечного пользователя

            Сканируя сети ПО может определить локацию пользователя в городе достаточно точно, по мне так все логично. Ну или добавлять еще одно разрешение.

              +3
              А теперь вспомните, кто такой конечный пользователь.
              Для него это не очевидно.
              Логично != Очевидно.

              UPD: Чуть поясню.
              Человек, который не понимает того как устроено API и система разрешений может из-за такого подумать, что вполне добросовестное приложение хочет за ним следить.
              Я к тому, что здесь тоже есть поле для улучшений.
                +3
                У меня например именно поэтому как то знатно пригорело когда я хотел поиграться в Wi-Fi, а прилажуха стала спрашивать разрешения на геоданные. Паранойя и все такое…
                  +1

                  А тут палка о двух концах. SSID и вышки это более чем данные о местоположении. Раньше их можно было получать без разрешения о местоположении. Плохо. Теперь работа с WiFi явноттребует разрешение на местоположение. ИМХО намного лучше, хотя и не очевидно

                    +1

                    В этом и была идея — дать понять пользователю, что запускаемое приложение узнает его местоположение.
                    Видимые телефоном сети показывают его с довольно высокой точностью.

                      0
                      узнает

                      Может узнавать.
              +2

              Внутреннему параноику стоит поставить на телефон XPrivacyLua.

                +1

                Возможно, да, стоит.
                Но суть поста была немного в другом :)

                  +7

                  Правда? А я в этом не уверен. Сегодня это скрипт гугла, совершенного безобидный и чисто случайно так жёстко обфусцированный. Сегодня это чья-то ошибка. Допустим. А что будет завтра? Думаете, имея возможность собирать отпечатки, подслушивать и подсматривать, все компании вдруг остановятся и скажут сами себе "не-ет, так не годится, что же мы в самом деле делаем, нельзя же так с пользователями поступать, срочно перестаём собирать приватные данные на всех, до кого можем дотянуться"? Ну вот и я так не думаю.


                  Суть этого поста может быть только в одном: спасение утопающих дело рук самих утопающих. Кто не защитит себя сам, того не защитит никто. Никакие законы и штрафы не остановят крупные компании вроде гугла (частично потому, что они сами лоббируют эти законы, частично потому, что законы везде разные, частично потому, что имея хороших юристов и регулярно совершая "технические ошибки" можно иметь глубоко в виду те законы, которые мешают им жить).

                    0
                    «не-ет, так не годится, что же мы в самом деле делаем
                    мне кажется, это уже из области фантастики.
                  +1
                  Увы, насколько я знаю, не для новых андроидов.
              0

              Хм, у нас на работе есть проект с QR-ридером, написанном в такие бородатые года, что даже в андроид-эмуляторе плашка "Вы можете двигать камеру клавиатурой" не статично горит, а мерцает примерно с частотой обновления экрана.


              Интересно, насколько сильная дискотека будет, если её натравить на девайс с такой выдвижной камерой %)

              +13

              Банальный фингерпринтинг.


              Так, метод navigator.mediaDevices.enumerateDevices() выдаёт список устройств (через промис), в которых указаны deviceId, что, как понимаете, для фингерпринтинга самое оно. Причём разрешения для работы метода не нужно. Возможно, камера слишком резво реагирует на этот или какой-то подобный метод (есть ещё устаревшие варианты).


              В Сафари так не получится, в нём нужно вызвать getUserMedia(constraints), указывая что именно интересует (например, аудио, фронтальная или задняя камера). Браузер обязательно запросит разрешение (если нет запрета), и только потом даст доступ к устройству и его параметрам. По-другому вы на айфоне камеру не включите и ничего про её параметры не узнаете. Ну, а Гугл, это Гугл. Куда он без фингерпринтинга?


              Для разработчиков могу только посоветовать подключать баннеры только в песочнице iframe без доступа к пользовательским девайсам.

                +1
                Известно какие штуки на iOS могут использоваться для отпечатка пользователя?
                  +3

                  Пару лет назад исследовал эту тему в контексте рекламного трекинга, и в айоси обычно была такая комбинация:
                  Со стороны браузера — юзер-агент (версия ОС, язык, примерный размер экрана)
                  Со стороны приложения после установки — версия ОС, язык, размер экрана, при наличии пермишенов геопозиция
                  В обоих случаях — часовой пояс, айпишник.
                  Со стороны приложения уже давно не прокатывает использовать какие-либо штуки типа мак-адресов (постоянно возвращается пустой), UDID (private API), не очень работает advertisingIdentifier (можно выключить или сбросить).

                  0

                  Это просто предположение или в указанном скрипте используется этот enumerateDevices?
                  Я что-то тоже не смог продраться через обфускацию гугла.

                    +3

                    Та даже хабр имеет столько трекалок, что уж говорить про другие сайты


                    Скриншот с фаерфокс превью

                      0

                      А это по умолчанию настройки Firefox или нет?
                      Мне просто интересно, блокируя google analytics и яндекс.метрику, они осознают, что роют себе могилу?


                      Вот есть типичный сайтик, который что-то продаёт или конструктор чего-либо. Выпускают они апдейт, который почему-то в продакшне сломался на Firefox. Тут команда аналитики видит в проде падение конверсий на конкретном браузере, смотрит в вебвизоре что пошло не так, фиксит.


                      Без аналитики никто не узнает, какого хрена там делают пользователи Firefox и что у них там отваливается и не работает. В сумме с небольшой рыночной долей браузера получится, что половина веба в итоге не будет на нём работать.

                        +2

                        Я уже не помню или это по дефолту, или вручную включил. И буду включать, потому что гуглу не доверяю.
                        П.С. на сайте должны быть контакты, чтобы пользователи сами могли жаловаться на неполадки. Сейчас куча метрик и я не собираюсь разрешать всем всё подряд

                          +1
                          Эта проблема уже давно существует, но не по этой причине. Из-за тотальной доминации Хрома и его клонов, очень многие чихать хотели на ФФ — с каждым годом вижу все больше сайтов, которые на нем работают немного не так. Их пока немного и проблемы обычно не критичные, но тенденция на лицо. Как и продолжающееся падение доли рынка с 15 до 9% за 2 года.
                            +1

                            Говорят, когда-то давно браузеры отправляли специальную строку User-Agent, чтобы сказать веб-серверу, что это за браузер, и веб-сервер мог понять, с каким браузером проблемы. К счастью, это всё ужасы прошлого. Все браузеры отправляют одно и то же фиксированное значение, нет никакого бардака, только порядок: о том, какими браузерам пользуются люди, можно узнать у Google.

                              +1
                              Вот есть типичный сайтик, который что-то продаёт или конструктор чего-либо. Выпускают они апдейт, который почему-то в продакшне сломался на Firefox. Тут команда аналитики видит в проде падение конверсий на конкретном браузере, смотрит в вебвизоре что пошло не так, фиксит.

                              Это так не работает. Обычно никто не замечает такие падения, зато бесплатно кормим гигантов персональными данными своих посетителей. Так что я у себя всё давно заблочил.
                                –1

                                Ну в моей практике работало. У кого не работает — надо качать команду аналитиков.


                                Это отлично, когда человек может заблочить всё, что ему хочется.
                                Плохо, когда заблокировано по умолчанию у всех. Но в FF не так, кстати, я проверил. Аналитика блокируется по умолчанию только в приватных окнах.

                                0

                                А зачем дебажить через аналитику, если для отлова ошибок есть Sentry?

                                  0

                                  Это она пока что есть, пока блокировщики в браузерах про неё не знают :) Сливает себе там данные безнаказанно.

                                    0

                                    При чем тут блокировщики, если сентри на сервере все эксепшены ловит?

                                      0

                                      Эмм, нет. Бэкендовые на сервере, фронтендовые на клиенте. Как иначе-то?

                                        0

                                        Выше уже указали про юзер агент, так что никакой аналитики на фронте не нужно. А для того, чтобы на firefox ничего не ломалось, надо проганять и на нем тесты. headless режим для селениума уже давным давно запилен

                              –1
                              Там в самом начале скрипта написано что это антиспам (детектор ботов, вероятно). Если вы расшифруете приложенный email — увидите что это botguard-contact@google.com.

                              Понятно что на заборе тоже написано, но в данном случае я склонен верить. Могли бы и не писать ничего совсем ведь.
                                0

                                конечно же мы расшифровали этот адрес.
                                Но как вы думаете, какова вероятность того, что письмо на него с вопросом "а вы не трекаете меня, случайно" получит какой-либо ответ? :)
                                // мы, вот, пока ждём, но уже не надеемся

                                  +5

                                  Да уже давно известно, что гуглокапчи «я не робот» пускают без капчи с обычными айпи-адресами только в том случае, если вас уже затрекали. Если нет (заблокировали), то извольте указать автобусы/светофоры/пешеходные переходы/замаскированных вьетнамцев на картинке.

                                0
                                У меня Oppo Reno 2F. Постоянно вижу это при поиске в ленте Инстаграма. Но в браузерах камера не выезжала еще (Android 9 с последними обновлениями безопасности). Камера не выезжает даже если дать Хрому на нее права. Возможно у юзера включена разблокировка по лицу и это как то влияет?
                                  +1
                                  Возможно ребята уже почистили, но попробуйте вот эту страницу — www.comss.ru/page.php?id=6726
                                  При её открытии с телефона у меня выехала передняя камера. Блокировка по лицу отключена. На камеру, браузеру, права были даны. Я написал им в twitter, ответа не последовало.
                                    0
                                    Проверил, камера не выехала. Дал отдельно Хрому доступ к камере, тоже не выехала.
                                  +18
                                  У меня на Порнхабе uMatrix блочит в 10 раз меньше говна чем у вас на сайте. Это сейчас не шутка была.
                                    +1
                                    Эм… А то, что он не блочит на у казанном сайте, чем-то отличается от того, что блочит? Я зашёл — и вышел. Потому что в глазах пестрит.
                                      +5

                                      Мы в курсе, да :'(
                                      Работаем над этой ситуацией.
                                      Тут у нас столкновение интересов технарей (которые, как и вы, не любят лишнюю фигню, которая блокируется uMatrix'ом) и редакции, которым очень нужна аналитика.
                                      Но переговоры ведутся и компромисс не за горами.

                                        +1
                                        Использовать Piwik?
                                          +1
                                          Теперь у них название Matomo. mva очень советую оценить возможности Matomo для аналитики — проект полезный, заслуживает большей популярности.
                                        +5
                                        Вроде не так много и выглядит не сильно подозрительно:
                                        Скрин
                                        image
                                          +1
                                          На порнхабе сильная собственная аналитика. У них даже подключение сторонних скриптов завязано на порнхабовские объекты метрики и телеметрии (MGutils и другие). За что если честно им большой респект, почему-то им я доверяю больше чем гуглу. Видимо потому что у них весь бизнес на этих чувствительных данных построен.
                                          +1
                                          Так или иначе, но принцип «убедительного отрицания» работает. Никак не доказать, что это не простой косяк, а намеренный бэкдор.
                                            0
                                            А почему нужно доказывать именно это, а не обратное?
                                              +1
                                              Штирлиц никогда еще не был так близок к провалу…
                                              +12

                                              А всё-таки красиво это выглядит на видеоролике из статьи.
                                              Зашёл на роскомсвободу, улыбнитесь, вспышка, вы в базе ;)

                                                +1

                                                Ну если такая база — БазаСвободныхЛюдей существует то это, вероятно, самый лёгкий способ в неё попасть ;)
                                                Ну и членство, если так можно выразиться, в ней должно быть весьма почётно — можно на аватерке эдакий смайлик прикрутить желающим :)

                                                  +2

                                                  А потом приходят вежливые люди, изымают базу, и добавляют свободных людей в список распознаваемых лиц.


                                                  Так что лучше не надо.

                                                    0
                                                    БазаСвободныхЛюдей звучит парадоксом
                                                  +1
                                                  А как думаете вы?
                                                  Я бы попытался копнуть далее — пропустить трафик аппарата через прокси и отловить какими файликами и куда он пуляет.
                                                    0
                                                    И сравнить логи те что делает фронтальная камера при реальном фото, и при открытии подозреваемых страниц в браузере.
                                                      +1
                                                      Ну пуляет аппарат хэш фотки с камеры, как вы это поймете? Гаданием на хэшовой гуще?
                                                        0
                                                        Хэш? Тогда я вынужден переспросить с какой пользой можно воспользоваться им на «той» стороне?
                                                          0
                                                          Каюсь, хэш не самого снимка, и может вообще не хэш, а метаданные а-ля сколько людей/есть ли в кадре коты/т.п.
                                                          Общий посыл в том, что практически невозможно отловить передачу таких данных. А сами фотки, конечно, никто так воровать не будет — палевно и очень большой трафик тратился бы впустую => юзер мог бы заметить/просто подумать, мол ну нафиг ваш браузернейм, у меня вон соседнийбраузернейм трафика в 10 раз меньше жрет
                                                            0
                                                            Перцептивный хеш?
                                                              0
                                                              Если я правильно понял его назначение, то он только для сравнения одной картинки в разных представлениях.
                                                        +2
                                                        У меня на компе с камерой и ноуте тоже Каспер иногда агрится на камеру, именно на браузер. В основном на Ютубе. Сама камера при этом не активируется, то есть лампочка не загорается. Возможно ноги оттуда же растут…
                                                          +20

                                                          Блин, с этими выезжающими камерами ж получается, что линукс не нужен теперь! Вместо пеки на линуксе с CD-приводом можно теперь мобильник использовать, чтобы кнопку перезагрузки на сервере с виндой нажимать! :)

                                                            +5
                                                            Я ничего не понял. Расшифруйте пожалуйста.
                                                              +24

                                                              это старая шутка.
                                                              Соль её в том, что есть сервер на windows, который постоянно зависает, но ходить в серверную и перезагружать его — лень (а IPMI нету). Чтобы решить этот вопрос — рядом ставят сервер на Linux/BSD, который НЕ зависает, и делают скрипт, который выдвигает лоток CD-привода (а тот, в свою очередь через костыль нажимает на кнопку reset у вендового сервера.


                                                              bodqhrohro пошутил, что теперь для этого не нужен целый сервер на Linux (и вообще Linux), а можно использовать смартфон с выезжающей камерой.


                                                              Так-то!


                                                              // Всегда ваш, К.О.

                                                                0
                                                                Спасибо.
                                                                  +3

                                                                  еще была история про «засыпающий» сервер на винде, у которого забыли пароль админа. поэтому написали скрипт, который раз в пол-часа выдвигал и задвигал сд-ром, к которому за хвост была привязана мышка. сервер видел активность мыши и не уходил в спящий режим.

                                                                    +2
                                                                    Какое же всё-таки оказалось ключевое изобретение человечества — привод CD-ROM!
                                                                      +3

                                                                      настоящее устройство ввода-вывода:)

                                                                  +7
                                                                  Была такая шутка — возле сервера стоит комп, который пингует сервер, если ответа нет — выезжает лоток CDROM и нажимает на reset.

                                                                  А комментарии мне нужно обновлять…
                                                                    +3
                                                                    И вам спасибо.
                                                                +1
                                                                Владею таким же девайсом. Камера всегда выезжает с включенным светодиодом, потом он гаснет, а при отключении камеры светодиод снова включается, пока камера не заедет назад. На видео камера начинает заежать раньше, чем заканчивается «анимация» выезжающей камеры и начинается «анимация» заезжающей, и возникает такое моргание. Сама же камера включается, когда светодиод уже погас, и как только начинается заезд камеры она выключается. Видимо простой фингерпринт. В Аиде, при опросе девайса камера выезжает так же.
                                                                  +4
                                                                  а я уже было собрался изоленту отклеить с ноута
                                                                    0
                                                                    Хочешь приватности — езжай в село. Хотя какая и там приватность — все про всех все знают.

                                                                    А если еще не серьезно. Не люблю всякие девайсы, которые могут работать от собственной батареи. Только системник, только хардкор. Форева!
                                                                      +1
                                                                      А как же батарейка на биосе?
                                                                        0

                                                                        Можно батарейку выковырять и сделать питание от розетки только. Будет высокотехнологичный проводной телефон :)

                                                                          0

                                                                          Что будет, кстати, если заклеить камеру, чтобы она не выезжала? Как на видеокассетах выломанную для защиты от записи заглушку опять заклеивали. Зависнет, сломается или проигнорирует?

                                                                            0

                                                                            Напомнило ещё, как на сайтах вставляли , заставляя старые браузеры внезапно шуршать дисководом. История по спирали развивается.

                                                                              0

                                                                              Упс, последние два комментария должны были в корень улететь, а подцепились тоже сюда. Зарепорчено.

                                                                              0

                                                                              Потыкал код и ссылки из поста и комментов, так и не воспроизвёл выезжание камеры ( Oppo Reno.

                                                                                0
                                                                                Почему нужно запускать модуль камеры, чтобы получить информацию о её возможностях (в каком нибудь общем виде для всех камер)? Разве нельзя это хранить где-то в устройстве в виде публичной информации и по API стучаться именно к этой информации?
                                                                                  +1
                                                                                  Как раз такой API и предоставляет HAL (Hardware Abstraction Layer) камеры на Android. Не могу сказать, баг / фича ли это дизайна самого API или просто в этом конкретном случае из-за специфического решения вендора получается так, что при открытии модуля камеры выезжает шторка. Учитывая то, что сам HAL оставляет многие детали реализации на откуп вендору, вполне может иметь место второй вариант.
                                                                                    0
                                                                                    Понятно. Получается HAL находится между аппаратным уровнем и программным. Но мы не можем получить доступ к нему без запуска модуля (в нашем случае камеры)?
                                                                                      0
                                                                                      Не возьмусь утверждать за все реализации HAL камеры, но на своих девайсах (девайсы на платформах Exynos4412, U8500) всегда замечал, что открытие HAL затрагивает драйвер в ядре. А поскольку система дергает модули камеры при запуске, иногда забагованный драйвер мог вызывать ребут при запуске.
                                                                                  +3
                                                                                  Про скрипт и что он делает очень подробно написано тут:
                                                                                  stackoverflow.com/questions/21762076/why-does-gmail-use-eval
                                                                                    +2

                                                                                    Ну да, "мы вас тут потрекаем немного, просто чтобы определить что вы не бот. И не важно, что вы сейчас не на форме создания аккаунта, а просто смотрите на рандомном сайте в интернете котиков во встроенном видео с ютуба"

                                                                                    –1
                                                                                    Скорее минифицированный, чем обфусцированный код.
                                                                                      +1

                                                                                      Одно другому, на самом деле, не мешает
                                                                                      // и немного сарказма: а eval() там, значит, для красоты, да? :)

                                                                                      +1

                                                                                      В iPhone есть такая фишка, что если при включённом фонарике зайти в камеру, то фонарик выключится. Таким способом на мой взгляд, может отслеживать в какой момент приложения используют камеру. Например сейчас обнаружил, что при открытие приложения Тинькофф, фонарик гаснет, если в настройках отключить разрешение для камеры, то фонарик при входе в приложение остаётся гореть.

                                                                                        +1

                                                                                        Ну, банковские приложения вообще как только не трекают, оправдывая это тем, что им нужно однозначно удостовериться, что операцию проводит настоящий клиент.
                                                                                        Только вот если бы потом они не торговали этой бигдатой, и не утекала бы она в неизвестном направлении…
                                                                                        // косой взгляд в сторону зелёного банка

                                                                                          0
                                                                                          Разве только он один отметился на этом поприще?
                                                                                        +2
                                                                                        Вчера ради эксперимента на телефоне с чистым Андроид 9 убрал у Google Services разрешение на доступ к камере. Теперь ошибка Google Services вылетает при приходе каждой SMS. Тоже фингерпринтинг?
                                                                                          0
                                                                                          Автор осторожен, да…
                                                                                          И в самом деле, негоже если скрипт в браузере способен творить непотребное бесчинство.
                                                                                          Наверняка это обыкновенный недочёт.
                                                                                          Нет причин полагать обратное.
                                                                                            0
                                                                                            Один из пользователей кинул ссылку, что сабж обсуждали несколько ранее также и пользователи реддита.
                                                                                            Оставлю это тут.

                                                                                            Only users with full accounts can post comments. Log in, please.