Как запретить Nokia и Android убивать приложения в фоновом режиме?

Nokia evenwell

Финская компания HMD Global, которая занимается разработкой и продажей устройств под брендом Nokia, разработала самую агрессивную систему контроля над фоновыми приложениями в Android под названием Evenwell и DuraSpeed.

Политика Nokia в экономии заряда батареи привели к созданию DontKillMyApp.com , голоса независимого сообщества разработчиков Android и общего FAQ по работе с недокументированными изменениями вендоров для вариантов экономии батареи в серийном (коммерческом) Android.

Хорошие новости: HMD Global утверждает, что отключила энергосберегающие приложения Evenwell на всех устройствах под управлением Android Pie и новее.
Не такие хорошие новости: DuraSpeed остается.

Было три разных механизма уничтожения приложений:

  • com.evenwell.powersaving.g3 на Android Pie для большинства телефонов Nokia — этот режим был отключен с 8/2019 на устройствах с Pie или выше.
  • com.evenwell.emm на Android Go (Oreo?) для Nokia 1 — вероятно, все еще работает, поскольку HMD отключил только приложения Evenwell для Pie или выше.
  • DuraSpeed на Android Pie (сборка 00WW_3_180) для США Nokia 3.1 (TA-1049, TA-1063) и Nokia 5.1 — по прежнему работает.

Большинство телефонов Nokia (энергосбережение AKA com.evenwell.powersaving.g3)

Экономия электроэнергии Evenwell * (com.evenwell.powersaving.g3) * была отключена HMD Global для устройств с Pie или более поздней версией с 8/2019.

Текст ниже был оставлен здесь для исторического чтения.

Nokia на Android O и P убивает любой фоновый процесс, включая отслеживание сна (или любое другое отслеживание спортивных событий) через 20 минут, если экран выключен. Кроме того, когда приложение убито, все уведомления прекращаются, что делает, например, любые будильники бесполезными.

Мы детально изучили эту проблему. Мы даже купили Nokia 6.1, чтобы воспроизвести проблему. Проблема возникает только на устройствах Nokia с Android Pie. Nokia начала связывать токсичное приложение (package: com.evenwell.powersaving.g3 или com.evenwell.emm, название: защита аккумулятора) со своими устройствами какой-то сторонней компанией Evenwell. Это приложение убивает приложения самым жестоким способом, который мы когда-либо видели среди поставщиков Android.

Белый список приложений от оптимизации батареи не помогает! Evenwell убивает даже приложения из белого списка.

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

Вы можете прочитать больше об этой проблеме здесь: https://community.phones.nokia.com/discussion/3428/background-service-killed-even-when-whitelisted

Чтобы узнать больше о Evenwell, посмотрите, кто такая Nokia?

Nokia 1 (com.evenwell.emm)

В Nokia 1 есть альтернативный пакет, который работает очень похоже на то, что делает пакет com.evenwell.powersaving.g3 на старших моделях.

Nokia 3.1 и 5.1 (DuraSpeed)

HMD Global включил убийцу задач Mediatek DuraSpeed в качестве системной службы. Поскольку DuraSpeed ​​не упакован как приложение, его просто нельзя удалить, но у него есть секретный переключатель настроек, который включает или отключает службу.

Решение для пользователей

Большинство телефонов Nokia (энергосбережение AKA com.evenwell.powersaving.g3)

Чтобы решить эту проблему, пожалуйста, сделайте следующее:

1. Перейдите в Настройки телефона > Приложения > Просмотреть все приложения ( Phone settings > Apps > See all apps )

2. Нажмите в правом верхнем углу меню > Показать систему ( right top corner menu > Show system )

3. Найдите приложение Power Saver в списке, выберите его и принудительно закройте. Он останется на некоторое время остановленным, но в конечном итоге перезапустится.

Отныне фоновые приложения должны работать нормально и использовать стандартную оптимизацию батареи Android.

Тем не менее, сторонние будильники или любые задачи планирования приоритетных задач в определенное время не будут работать. У нас нет никакого решения для этого в настоящее время. ОБНОВЛЕНИЕ: в наших предварительных тестах кажется, что принудительная остановка или удаление приложения энергосбережения также исправляет аварийные сигналы и запуск служб переднего плана, пока энергосбережение не перезапустится.

Альтернативное решение для технически подкованных пользователей:

Большинство моделей Nokia

Отключите пакет com.evenwell.powersaving.g3 с помощью следующих команд adb:

adb shell
pm disable-user com.evenwell.powersaving.g3

Nokia 1 (Android Go)

Отключите пакет com.evenwell.emm с помощью следующих команд adb:

aadb shell
pm disable-user com.evenwell.emm

Nokia 3.1 и 5.1

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

adb shell settings put global setting.duraspeed.enabled 0

Переключение этого приведет к немедленной обратной связи logcat.

04-15 21:13:57.544 1063 1089 D DuraSpeed/DuraSpeedService: onChange, checked: false

Фоновые приложения и уведомления теперь должны работать без каких-либо ограничений — даже после сброса к заводским настройкам и включения всех приложений Evenwell (включая com.evenwell.powersaving.g3).

Решение для разработчиков

Единственный обходной путь, который мы нашли до сих пор, — это держать экран включенным все время, пока выполняется ваш процесс. Да, это расходует заряд батареи. Как обычно, поставщики, пытающиеся обезопасить вашу батарею, приводят к гораздо большему расходу батареи с помощью таких обходных путей. Альтернативой этому является включение экрана менее чем каждые 20 минут.

Еще одна серьезная проблема, для которой мы не нашли обходного пути, заключается в том, что Nokia не позволяет запускать обслуживание, startForegroundService()когда процесс не работает в фоновом режиме. Мы не можем воспроизвести его через несколько минут после того, как процесс переходит в фоновый режим, но через ~ час в журнале появляется следующее сообщение:

ActivityManager: Background start not allowed: service Intent { act=com.myapp.ALARM_ALERT flg=0x4 pkg=com.myapp (has extras) } to com.myapp/.MyService from pid=-1 uid=666 pkg=com.myapp startFg?=true

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

Решение проблемы на других смартфонах

Если у вас Sony, Nokia, OnePlus, Xiaomi, Huawei, Meizu, Samsung или HTC ответ тут — Как запретить системе Android убивать приложения в фоновом режиме

Спасибо!

Теперь редакторы в курсе.