Hi Snapdragon S7 users!
As we know we have a locked bootloader, and rooting includes heavy thermal throttling and strange frequency managment done by the system automatically (try to change max/min freq and you will se how it resists). Also to suffer a slower system (apps take longer to open/multitask), And a higher battery consumption (kernel organises processes strangely and big cpu is always under moderate-high load)
i have been searching all over xda (and many other forums) to get to the solution. And this is how far i could get:
Thanks to:
@xFirefly93 and his [MOD] Pixel (XL) Unified Kernel(s) Tuning Script (v1.3)
@Zola III
@TheDevelopper
@Craz Basics
Xperia XZ forum
OnePlus 3/3T forums
Pixel XL forum
su.d/init.d
build.prop
Extra
Solution Installer
If you want to Uninstall
Changelog
As we know we have a locked bootloader, and rooting includes heavy thermal throttling and strange frequency managment done by the system automatically (try to change max/min freq and you will se how it resists). Also to suffer a slower system (apps take longer to open/multitask), And a higher battery consumption (kernel organises processes strangely and big cpu is always under moderate-high load)
i have been searching all over xda (and many other forums) to get to the solution. And this is how far i could get:
Warning
Use this at your own risk!
su.d scripts will break safety net
Use this at your own risk!
su.d scripts will break safety net
Thanks to:
@xFirefly93 and his [MOD] Pixel (XL) Unified Kernel(s) Tuning Script (v1.3)
@Zola III
@TheDevelopper
@Craz Basics
Xperia XZ forum
OnePlus 3/3T forums
Pixel XL forum
su.d/init.d
Thermal throttling solution
CPU SolutionHow to check
- Block max/min auto frequency: Samsung Custom Frequency Manager, i call it "The Slippery" (gekkehenkie11 explanation here) is "samsungs personal assistant" when it comes to cpu frequency, changing it according to samsung preferences. We don't have sourcecode of it, so we cant modify it. But we can override it so it doesn't modify our settings (we do it with permissions this way) so then you can choose the range of frequencies you prefer with any cpu manager like kernel adiutor (kernel's thermal throttling will still continue working) re-activated in v8 (see changelog for more info)
- "Disable" throttling (push it further) = snappier device specially during heavy tasks (tested very heavily and couldnt pass 82C (180F) battery never reached 42C (108F)) you may have different temps due to Sillicon lottery or heavy gaming modified in v8 (see changelog for more info)
- A log file with the name "90Thermal_solution.log" will be created at /data
DAC SolutionHow to check
- If you take a look you will realise big cpu utilization percent is always high, and that leads to higher frequencies used and sustained for more time = higher battery consumption and cpu temps
- I've tried to mitigate that by changing interactive cpu governor tunables and after setting tunables i got to a point where big cpu doesn't ramp up so often when nothing is being done (there is always something going on in background but that cpu usage and frequencies when doing "nothing" can't be justified in my opinion (i blame eng kernel for this)
- Change gpu governor to cpufreq (i didnt notice any increment in battery consumption whereas the smoothness has increased for good) and set freqs to 214-624mhz (133 caused scrolling lags sometimes. You can change it if you want -> kernel adiutor)
- Useful sites:
- Advanced Interactive Governor Tweaks by SoniCron - Angler thread
- [Guide] Advanced Interactive Governor Tweaks
- GoogleSource documentation about governors
- Interactive – why is this the best governor? [INFO]
[*] [URL="https://source.android.com/devices/tech/perf/boot-times"]Optimizing Boot Times | Andorid Open Source Project[/URL]
- A log file with the name "91Cpu_solution.log" will be created at /data
More SolutionsHow to check
- Enable class AB config for hph (good explanation of what it does HERE), In simply words:
- Prioritize quality over battery consumption (especially when not at max volume)
- High performance only works with headphones (or anything you connect using 3,5mm jack)
- A log file with the name "92Dac_solution.log" will be created at /data
InstallationFirst of all, the links:What this does:
- How GPU governor impacts user experience
- GPU causing jitter in essential phone
- GPU causing jitter in essential phone 2
- Sysctl documentation
- Extra free kbytes explanation
- Extra free kbytes explanation 2
- Difference between vm.dirty_ratio and vm.dirty_background_ratio
- VM tunning
- More VM explanations
- Entropy explanation by zeppelinrox
- Overcommit ratio is a myth
- How overcommit works
- good scheduler explanation by kgs1992
- cfq, noop, deadline comparison
- Improving the Real-Time Properties
How to check
- Adjust some VM things
- We will allow dirty data to stay on ram for a while (i cant belive why this was "off" originally -> eng kernel (maybe))
- We will ajdust min and extra freekbytes to stock user-kernel value
- Adjust lmk values
- Increase read ahead and disable io stats (technically this should free some cpu) + change scheduler to deadline
- Disable some logs (less 'disk' use) and other useless things
- Modify entropy rngd tunables and link random to urandom
- A log file with the name "94More_Solutions.log" will be created at /data
All has been tested in S7 Edge 935V with CRG2 Stock_Oreo_Hybrid by Jrkruse Rooted with Root For S7/S7Edge Oreo And Nougat by Jrkrusewith interactive governor option without issues (no bootloop)
0 ) You must be rooted
1 ) Make sure you have lastest busybox installed Google Play link
2 ) Download the Files (attached)
3 ) Extract .zip or .rar (they have the same files)
4 ) Copy tweak files (.sh ones) you want to apply toorCode:/system/su.d
or use any init.d emulator (i dont guarantee it wil work) [MOD][APK+SCRIPT+ZIP] Enable Init.d for Any Phones w/o Need of Custom Kernels!!!Code:/system/etc/init.d
5 ) Set 777 permission (rwx-rwx-rwx)
6 ) Reboot
Dalvik solution
Extra build.prop tweaksI'll keep this simple
How to install
- Most important pages:
- Conclusions:
- Our eng kernel has different values for certain dalvik things which ruins the "smooth android experience" (eng kernels are not meant for normal use). Hopefully most of them can be changed (fixed) into normal/stock values
- The whole dalvik cache creation is really complex (and i barely know chunks of it), but to summarise It uses profiles which are a versus of "space utilization vs performance" more speed = less space available and vice versa (there are exceptions of course)
- After testing with an exynos s7 besides my snapdragon i saw that exynos dalvik-cache folder was like 1gb big in stock conditions (and the phone was basically factory resetted), whereas snapdragon's folder was 300mb or so (with more than 100 aps installed). After applying the tweaks to exynos variant, dalvik folder went to like 1,2gb. After restoring ~100 apps on exynos dalvik is 1,8gb
- Applying this tweaks could lead to (after dalvik-cache gets completely rebuilt):
- Apps opening faster (they have more "parts" optimized)
- Less cpu cycles used (apps have more "parts" optimized, so no need to waste cpu on doing that every cold launch)
- Less battery consumption (above reasons)
- Less internal space available (Dalvik cache will get bigger)
- Longer first boot (A LOT LONGER) only first after deleting dalvik. Then it will be almost like before applying patch until dalvik gets completely rebuilt.
- Some battery consumption increase until dalvik gets completely rebuilt (it's built while phone is booting, idle or charging)
- After applying this tweak and deleting dalvik cache next boot will take A LOT LONGER. It's not a bootloop, i can ensure you, just wait. (like 20min)
- Since values were not applying using setprop, i think it's better to add the values inside the build.prop (if someone has a better idea please tell me)
- Make build.prop backup
- Add values to build.prop
- Leave one blank line at the end, like this:
battery.capcacity=3600
improve.performance=true
Last.buildprop.line=1
'empty space'
- Delete dalvik-cache
- Delete what is inside /data/dalvik-cache/
or- wipe dalvik-cache through Flashfire
- Reboot (and go make a sandwich as it will take some time)
Values
- Dalvik takes time to rebuild, so wait some time (a couple of hours of device idle, charging if possible). I suggest you to do this at night some time before going to sleep: follow installation steps, check dalvik folder size and go to sleep (you can take screenshots to keep trace). at the next day check again if it has gain some size, reboot the phone, and use it normally. That night check again dalvik size. As soon as you see it stopped growing you can "document" your feelings with the configuration
pm.dexopt.boot=verify
pm.dexopt.first-boot=quicken
pm.dexopt.bg-dexopt=speed
dalvik.vm.image-dex2oat-filter=speed
dalvik.vm.dex2oat-filter=speed
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.dex2oat-flags=--compiler-filter=speed
dalvik.vm.dex2oat-flags=--compiler-backend=optimizing
Here are some more build.prop values i found and im using right now. You can add them under dalvik solution ones if you like
boot.fps=30
shutdown.fps=30
ro.secure=1
ro.debuggable=0
persist.sys.scrollingcache=4
sys.config.samp_spcm_enable=false
sys.config.samp_enable=false
ro.config.fha_enable=true
ro.sys.fw.use_trim_settings=false
Rendering Solution
Apps SolutionHow to
- We know gpu is better than cpu at graphic rendering
- In the old times a file named egl.cfg existed at lib/gles | lib/egl. That file contained the name of the libraries which would be used to render the screen (Phone and external). Some users modified the file in order to force gpu rendering always. This basically made phones smoother (info HERE)
- Many people claimed that using gpu rendering only would increase battery consumption, whereas others said the opposite
- We dont have egl.cfg, so i investigated and it results that since oreo the EGL loader doesn't need a config file to "know" which libraries to load, it detects the libraries and loads them automatically. So deleting (or renaming) libGLES_android.so makes the EGL loader unable to detect software rendering libraries and stick with only hardware ones, thus disabling cpu rendering List of commits
- As far as i've tested, disabling cpu rendering made the device perform smoother (easily noticeable, specially just after a reboot). I didn't notice any big difference with battery (it may be lasting a little longer though)
- Rename (or delete) "libGLES_android.so" to "libGLES_android.bak" and set 444 permissions. . The file is at /system/lib/egl and /system/lib64/egl
- Reboot
Unlike the rest of solutions, this is not a script. Here i will tell you two group of apps i disabled, and made a LOT of difference in terms of snappiness
Short tuto:
1 ) in titanium backup search for 'qualcomm' with system/defrosted filter
2 ) freeze all
3 ) do the same but searching 'knox'
4 ) delete frozen apps data
5 ) reboot
Long tuto:
1 ) Download Titanium backup
2 ) open and go to 'backup/restore' tab
3 ) 'click to edit filters' and select type 'system', temperature 'defrosted'. the rest in 'all'
4 ) apply filter
5 ) click the magnifying glass and type 'qualcomm'
6 ) tap the paper with a tick
7 ) go to 'freeze/defrost' and tap 'run' in the first option "freeze all user & system...."
8 ) select all and tap the tick
9 ) repeat from step 5 but instead of qualcomm type 'knox'
10 ) go to 'backup/restore' tab
11 ) 'click to edit filters' and select type 'system', temperature 'frozen'. the rest in 'all'
12 ) tap the paper with a tick
13 ) go to 'manipulate data' and tap 'run' in the second option "wipe data for user & system apps"
14 ) select all and tap the tick
15 ) reboot
I will leave you also attached some screenshots of the apps i have frozen, so you can be sure they don't cause bootloops in case you wonder that. If you froze/disable something and suddenly something stops working (for example: bluetooth doesnt turn on) just defrost/enable it again and you should be fine
Solution Installer
This is just 2 .bat installer, which will install
This is done using a pc
- EngSolution.bat
- Thermal Throtlling Solution
- Cpu Solution
- Dac Solution
- More Solutions
- Rendering Solution
- A modified sysconfig to allow google play services and playstore be optimized by doze
- AppSolution.bat
Will delete lots of apps i consider bloat
1 ) Unzip/decompress
2 ) Run .bat you want
3 ) Device will reboot once completed
1 ) Delete the files you copied and reboot
2 ) If you used dalvik solution, restore build.prop backup and wipe dalvik cache (delete the files inside /data/dalvik-cache/) --> Next boot will take more time after this (only the next one after deleting)
3 ) If you used Rendering solution, restore stock name and set permission to 777
4 ) If you used Apps solution, defrost all the apps you froze
Attachments
-
Files_DO_NOT_FLASH_V4.zip2.8 KB · Views: 294
-
Files_DO_NOT_FLASH_V5.zip2.6 KB · Views: 153
-
Files_DO_NOT_FLASH_V6.zip3.3 KB · Views: 145
-
Files_DO_NOT_FLASH_V7.zip3.9 KB · Views: 173
-
Files_DO_NOT_FLASH_V8.zip5.1 KB · Views: 170
-
Files_DO_NOT_FLASH_V9.zip4.9 KB · Views: 818
-
SolutionInstaller.zip822.6 KB · Views: 673
-
DalvikSolution.txt293 bytes · Views: 567
Last edited: