{ "name": "Nokia", "manufacturer": ["nokia","hmd global"], "url": "/nokia", "award": 0, "position": null, "explanation": "
HMD Global/Nokia was the main reason this website came to exist. They had the most aggressive app killers preinstalled on their phones.
\n\nThere were three different app killing mechanisms:
\n\nThe text below has been left here to preserve the detail and history of events.
\n\nNote: In Feb/March 2019, apparently on a few models distributed in Europe and US, the Evenwell Power Saver has been reworked to not kill the apps as aggressively, which largely resolves all issues for those models.
Nokia on Android O and P kills any background process including sleep tracking (or any other sport tracking) after 20 minutes if the screen is off. Also when killed all alarms are stopped which renders for example any alarm clock apps useless.
We have investigated this issue in details. We did even purchase a Nokia 6.1 to be able to reproduce the issue. The problem only occurs on Nokia devices with Android Pie. Nokia started to bundle a toxic app (package: com.evenwell.powersaving.g3 or com.evenwell.emm, name: Power saver) with their devices by some 3rd party company Evenwell. This app kills apps in the most brutal way we have seen so far among Android vendors.
Whitelisting apps from battery optimizations does not help! Evenwell kills even whitelisted apps.
What this non-standard app does is every process gets killed after 20 minutes regardless it is actually supposed to be running and doing a useful job for the user. Also alarms are not triggered. The aim is apparently to save your battery by rendering tracking apps and other apps that use background processing useless.
Moreover even third-party user visible alarms (alarm clock alarms) are not triggering properly on Nokia as foreground services cannot be started from background on Nokia. This is a serious issue unparalleled to any other vendor. We did not yet find a workaround for this :(. 3rd party alarms clock / calendars etc… won’t be realiable on Nokia.
You can read more on this issue here:\nhttps://community.phones.nokia.com/discussion/3428/background-service-killed-even-when-whitelisted
For fun investigative read about Evenwell, check out Who is Nokia?
\n\nOn Nokia 1 there is an alternative package that works very similar to what the com.evenwell.powersaving.g3 package is doing on the higher end models.
\n\nOn Mediatek-based devices, HMD has baked in DuraSpeed as a system service. There is no user-facing control, or whitelist; this Mediatek-developed task killer terminates all background apps without prejudice.
\n\nDuraSpeed can be disabled through the global settings store, but this is a protected area of Android that can only be manipulated through adb, or an app that has been granted the WRITE_SECURE_SETTINGS
permission (which must also be done with ADB). Additionally, the setting does not survive a reboot. Users can fix their devices themselves using an automation app (see “Solution for users”), or apps can request the WRITE_SECURE_SETTINGS
permission and then cycle the flag on startup to kill DuraSpeed. Syncthing-Fork is one app that has taken this approach.
Unfortunately, there are some reports that even this fix does not work.
\n\n", "user_solution": "To fix this issue, please do the following:
\n\nGo to Phone settings > Apps > See all apps.
\nTap on the right top corner menu > Show system.
\nFind Power saver app in the list, select it and Force close. It will remain stopped for a while, but will restart itself eventually.
\nFrom now on, background apps should work normally and use the standard Android battery optimizations.
\n\nStill 3rd party alarm clocks or any task scheduling of foreground tasks at a particular time won’t work. We do not have any solution for this at the moment UPDATE: in our preliminary tests it seems that force stopping or uninstalling the Power saver app also fixes alarms and starting of foreground services, until the Power saver restarts.
Alternative solution for tech-savvy users:
\n\nDisable the com.evenwell.powersaving.g3 package via the following adb commands:
\n\nadb shell
\npm disable-user com.evenwell.powersaving.g3
Disable the com.evenwell.emm package via the following adb commands:
\n\nadb shell
\npm disable-user com.evenwell.emm
Regrettably, HMD did not include any sort of Settings switch to control DuraSpeed’s operation. And since the task killer is a system service and not an app, it cannot simply be uninstalled. Fortunately, DuraSpeed does have a hidden kill switch: It watches the setting.duraspeed.enabled
setting and will stop itself when the flag is set to any value that does not equal 1
. Once DuraSpeed stops itself, the phone is cured and all background apps will function normally. However, this workaround does not stick across reboots, so the flag has to be cycled at every boot using an automation app like MacroDroid.
First, use adb to grant MacroDroid (or your choice of automation app) the ability to write to the global settings store:
\n\nadb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS\n
Then create a task, triggered at Device Boot, that performs the following:
\n\nNOTE: You need both ‘Global’ and ‘System’ type settings (the screenshots below show only Global - you get the idea).
\n\nRun this task and verify there are no errors. If all is well, then DuraSpeed will be immediately disabled, and it will also be disabled on reboot.
\n", "developer_solution": "The only workaround we found so far is to keep the screen on all time your process runs. Yes, this is very battery consuming. As usually, vendors trying to safe your battery cause much bigger battery drain on this kind of workarounds. An alternative to this is to turn the screen on only less than every 20 minutes.
\n\nAnother serious issue which we did not find a workaround for is that Nokia does not allow to start service using startForegroundService()
when the process is not on background. We cannot reproduce it in few minutes after the process gets to background, but after ~hours there is the following message in the log:
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
This renders any alarm clocks, calendars, schedulers, automation tasks or any other processing at specified time useless.
\n" }