«Яндекс» не захотел объяснить, почему «Метро» фоном отправляло данные о местоположении пользователя

в 12:40, , рубрики: кейсы, Медиа, Текучка, яндекс, метки: , , ,

«Яндекс» говорит, что исправил ошибку в Яндекс.Метро для Android, из-за которой приложение фоном отправляло данные о местоположении пользователя на сервера компании, — пост о выпуске новой версии с исправленным поведением опубликован на Хабре.

Однако, в публикации на Хабре нет четко-сформулированного описания ошибки. Следите за руками:

Существование проблемы постоянных фоновых загрузок на сервер признается:

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

Затем говорится, где внутри приложения был расположен код загрузки:

Как же возникла эта ошибка? Отправка статистики была вставлена в обработчик Application.onCreate (), который вызывается каждый раз при инициализации любого из процессов Метро, не учитывая, что бывают не только запуски приложения пользователем, но и фоновые вызовы процессов приложения.

Но откуда и почему код onCreate () вызывался с высокой частотой в посте однозначно не говорится.

В тексте есть объяснение, зачем приложению нужно было разрешение на старт при запуске системы:

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

Однако старт при запуске не объясняет ежеминутной загрузки данных о местоположении пользователя.

В тексте также упоминается, что Яндекс.Метрика для приложений (система сбора статистики, которую создатели приложений могут внедрить в свои продукты) не пытается работать с сетью в каждом приложении, в котором установлена, а выбирает одно приложение на телефоне как ведущее, создаёт в его рамках отдельным процессом сервис, через который все остальные приложения отправляют свою статистику. И таким «главным» приложением может быть выбрано любое из тех, где есть Метрика (в том числе и Метро).

Также в тексте упоминается, что на время жизни процесса приложения влияет виджет.

В итоге, Яндекс признает проблему, признает, что эта проблема может быть не только в Яндекс.Метро, но и в других приложениях компании. Но не дает четкого ответа, откуда и почему код отправки местоположения пользователя вызывался у некоторых клиентов раз в минуту.

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js