So you want even better performance and battery life than what I include in my flashable update package and in my deep debloat flashable update package? Not afraid to get your hands dirty with more hands-on config? Not afraid to fork over a few dollars to get the nice root apps we need to do so? Well okay then, let's dive in!
Disclaimer: You tweak your phone at your own risk, even if you follow my guide exactly. If something doesn't work right for you or you have problems, feel free to report it so I can modify my guide accordingly, but I'm not offering anyone specific support or help with any of this process. This is just what I do to make my phone that much more optimized.
Apps you'll need:
Android Google Play Store apps you'll need:
Amplify (including in-app pro activation)
Greenify (including pro package)
L Speed [ROOT] (free)
LeanDroid (including in-app pro activation)
Android Xposed modules you'll need:
Amplify (installed via Play Store app)
Greenify (installed via Play Store app)
(don't forget to activate Xposed modules after you've installed them, then reboot your phone)
Additionally, you'll need the Xposed framework installed and functional. Check my root guide under Recommended Next Steps if you need help with that.
You'll notice that I don't use any task managers (with the slight exception of Greenify, but it's going to be set up to deep-sleep apps, not kill them). You'll also notice I don't use any CPU tweaking apps -- the default settings from our carrier does really well and are persistently set by my flashable update package anyway.
Note: all of the changes in this section will be in your device's main settings.
Note: on my Verizon Galaxy S7, I use the 'Global' preferred network node (under 'Mobile networks'). Others have recommended LTE/GSM/UMTS instead -- use whichever works best for your device.
Tap on Wireless and networks: More. Tap on Nearby device scanning and turn it off.
Tap on Phone: Display and wallpaper. Tap on Always on Display and turn it off. If the AODService [com.samsung.android.app.aodservice] package is uninstalled or frozen, it should already be off.
Tap on Personal: Location. Enable Location if it's turned off so that you can tap on Improve accuracy and turn both Wi-Fi scanning and Bluetooth scanning off. Turn Location back off if you like. I only enable Location when I need it. Still in the Location settings, tap at the bottom on Google Location History. Tap to turn off Location History.
Tap on System: Developer options (should already be enabled from the root section of my guide). Scroll to three options labeled "Window animation scale", "Transition animation scale", and "Animator duration scale". Set all three to "Animation off".
Note: swipe from the left in this app to get a list of sections.
Show launcher icon: checked
Choose theme: inconsequential
Service Blocking: checked
Force English: inconsequential
Scroll Item Names: checked
Note: find the item in the list and tap it to configure, then tap 'ON' under 'SETTINGS' to enable controlling the wakelock, then tap the field immediately under this to configure the throttle for the wakelock.
LocationManagerService: 10 seconds
Icing: 30 seconds
GCoreFlp: 60 seconds
NlpWakeLock: 60 seconds
NetworkStats: 60 seconds
SyncLoopWakeLock: 300 seconds
AudioIn: 240 seconds
NlpCollectorWakeLock: 60 seconds
Wakeful StateMachine: GeofencerStateMachine: 10 seconds
GpsLocationProvider: 1 second
ContextManagerWakeLock: 5 seconds
UlrDispSvcFastWL: 9999999 seconds
RILJ0: 60 seconds
ImsService: 15 seconds
Note: find the item in the list and tap it to configure, then tap 'ON' under 'SETTINGS' to enable controlling the alarm, then tap the field immediately under this to configure the throttle for the alarm.
com.android.internal.telephony.data-stall: 60 seconds
com.google.android.gms/.lockbox.LockboxAlarmReceiver: 60 seconds
com.levelup.beautifulwidgets.core.ACTION_REFRESHTIME: 120 seconds throttles the Beautiful Widgets widget refresh time
com.google.android.gms.location.fused.SEND_LOCATIO N_IN_SMD_MODE: 5 seconds
Note: services can either be enabled or disabled entirely, not throttled.
com.google.android/gms/com.google.android.location.reporting.service.Disp atchingService: Deny
com.google.android.gms/com.google.android.location.internal.PendingIntent CallbackService: Deny
Enable the ForceDoze service.
Don't disable sensors on screen off: unchecked
Turn off while charging: unchecked
Auto-rotate/brightness fix: unchecked
Show persistent notification: checked (your preference may vary)
Ignore lockscreen timeout: checked
Whitelist apps: (none)
Disable WiFi during Doze: unchecked
Disable mobile data during Doze: unchecked
Disable motion sensing for Doze: unchecked
Doze delay: 0
(disabled) Enable Doze on unsupported device: unchecked
Disable motion sensing for Doze (root): unchecked
Note: most of the performance savings will come from this app.
Working Mode: Boost if you don't see this option, check Xposed Installer and enable the Greenify module, then reboot -- if the Greenify module isn't there, install it from the Xposed Installer first
Shallow Hibernation (experimental): enabled
Aggressive Doze (experimental): enabled
Xposed-based Features -> Wakeup Timer Coalescing (4.4+): checked
Xposed-based Features -> Telephony Wakeup: checked
Xposed-based Features -> Don't Remove Notifications: checked
Xposed-based Features -> Block App State Abuse: checked
Xposed-based Features -> Deep Hibernation (alpha): unchecked
Xposed-based Features -> GCM push for greenified apps: checked
Xposed-based Features -> Greenifying system apps: unchecked
Xposed-based Features -> Reveal Hidden Sync: unchecked
Now you'll need to add apps you want to Greenify. From the main Greenify menu, click the [+] button at the top of the app. Scroll down and click "Show more apps". I would select almost all apps except the ones that need to automate or update the UI such as widgets, Xposed modules, print services, dialer/phone, alarm clocks, widgets, etc. Some SMS or chat apps may also need to be skipped, but I personally have Hangouts, Facebook, etc. Greenified and I still get instant notifications for new messages and e-mails just fine. Your experience may vary, so spend some time experimenting with what apps you do and don't like put into hibernation when not in direct use.
Configuring L Speed
Note: some options are preferential and should be researched accordingly if you plan on changing them or are curious what they do. For my phone, I've chosen anything that boosts performance for 'free' (no or very negligible battery cost).
L Speed requires the sqlite binaries to be installed to change some settings. I used Sqlite installer for root, which worked fine. BusyBox does not include this binary.
First, go to Menu -> Settings and enable "Use Advanced UI". This will restart the app with a different interface.
From here forward, you can swipe from the left (or use the menu in the upper left) to access different sections.
Use Advanced UI: enabled
Dark theme: disabled (preferential)
Color navigation bar: disabled (preferential)
Force English: disabled (preferential)
Show toggle toast: enabled (preferential)
Use Fahrenheit (°F): disabled (preferential)
Apply on boot delay: 5sec
Show boot notification: enabled (preferential)
Kernel Modification -> Kernel Tweaks: Disabled
Kernel Modification -> Kernel sleepers optimization: enabled
System Tweaks -> Battery improvement: enabled
System Tweaks -> Faster boot: enabled
System Tweaks -> WiFi sleeper: disabled
System Tweaks -> Flag tuner: enabled
System Tweaks -> Assertive display: enabled (preferential)
System Tweaks -> Improve scrolling: enabled
System Tweaks -> Liquid smooth UI: enabled (preferential)
Debugging Options -> Disable debugging: enabled (this is unrelated to USB debugging)
Debugging Options -> Disable kernel panic: disabled
Other Tweaks -> Better in call audio: enabled (does not conflict with ViPRE4Android)
Other Tweaks -> Improve image quality: enabled
CPU Tuning -> CPU Optimizer: enabled (does not conflict with my CPU fixes startup script)
LNET Tweaks -> NET Buffers: Default
LNET Tweaks -> RIL tweaks: disabled
LNET Optimizations -> Google DNS: disabled (preferential)
LNET Optimizations -> Faster streaming: enabled
LNET Optimizations -> Fast dormancy: enabled
Storage IO Tweaks -> SD tweak: Light
Storage IO Tweaks -> IO Boost: enabled
Storage IO Tweaks -> IO Extended Queue: disabled
Storage IO Tweaks -> Partition remount: enabled (preferential: gives more permissions to the SD card)
Memory Management Tweaks -> OOM Killer: Enabled
Memory Management Tweaks -> Cache Reclaiming: Minimum
Memory Management Tweaks -> Cache Allocation: Medium
RAM Manager Options -> Ram Manager: Balanced
Seeder Options -> Default
Cleaner Options -> Run cleaner on boot: disabled (preferential)
FStrim Options -> Run fstrim on boot: disabled (preferential)
Note: I only use LeanDroid's features to compliment Do Not Disturb (aka "Blocking Mode") during specific hours. Tasker or other automated programs could do this, but that's a more in-depth guide. Additionally, this setup will add a persistent notification that you can use to pause/unpause LeanDroid or jump to its settings. That notification can be disabled by going into the app, clicking the [...] menu in the top right, and choosing "Hide notification". I like having it there to know it's on and to pause/unpause it if I'm not using Do Not Disturb for some reason.
LeanDroid master on/off switch: enabled
Disable... -> Wi-Fi: checked
Disable... -> Cellular data -- leave it unchecked if you want the phone to be cut off from all data during Do Not Disturb hours / check it if you want it to be blocked
Disable... -> Cellular radio: unchecked
Disable... -> Bluetooth: checked -- unless you feel that Bluetooth connectivity is important during Do Not Disturb hours
Disable... -> Network location: checked -- unless you feel that location availability is important during Do Not Disturb hours
Disable... -> GPS location: checked -- unless you feel that GPS availability is important during Do Not Disturb hours
Switch... -> Cellular network mode to [varies]: unchecked -- you could check this and enable 2G or 3G if you are allowing Do Not Disturb hours to have access to cellular data, but want to restrict it to lower speeds (uses less battery than LTE/4G)
Switch... -> [varies] after screen off [except] -- multiple options here, set it to '5 MIN' after screen off and click 'EXCEPT ->'
EXCEPT-> Except [varies]-[varies] -- time range, I have mine set from 7:00 AM to 11:30 PM because at 11:30 PM is when my Do Not Disturb is enabled on my phone (until 7:00 AM the next day), adjust yours as necessary
EXCEPT-> remaining options: unchecked -- set as desired, but I have them all off
Restore... -> After screen on: selected
Restore... -> After screen unlocked: unselected
Restore... -> Every [varies] after screen off: unchecked -- configure if you want data enabled in short bursts during Do Not Disturb hours
Restore... -> Data after waiting [varies] for Wi-Fi to connect: unchecked
Use these settings in tandem with Samsung's built-in Do Not Disturb on a schedule. Your phone won't hardly touch any battery overnight if left off the charger (unless you're in a really horrible reception area and/or roaming or something -- cellular radio is still active for phone calls).
For example, I charged my phone to full and then unplugged it overnight while I slept. Here's how battery usage looks in the morning:
The radio antenna is left on, so calls, texts, and MMS can come through (but may be silenced depending on your Do Not Disturb settings), but data is strictly prohibited so if you need e-mail or chat alerts, etc., you would want to enable data every X minutes for X minutes. This will increase battery usage slightly, but not by much.