Финская компания 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
Экономия электроэнергии 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)
Чтобы решить эту проблему, пожалуйста, сделайте следующее:
- Перейдите в Настройки телефона > Приложения > Просмотреть все приложения ( Phone settings > Apps > See all apps )
- Нажмите в правом верхнем углу меню > Показать систему ( right top corner menu > Show system )
- Найдите приложение 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
Это делает бесполезными любые будильники, календари, планировщики, задачи автоматизации или любую другую обработку в указанное время.
Решение проблемы на других смартфонах
- Pixel, Nexus и чистый Android
- Nokia на Android P убивает любой фоновый процесс
- OnePlus и одно из самых серьезных ограничений работы фоновых процессов
- Huawei cвоя оболочка EMUI и серьезные ограничения
- Xiaomi и надстройка над Android под названием MIUI
- Samsung использует грязную технику экономии заряда батареи
- Meizu на Android завершает программы в фоновом режиме
- Sony уничтожает ваши запущенные приложения с помощью Stamina
- Asus не дает запускаться приложениям с помощью Power Master
- Wiko смартфоны с проблемой
- Lenovo решение проблемы
- Для других производителей решение как запретить системе Android убивать приложения в фоновом режиме