Службы расположения в Android
В этом руководстве рассматривается отслеживание расположения в приложениях Android и описывается, как узнать расположение пользователя с помощью API службы расположения Android, а также Fused Location Provider, доступного в API служб расположения Google.
Android предоставляет доступ к различным технологиям определения расположения, например расположения вышек сотовой связи, Wi-Fi и GPS. Сведения о каждой технологии определения расположения абстрагированы от поставщиков сведений о расположении. Это позволяет приложениям получать расположения одинаковым способом независимо от используемого поставщика. В этом руководстве рассматривается Fused Location Provider — компонент Сервисов Google Play, который интеллектуально определяет лучший метод получения расположения устройств в зависимости от доступных поставщиков и способа использования устройства. Мы рассмотрим API службы расположения Android и узнаем, как взаимодействовать с системной службой расположения с помощью LocationManager . Во второй части этого руководством рассматривается использование API служб расположения Android с помощью LocationManager .
Как правило, в приложениях следует использовать Fused Location Provider вместо устаревшего API службы расположения Android, только если это необходимо.
Принципы определения расположения
Независимо от того, какой API вы выбрали для работы с данными расположения, некоторые принципы в Android неизменны. В этом разделе описываются поставщики сведений о расположении и разрешения, связанные с расположением.
Поставщики сведений о расположении
Для определения расположения пользователя используется несколько технологий. Используемое оборудование зависит от типа поставщика сведений о расположении, выбранного для сбора данных. Android использует три поставщика сведений о расположении.
GPS Поставщик — GPS дает наиболее точное расположение, использует большую мощность и работает лучше всего на открытом воздухе. Этот поставщик использует сочетание технологии GPS и технологии aGPS, которая возвращает данные GPS, собранные вышками сотовой связи.
Поставщик сети — предоставляет сочетание данных Wi-Fi и сотовой связи, включая данные GGPS, собранные башнями ячеек. Он использует меньше электроэнергии, чем поставщик данных GPS, но возвращает данные о расположении переменной точности.
Пассивный поставщик — параметр piggyback, использующий поставщики, запрашиваемые другими приложениями или службами для создания данных о расположении в приложении. Это менее надежный, но более энергосберегающий вариант, который идеально подходит для приложений, для работы которых не требуется постоянное обновление данных расположения.
Поставщики сведений о расположении доступны не всегда. Например, может потребоваться использовать GPS для приложения, но функция GPS может быть отключена в параметрах или устройство может вообще не поддерживать технологию GPS. Если конкретный поставщик недоступен, при выборе этого поставщика может быть возвращено значение null .
Разрешения расположения
Приложению с поддержкой расположения требуется доступ к аппаратным датчикам устройства для получения данных GPS, Wi-Fi и сотовой сети. Управление доступом осуществляется с помощью соответствующих разрешений в манифесте приложения Android. Доступны два разрешения: в зависимости от требований приложения и выбранного API необходимо разрешить одно из следующих разрешений:
ACCESS_FINE_LOCATION — позволяет приложению получить доступ к GPS. Требуется для использования поставщика данных GPS и пассивного поставщика (пассивному поставщику требуется разрешение на доступ к данным GPS, собираемым другим приложением или службой). Необязательное разрешение для поставщика данных сети.
ACCESS_COARSE_LOCATION — разрешает приложению доступ к сотовой сети и Wi-Fi расположению. Требуется для поставщика данных сети, если не задано ACCESS_FINE_LOCATION .
Для приложений, нацеленных на API версии 21 (Android 5.0 Lollipop) или более поздней версии, можно включить ACCESS_FINE_LOCATION и запускать их на устройствах, на которых отсутствует оборудование GPS. Если приложению требуется оборудование GPS, необходимо явно добавить android.hardware.location.gps uses-feature элемент в манифест Android. Дополнительные сведения доступны в справочных материалах по элементу uses-feature Android.
Чтобы задать разрешения, на Панели решения разверните папку Свойства и дважды щелкните файл AndroidManifest.xml. Разрешения будут перечислены в разделе Необходимые разрешения.

Установка любого из этих разрешений укажет Android, что приложению требуется разрешение пользователя для доступа к поставщикам сведений о расположении. Устройства, использующие уровень API 22 (Android 5.1) или ниже, будут предлагать пользователю предоставить эти разрешения при каждой установке приложения. На устройствах с уровнем API 23 (Android 6.0) или выше приложение должно будет выполнить проверку разрешений во время выполнения, прежде чем отправить запрос к поставщику сведений о расположении.
Примечание. Установка ACCESS_FINE_LOCATION подразумевает доступ к примерным и точным данным расположения. Не нужно задавать оба разрешения. Задайте только минимальное разрешение, достаточное для работы приложения.
В этом фрагменте кода приведен пример того, как проверить, имеет ли приложение разрешение для ACCESS_FINE_LOCATION .
Приложения должны быть устойчивы к ситуациям, когда пользователь не предоставил разрешение (или отменил его), и продолжать работу. Дополнительные сведения о реализации проверок разрешений во время выполнения в Xamarin.Android приведены в руководстве по управлению разрешениями.
Использование Fused Location Provider
Поставщик Fused Location Provider предпочтителен для приложений Android, которые получают данные об изменении расположения от устройства, так как он эффективно выбирает поставщик сведений о расположении во время выполнения, чтобы обеспечить оптимальную информацию о расположении и экономить заряд аккумулятора. Например, пользователь, гуляющий на открытом воздухе, получает лучшие координаты расположения с помощью GPS. Если он затем зайдет в здание, где сигнал GPS слабый (или отсутствует), Fused Location Provider может автоматически переключиться на Wi-Fi, который лучше работает в помещениях.
API Fused Location Provider предоставляет множество других инструментов для расширения возможностей определения расположения, включая геозоны и мониторинг активности. В этом разделе описываются основы настройки LocationClient , установка поставщиков и получение данных о расположении пользователя.
Fused Location Provider является компонентом Сервисов Google Play. Для работы API Fused Location Provider в приложении должен быть правильно установлен и настроен пакет Сервисов Google Play, а на устройстве должен быть установлен APK Сервисов Google Play.
Прежде чем приложение Xamarin.Android сможет использовать Fused Location Provider, в проект нужно добавить пакет Xamarin.GooglePlayServices.Location. Кроме того, во все файлы исходного кода, которые ссылаются на классы, описанные ниже, должны быть добавлены следующие инструкции using .
Проверка установки Сервисов Google Play
Работа Xamarin.Android завершится аварийно, если при попытке использовать Fused Location Provider не будут установлены Сервисы Google Play (или этот они окажутся устаревшими). В этом случае возникнет исключение времени выполнения. Если Сервисы Google Play не установлены, приложение должно вернуться к использованию службы расположения Android, о которой говорилось выше. Если Сервисы Google Play устарели, приложение может отобразить для пользователя сообщение с просьбой обновить установленную версию Сервисов Google Play.
В этом фрагменте кода приведен пример того, как действие Android может программно проверить, установлены ли Сервисы Google Play.
FusedLocationProviderClient
Для взаимодействия с Fused Location Provider приложению Xamarin.Android нужен экземпляр FusedLocationProviderClient . Этот класс предоставляет необходимые методы для подписки на данные об изменении расположения и получения последнего известного расположения устройства.
Метод OnCreate действия подходит для получения ссылки на FusedLocationProviderClient , как показано в следующем фрагменте кода.
Получение последнего известного расположения
Метод FusedLocationProviderClient.GetLastLocationAsync() предоставляет простой и неблокирующий способ, позволяющий приложению Xamarin.Android быстро получить последнее известное расположение устройства с минимальными затратами на написание кода.
В этом фрагменте кода показано, как использовать метод GetLastLocationAsync для получения данных о расположении устройства.
Подписка на данные об изменении расположения
A Xamarin. Android приложение также может подписаться на обновления расположения от поставщика сплавленного расположения с помощью метода, как показано в этом фрагменте FusedLocationProviderClient.RequestLocationUpdatesAsync кода:
Этот метод принимает два параметра.
Android.Gms.Location.LocationRequest LocationRequest — объект— как приложение Xamarin.Android передает параметры о том, как должен работать поставщик суетленного расположения. LocationRequest содержит такие сведения, как часто следует отправлять запросы или какова важность точности данных об изменении расположения. Например, важный запрос данных о расположении приведет к тому, что при определении расположения устройство будет использовать GPS и, следовательно, его энергопотребление возрастет. В этом фрагменте кода показано, как создать LocationRequest для расположения с высокой точностью и примерно каждые пять минут проверять наличие изменений расположения, отправляя запросы не чаще чем раз в две минуты. Fused Location Provider будет использовать LocationRequest , чтобы определять, какой поставщик сведений о расположении использовать при попытке определить расположение устройства.
Android.Gms.Location.LocationCallback — для получения обновлений расположения Xamarin. Android приложение должно подклассить абстрактный LocationProvider класс. Этот класс предоставлял два метода, которые могут быть вызваны Fused Location Provider для передачи в приложение обновленных сведений о расположении. Это будет подробнее рассмотрено ниже.
Чтобы уведомить приложение Xamarin.Android об изменении расположения, Fused Location Provider вызовет LocationCallBack.OnLocationResult(LocationResult result) . Параметр Android.Gms.Location.LocationResult будет содержать сведения об изменении расположения.
Когда Fused Location Provider обнаруживает изменение доступности данных о расположении, он вызывает метод LocationProvider.OnLocationAvailability(LocationAvailability locationAvailability) . Если свойство LocationAvailability.IsLocationAvailable возвращает true , то можно предположить, что результаты обнаружения расположения устройства, переданные OnLocationResult , являются точными и актуальными, что соответствует требованиям LocationRequest . Если IsLocationAvailable имеет значение false, то OnLocationResult не будет возвращать результаты поиска.
Этот фрагмент кода является примером реализации объекта LocationCallback .
Использование API службы расположения Android
Служба расположения Android — это более старый API для работы со сведениями о расположении в Android. Данные о расположении собираются аппаратными датчиками и передаются в системную службу, к которой можно обращаться в приложении с помощью класса LocationManager и интерфейса ILocationListener .
Служба расположения лучше всего подходит для приложений, работающих на устройствах, на которых не установлены Сервисы Google Play.
Служба расположения — это особый тип службы, управляемой системой. Системная служба взаимодействует с оборудованием устройства и работает непрерывно. Чтобы использовать данные об изменении расположения в нашем приложении, мы подпишемся на эти данные из системной службы расположения, используя LocationManager и вызов RequestLocationUpdates .
Чтобы получить расположение пользователя с помощью службы расположения Android, требуется выполнить несколько действий.
- Получите ссылку на службу LocationManager .
- Реализуйте интерфейс ILocationListener и обрабатывайте события при изменении расположения.
- Используйте LocationManager , чтобы запрашивать данные об изменении расположения для указанного поставщика. ILocationListener из предыдущего шага будет использоваться для получения обратных вызовов от LocationManager .
- Прекратите получение данных об изменении расположения, когда они перестанут быть нужны приложению.
Диспетчер расположения
Можно получить доступ к системной службе расположения с помощью экземпляра класса LocationManager . LocationManager — это специальный класс, который позволяет взаимодействовать с системной службой расположения и вызывать методы для нее. Приложение может получить ссылку на LocationManager , вызвав GetSystemService и передав тип службы, как показано ниже.
OnCreate удобно использовать для получения ссылки на LocationManager . Рекомендуется задать LocationManager в качестве переменной класса, чтобы мы могли вызвать ее в различных точках жизненного цикла действия.
Запрос данных об изменении расположения из LocationManager
Когда приложение получит ссылку на LocationManager , ему нужно указать LocationManager требуемый тип сведений о расположении и частоту обновления данных. Для этого вызовите RequestLocationUpdates для объекта LocationManager и передайте в него какие-либо критерии для данных об изменении и обратный вызов для получения данных об изменении расположения. Этот обратный вызов является типом, который должен реализовывать интерфейс ILocationListener (более подробно это описывается далее в этом разделе).
Метод RequestLocationUpdates сообщает системной службе расположения, что приложение должно начать получать данные об изменении расположения. Этот метод позволяет указать поставщик, а также пороги времени и расстояния для управления частотой обновления. Например, приведенный ниже метод запрашивает данные об изменении расположения от поставщика сведений о расположении GPS каждые 2000 миллисекунд и только при изменении расположения более чем на 1 метр.
Приложение должно запрашивать данные об изменении расположения только так часто, как это необходимо для его эффективной работы. Это увеличивает время работы аккумулятора и повышает удобство работы пользователя.
Реагирование на данные об изменении расположения из LocationManager
После того как приложение запросило данные об изменении из LocationManager , оно может получить сведения от службы, реализовав интерфейс ILocationListener . Этот интерфейс предоставляет четыре метода для ожидания передачи данных службы расположения и поставщика сведений о расположении, OnLocationChanged . Система будет вызывать OnLocationChanged , когда расположение пользователя изменится настолько, чтобы соответствовать критериям изменения, заданным при запросе данных об изменении расположения.
В следующем коде показаны методы в интерфейсе ILocationListener :
Отмена подписки на данные об изменении из LocationManager
Чтобы обеспечить экономию системных ресурсов, приложение должно как можно скорее отменить подписку на данные об изменении расположения. Метод RemoveUpdates указывает LocationManager остановить отправку данных об изменении в наше приложение. Например, действие может вызываться RemoveUpdates в OnPause методе, чтобы мы могли сэкономить мощность, если приложению не нужны обновления расположения, пока его действие не находится на экране:
Если приложению необходимо получать данные об изменении расположения в фоновом режиме, необходимо создать пользовательскую службу, которая подписывается на системную службу расположения. Дополнительные сведения см. в руководстве по использованию фонового режима для служб Android.
Определение лучшего поставщика сведений о расположении для LocationManager
Приведенное выше приложение задает поставщик сведений о расположении GPS. Однако использовать GPS не всегда возможно. Например, устройство может находиться в помещении или не обладать приемником GPS. В этом случае при запросе поставщика возвращается значение null .
Чтобы приложение работало, когда использование GPS невозможно, добавьте метод GetBestProvider , чтобы при запуске приложения запросить наилучший доступный поставщик сведений о расположении (поддерживаемый устройством и подходящий для пользователя). Вместо передачи конкретного поставщика с помощью объекта Criteria можно указать GetBestProvider требования к поставщику, такие как точность и энергопотребление. GetBestProvider возвращает наиболее подходящий поставщик для заданных критериев.
В следующем коде показано, как получить наилучший доступный поставщик и использовать его при запросе данных об изменении расположения.
Если пользователь отключил все поставщики сведений о расположении, GetBestProvider вернет значение null . Чтобы узнать, как этот код работает на реальном устройстве, обязательно включите GPS, Wi-Fi и сотовые сети в Google Параметры > режим расположения>, как показано на следующем снимке экрана:

На следующем снимке экрана показано приложение определения расположения, использующее GetBestProvider .

Помните, что GetBestProvider не изменяет поставщик динамически. Вместо этого он один раз за жизненный цикл действия определяет наилучший доступный поставщик. Если состояние поставщика изменится после его установки, приложению потребуется дополнительный код в ILocationListener методах ( OnProviderEnabled OnProviderDisabled и OnStatusChanged ) для обработки каждой возможности, связанной с коммутатором поставщика.
Сводка
В этом разделе описано получение расположения пользователя с помощью службы расположения Android и Fused Location Provider из API служб расположения Google.
Samsung Location SDK — что это за программа на Андроид и нужна ли она? (com.sec.location.nsflp2)
Samsung Location SDK — набор разработки программ геолокации, позволяющий получать компаниям геоданные из их собственных приложений.
Процесс пакета — com.sec.location.nsflp2.
Простыми словами: компонент, который предоставляет/или содержит функции отправки вашего местоположения некоторым установленным программам, которые нуждаются в этой информации. Например у вас установлено фирменное приложение магазина или кафе. Это приложение может получать данные о том где вы находитесь, например вы недалеко от кафе — тогда программа может вам предложить посетить его по причине акций/скидок. Это только пример предназначения данного компонента.
Скажу сразу, расходует много батареи по двум причинам:
- Какие-то установленные программы на телефоне активно запрашивают данные местоположения.
- Включена опция отправки данных SOS о текущим местоположении телефона.
Теперь разбираемся
Вот что пишет один человек о данной программе:
Кстати данный необычный шрифт — это пользовательская настройка, которая в данном случае применима к гугловскому переводчику.
Также есть информация, что Samsung Location SDK может отвечать за показ рекомендованных мест и учреждений в Гугл картах. Возможно участвует в показе более релевантной рекламы.
Все больше нахожу комментариев, что активность зависит от установленных приложениях, которые используют опцию определения местоположения.
В любом случае — можно попробовать заморозить используя Titanium Backup или Package Disabler Pro.
Приложение может прилично расходовать батарею. Причина — какие-то ваши программы активно используют функцию определения местоположения.
Внимание! Найдена инфа, что использовать сильно батарею может из-за относительно новой опции, которая позволяет отправлять данные местоположения SOS пользователя каждые 30 минут.
Как отключить Location Services Android
Location Services Android что это — предустановленный в смартфон сервис, который определяет местоположение пользователя и передает его другим приложениям (навигаторам, социальных сетям, играм). При сбое в работе сервиса или другого приложения, появляется соответствующая ошибка.
Как исправить
Из вариантов, как отключить Google Location Services:
- отключите GPS/ГЛОНАСС;
- ограничьте приложениям доступ к геолокации;
- проверьте смартфон/планшет на наличие вирусов.
Существует специальное ПО, которое с помощью Root-прав запрещает софту пользоваться ГПС.
Перезапуск GPS
Базовый способ избавиться от ошибки:
- Откройте шторку быстрого доступа. Выключите «Геоданные» — ошибка должна пропасть.

- «Перезагрузите» смартфон, выбрав соответствующее действие после 1-3 секундного удержания клавиши питания.

- После запуска девайса, снова включите определение местоположения.
Перезагружайте смартфон 1 раз в 1-2 дня. Это позволяет избавиться от мелких ошибок, накопившихся за время работы ОС.
Принудительная остановка
Сервису может требоваться полная остановка, которую не обеспечивает стандартный перезапуск девайса:
-
Перейдите в «Настройки». В открывшемся списке выберите «Приложения», следом зайдите во «Все приложения».


В качестве дополнительной меры, проведите очистку кэша.
Запрет использовать GPS
За появление ошибки, также отвечают приложения, которые пытаются получить доступ к GPS, но не могут этого сделать из-за ошибки в работе сервиса или самого ПО. В таком случае:
-
Через «Настройки» попадите в «Приложения». Оттуда переместитесь в «Разрешения».


Существуют приложения под названием App Ops и/или имеющим дополнение Permission manager. Они выполняют аналогичную функцию и запрещают софту получать доступ к геолокации на системном уровне, для чего используют Root-права или отладочный ADB-мост. Пользоваться ими не рекомендуется, поскольку:
- вместо реальной пользы, софт может выступить как сервис, набитый рекламой, включая демонстрацию той на рабочем столе;
- после установки, часть ПО принимает вид системного и его невозможно удалить без другого специального софта, вроде Titanium Backup.

Перед установкой App Ops обратите внимание на рейтинг и отзывы других юзеров.
Проверка на вирусы
Постоянный доступ к местоположению способны требовать вирусы, тем самым собирая информацию о пользователе и его перемещениях. Чтобы обнаружить угрозу, достаточно пользоваться встроенным решением:
- Запустите софт под названием «Безопасность», «Очистка» или подобное. В перечне функций выберите «Поиск вирусов».

- Дождитесь отчета о проверке, если понадобится, поместите обнаруженные файлы в карантин.

В качестве аналога встроенного решения, выступают Malwarebytes, Kasperskiy Internet Security, Avira.
Ошибка, связанная с Локейшен Сервис на Андроид, является причиной неудачной попытки одного из приложений получить доступ к геолокации смартфона. В редких случаях, когда вышеописанные способы не помогают, есть смысл сбросить настройки до заводского состояния.
Решение проблемы со службой location services на Android
Если на мобильном устройстве постоянно выскакивает служба location services android, то часто бывает недостаточно просто отключить геолокацию. Под этим именем может скрываться опасный вирус, который проникает в системную папку, получая безграничный доступ ко всем функциям телефона.
Что такое location services?

Это системное приложение, которое отвечает за определение местоположения мобильного устройства. Опасности оно не несет, функция геолокации в последнее время внедряется в любой софт: игры, программы, клиенты популярных социальных сетей и т.д. Когда приложению необходимо определить координаты телефона и узнать его местонахождение, программа обращается к сервису геолокации, запуская службу location services.
Данные собираются по спутникам GPS и информации мобильной сети, а затем передаются в то приложение, которое их затребовало. В результате, например, при публикации фотографии ВКонтакте к снимку прикрепляется геолокация с указанием места, где он был сделан. Запустить location services можно даже включенная камера.
Отключение службы
Если location services выскакивает постоянно, можно полностью вырубить службу геолокации.

- Откройте настройки мобильного устройства (можно зайти в Google Настройки).
- Перейдите в раздел «Местоположение».
- Наверху вы увидите ползунок, который отвечает за отключение службы геолокации. Переключите его в положение «Off».
Так вы совсем откажитесь от геолокации. Если такой вариант не устраивает, то посмотрите, какие приложения требуют определение местоположения. Убрать разрешение для отдельных программ можно с помощью утилиты App OPS. После её установки на Андройд в настройках приложения разрешения будут представлены в виде переключателей, которые можно деактивировать. Вам нужно отключить пункт «Location», после чего программа перестанет обращаться к службе location services.
Вместо App OPS можно использовать модуль Permission Master для Xposed Framework. После его установки и перезапуска устройства вы увидите в списке приложений новый значок – щит с шестеренкой. Нажмите на него, чтобы перейти к управлению разрешениями.
На первой вкладке вы найдете список всех разрешений. Нажмите на геолокацию, чтобы увидеть приложения, которым дано такое разрешение. Тапните по программе, у которой необходимо отобрать право доступа к службе геолокации. Она будет перечеркнута красной линией и перестанет беспокоить компонент location services. При этом сама геолокация будет функционировать, так что в других приложениях проблем с определением местоположения не возникнет.
Удаление вируса

Если вы разобрались, как отключить геолокацию совсем или для отдельных приложений, но проблема с постоянным появлением location services сохраняется, то, вероятно, вы имеете дело с вирусом, который маскируется под системный компонент.Кроме неадекватной работы службы определения местоположения есть и другие признаки вирусного заражения.
-
.
- Со счета списываются деньги, в журнале звонков и SMS появляются неизвестные записи.
- Отдельные приложения не запускаются, выдают ошибку.
- Перестают работать или функционируют некорректно отдельные функции устройства (в данном случае, устройство неправильно определяет местоположение).
- Батарея разряжается быстрее обычного.
- Антивирусная программа информирует о наличии зловредного кода.
Ручное удаление
Если на телефоне есть root-права, можно найти и удалить файл вредоносного приложения вручную. Используйте для этой цели мощный файловый менеджер, например, Root Explorer. Если в обычном режиме сделать это не удается, попробуйте выполнить процедуру в безопасном режиме.

Чтобы попасть в безопасный режим, нажмите клавишу питания, а затем тапните и оставьте палец на пункте «Отключение питания», пока не появится небольшое окошко. В нем будет предложение перейти в безопасный режим.
Безопасный режим хорош тем, что в нем не работают сторонние приложения. Поэтому велика вероятность, что вирус перестанет функционировать, и вы сможете его спокойно удалить. Но достоинство становится недостатком: антивирусы в безопасном режиме тоже не запускаются, так что использовать их для обнаружения и удаления зловреда не выйдет.
Другие способы удаления вируса
Раньше Android-устройства при подключении к компьютеру определялись как съемные диски, которые можно было проверить с помощью антивируса. Сейчас такой возможности у большинства телефонов нет, потому что даже при включенной отладке они отображаются как медиаустройства. Поэтому вариант с использование антивируса на компьютере или программы Android Commander больше не действуют. Но это не значит, что вирус никак нельзя удалить. Можно использовать следующие способы очистки телефона:
-
через системное меню.
- Откат к заводскому состоянию через меню Recovery.
- Перепрошивка мобильного устройства.
У этих методов есть один общий недостаток: после их применения вы получите чистое устройство, на котором не будет ни контактов, ни сообщений, ни других личных данных. Чтобы минимизировать потери, используйте резервное копирование информации. Но не делайте полный «слепок» системы, сохраняйте нужные файлы в ручном режиме, чтобы точно не перенести в резервную копию вирус.
Контакты можно синхронизировать с сервисом Google или скопировать на SIM-карту, музыку, фотографии, видеозаписи – перенести временно на компьютер, подключив мобильное устройство по USB. После завершения подготовительного этапа можно приступать к реализации одного из перечисленных выше способов. В первую очередь попробуйте сбросить настройки через системное меню:

- Откройте настройки мобильного устройства.
- Перейдите в раздел «Восстановление и сброс».
- В поле «Возврат к заводским настройкам» нажмите «Сброс настроек».
- Посмотрите, какие данные будут удалены. Если вы уже сохранили всю необходимую информацию, нажмите «Сбросить настройки телефона».

После сброса и перезапуска устройства вы получите чистую систему без вирусов и личных данных. Если по какой-то причине этот способ не работает, сделайте откат через меню Recovery. Обычно для запуска Recovery необходимо выключить телефон и включить его сочетанием кнопок увеличения громкости, питания и «Домой». Однако процедура может отличаться в зависимости от модели, поэтому лучше уточнить этот момент для конкретного устройства.В меню Recovery есть опция wipe data/ factory rest. После её применения телефон будет возвращен к заводскому состоянию. Если и это не помогло, то попробуйте выполнить перепрошивку устройства. Скачайте прошивку, заслуживающую доверия, и установите её вместо скомпрометированной системы.