Update: the following was tested for N910FXXU1COH4 and N910FXXU1COI3. For N910FXXU1COJ3 Samsung added an “AppFreezer” system. But it still kills background processes.
The Galaxy Note 4 is an amazing piece of hardware. Recently, it was updated to Android 5.1.1 which solved many performance problems the previous Lollipop (5.0.1) release had.
Unfortunately, the phone still feels sluggish. When you go back to an app that was used 5 minutes ago, you can see how it recreates the app from scratch, there’s a delay with many actions and it feels like an old phone. If you compare it with ie. a Nexus 5, the latter feels faster to use, yet it’s older, has a weaker CPU and less memory.
But worse! With the 5.1.1 release on the Galaxy Note 4 some apps will behave badly. For example you won’t get incoming VoIP calls, missing messages, missing notifications on Android Wear and so on.
People often blame TouchWiz (the Samsung framework modifications). So I decided to have a look at their framework.
Samsung indeed does change the process management part of their device. It seems this was added during the early Android versions (1.x, 2.x) and most of it is not necessary anymore. The default memory management of Android was greatly enhanced since Android Honeycomb (3.x) and even more since ART in Lollipop.
Basically what Samsung does is kill apps and services in the background very frequently. I’m really puzzled of what’s the point in it. I suspect the Samsung engineer responsible for memory management is pictured below:
And there’s a lot of memory management systems in their framework. It seems that when they noticed memory problems, they just wrote a new one!
Fortunately, there’s a way to solve it:
- root your device
- edit system/build.prop with the following:
Find the following line and switch it to false, like this:
sys.config.samp_spcm_enable=false
This disables the service killer. Now your services will run reliably. Let’s add the following lines to disable their memory management:
sys.config.samp_enable=false ro.config.fha_enable=true ro.sys.fw.use_trim_settings=false
The first line disables their Smart Adjust Manager which is a system that tries to rate tasks, do some statistics and kill the ones that seem to take most memory. It seems like a good idea at first but unfortunately it kills tasks you use the most as well and has absolutely no place on a system with 3GB of memory.
The second line enables a simpler memory management system (in fact, it disables most of the old memory management stuff, the ones that you configure with dha/sha lines). It’s very close to the AOSP one.
Finally, the TRIM system, as its name implies, removes cached apps. It seems it was designed for devices with 1GB of memory or less. Why it’s enabled on a Galaxy Note 4 is beyond human understanding.
With these lines, the device feels just as fast and smooth as an AOSP device. Your battery will also lasts longer during active use because the device won’t spend time killing and recreating tasks all the time. Multitasking is a joy again.
This proves that TouchWiz is not bloated but it’s just their braindead memory management.
Note: these modifications likely work with other Galaxy devices but I don’t have the time to reverse engineer all of them. If someone wants to try (Galaxy S6, S6 Edge, Note 5) feel free to report your experience in the comments below.
Just what I was looking for! Thank you so much. Added bonus, once I make your build.prop edits I can uninstall SmartManager and still keep Battery in Settings.
Do you recommend avoiding the N910FXXU1COJ3 ROM?
@Craig: it depends. sys.config.samp_spcm_enable=false still works but the rest gives problems (ie. excessive slowdowns in some cases).
Love u!!!! Man, this made my Note 4 be a new fresh one! All works flawless like u said. I’ve give the note to some friend and all have the same results! Need to say, testing here on 6.0.1 Russia! Thank u! Thank u!!!!
Will these changes work for KK 4.4.4? I don’t see these files in that Android version. Thanks.
Hi. Thanks – I’ve finally figured out how to modify that file without even rooting my device, but cant find those strings to edit. So I rooted it, and still cant find those strings to edit 🙂
I’m running the Samsung Alpha with Lollipop 5.0.2 sock.
Any help will be appreciated
Thanks in advance
@Simon: you can try to add the strings. If they aren’t by default in the file doesn’t mean the framework won’t recognize them.
This is insane! It works on my phone (Xiaomi Redmi Note 4) running MM 6.0 MIUI8.
It totally fixes the app killing situation and the only thing I had to add to this tweak is changing my LMK values because they came TOO HIGH from factory. I cross checked and tested your tweaks and can confirm that it indeed does work! This is insane man! I would like to know if this is Samsung based problem or is this android wide because it seems to affect my Xiaomi phone too.
I’m guessing its old code that people forget to update (by people I mean phone makers).
Again, THANK YOU SO MUCH!