Related
Vindicator Kernel
Supports F/I/S/K/L/T/W8 variants of 920 AND 925 devices
Intro:
This kernel was built to appeal to users who want something thats trimmed down as much as possible, yet still adds nice features that arent considered bloat. I spent a lot of time optimizing it and plan on spending several more hours just on optimizations. This kernel is also built with significant amounts of upstream code merged in, making it what many would deem a hybrid kernel. All credit goes to the real hard workers coming up with original ideas like Franco, Imoseyon, Ktoonsez, g.lewarne, etc. I hope you like it and I won't be offended if you hate it. All ideas are welcome and I'll try to help as best I can. If you wish to use this kernel in a rom , feel free! Although I would love it if you let me know just for my own curiosity.
Goal:Keep kernel as lean as possible while adding certain, desirable features, upstreaming source, and optimizing for maximum performance and battery life. The default settings should be optimal for a balance of battery and performance without a need to tweak.
Disclaimer:If your phone blows up, its not my fault. If your phone somehow gains perpetual battery life, I'll take full responsibility.
Features:-COGA Source Based
-Universal Kernel! (Thanks to G.lewarne and Ktoonsez patchset!)
-VControl Kernel Control Script(Loosely Based On lkconfig by imoseyon)
-Compiled With Graphite, Loop Nest Optimizations, Ofast And Others.
-Various Other Build Optimizations
-WLAN_RX & WLAN_CTRL Wakelocks Reduced
-GPU OC/UC
-Interactive ScreenOff Max Frequency
-Improved LMK
-Dynamic ReadAhead
-Dynamic Fsync
-LEDFade
-VMA Caching
-Calibrated Power Coefficients
-Smoothened GPU Throttling Curve
-Lz4 Compression
-Interactive Governor Patches/Mods
-Timer/RCU System Upstreamed
-SensorHub Wakelock Toggle To Remove
-A53 UnderClockable To 200Mhz Oc To 1600Mhz
-A57 UnderClockable To 200Mhz Oc To 2500Mhz
-Slub Allocator Updated To Linux 3.18
-Synapse Support
-Memory Management Updates
-Arm Efficient Unaligned Access Enabled
-Reduced Scheduler Wakeups
-Nvidia Power Efficiency Patches
-Encrypted Performance Improvements
-Deep Sleep Fix
-Disabled IO Stats For Faster IO
-Memory Leak Patches
-Sleep/Suspend Patches
-3X Faster Integer Square Root Operations
-HRTimer Optimizations
-Avoid load Average Moire
-Scheduler Optimizations
-Power Aware Scheduling
-Sound Control
-Memcopy and String Optimizations
-Use Compile Time Constants For Jiffies Conversions When Possible(Reduces CPU Overhead)
-Workqueue Updated To Linux 3.18
-Optional Power Efficient Workqueues (Expanded to more modules than normal as well)
-Moto QuickWakeup Driver
-Frandom (Efficient Random Number Generator)
-Cruft Free
-Slimmed Down
-Tons Of Debugging and Tracers Removed
-Many Misc. Optimizations
-Optimized CFQ Scheduler For SSDs
-Tons Of IO Fixes/Performance Boosts
-ROW IO Schedule(Default)
-Voltage Control For Numerous Things
-Entropy Optimizations/Tweaks
-Many Parts Pulled From Upstream
-Init.D Support
-Installs SU
-Installs Busybox
-Potentially Something I Forgot...
Downloads:
[AFH] Kernel: https://www.androidfilehost.com/?w=files&flid=35336
If Coming From Arter Kernel:
Reflash TWRP recovery if using philz and flash this zip http://www.mediafire.com/?um57p83b3cb56x4 before flashing kernel.
Credits:
Imoseyon
Ktoonsez
AndreiLux
Arter97
G.lewarne
Samsung
Flar2
anarkia
hybridmax
Franco
Faux123
Linaro
Code Aurora Foundation
Cl3Kener
Friedrich420
Google
Motorola
If I Missed You Lemme Know!
XDA:DevDB Information
VindicatorS6-Unified Kernel, Kernel for the Samsung Galaxy S6
Contributors
Xileforce
Source Code: https://github.com/XileForce/Vindicator-S6-Unified
Kernel Special Features:
Version Information
Status: Stable
Created 2015-07-13
Last Updated 2015-12-7
Changelog:
R1:
-Initial Release
R2:
-Updated From Linux 3.10.61 To 3.10.83
-Updated Memory Management Tweaks
-Update Interactive Tunings
-Fix App Installing
-Fix Random Reboots
-Removed Overclocking For Now(Caused reboots)
-Removed Fsync Toggle(Caused app installs to fail)
-Added Asynchronous Fsync(Faster Fsync)
-Fixed Frandom Permissions
-Additional Entropy Optimizations
-Added Interactive Patches
-Trimmed More Stuff
-Interactive No Longer Scales Up The Frequency Below 5% Load(Better Battery)
R3:
-Lag Free Interactive Tweaks (Glewarne)
-Interactive Screen Off Max Frequency = (InteractiveX)
-InputBooster Removed(Touchboost)
-BOG8 Source Update
-Memory Management Update
-Better Frequency Selecting By Interactive
-Numerous Interactive Code Optimizations/Patches
-Added A Toggle To Remove SensorHub Wakelock In VControl
-Remove Task Packing
-Trimmed More Things/Debugging
-Removed Forced Full screen Updates
-Some Power Efficient Related Tweaks
-Additional Optimizations
-Many Misc Things.
-Cifs support
R4:
-COGA Based
-Compiled With Linaro 5.2 TC
-Compiled With Ofast vs Os
-Fully Tickless Kernel(faster more power efficient)
-Updated Memory Tweaks
-Added CPU OC Again!
-Fixed Big Cpu Settings Not Sticking
-More Interactive Tweaks
-Reverted Enforced Mode
-Async Fsync Replaced With Dynamic Fsync
-Power Aware Scheduling Option
-Updated To Linux 3.10.87
-Added DT2W
-Misc Patches
-Added Synapse Support
-Updated Nvidia Power Efficiency Patches
-Various Upstream Timer/RCU Updates
-Add LED Fade Patch
-Add Audio Control
-Add Various Voltage Controls
-Optimize ART
-Update VControl Options
-CFQ Optimizations
-GPU Throttling Smoothing
-Task Packing Toggle Fixed
-Task Packing Threshold Adjusted
-Added PowerSuspend Driver
-Updated Unification Patches
-Disabled Gentle Fair Sleepers(Ui Smoothness)
-Numerous Interactive Patches
-Removed InteractiveX
-Re-Added TouchBoost
-Enable Efficient Unaligned Access
R4.1:
-Reverted Back To Dynamic Ticks Kernel
-Enabled Fast No Hz(Power Efficiency)
-Enabled RCU Priority Boosting(Performance Increase)
R5:
-Honestly Almost Everything Changed But Here's Some From Memory
-Interactive screen off limited to 1ghz
-Hotplug optimizations
-Interactive Patches
-LMK Upstreamed
-GPU OC/UC
-Ramdisk and synapse updated
-DT2W Removed
-LED Fade added
-Fixed Lockscreen Crashes
-GPU Tweaks
-Strict Aliasing Optimizations
-Significant amount of power efficiency patches
-Sound Control Removed
-More garbage removed
-Optimized a few libs for A57
-Updated To COJ2
-Lots more
FAQ's
1. What Is VControl And How Do I Use It?:
VControl is a kernel tweaking "app" built into the ramdisk. It is accessed via terminal emulator. To use it simply download terminal emulator, Type "su" without quotes and hit enter. Grant terminal emulator super user permission and then type "VControl" without quotes. Please note that it is case sensitive. This will bring up a text menu and you navigate by simply entering the option number you want and hitting enter. It is currently a WIP. More will be added to VControl over time.
2. You Broke My Phone! Fix It!:
It will be quite hard for me to figure out what is going on if you don't provide details and a log of what happened. To get a log use any file manager with root support and navigate to proc/last_kmsg.
3. What Kernel Tweaking App Should I Use?:
To Tweak the kernel, currently the only apps that work well are Kernel adiutor and Kernel toolkit as well as synapse. You can also use VControl for a limited number of things. Synapse is now built into the kernel so simply install the app.
4. What Do Power Efficient Workqueues Do?:
Typically when a task is created, it is bound to the cpu it was created on. This is great for performance due to maintaining cache locality. However its not the best for battery life. Power efficient workqueues attempts to schedule tasks on already awake cpus. A quick note about awake and sleeping cpus. A sleeping cpu doesnt mean the cpu is turned off or not hotplugged, nor does this mean it has to be deep sleeping. A core can be online and still be sleeping which means it uses very little power. This is why we are able to run with all 8 cores on all the time. Most of the time the majority of the cpus are sleeping. With power efficient workqueues, jobs will attempt to schedule on awake cpus which means we dont have to wake up the cpus that are sleeping already. This means we lose cache locality so we suffer a small (very small) performance hit but we potentially save noticeable amounts of battery. Enable for battery, disable if you plan on benchmarking or just want the extra power. They are off by default.
5. What Is Strict Aliasing And Why Should I Care?:
One of the big things Linaro does with improving Android's performance is fixing violations of what's known as "the strict aliasing rule." A pointer is said to alias another pointer when they both refer to the same location of memory. This is OK and not an uncommon thing to do. The strict aliasing rule is that pointers of different types should never refer to the same location of memory (aka alias each other). Strict aliasing allows a compiler to make some assumptions when compiling and optimizing code that it otherwise couldn't. It's actually one of the biggest optimizations you can do and it is fairly hard to add which is why most people don't. Here's a nice read up on it http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html#benefits
6. What does Small CPU Task Packing Mean?:
Task packing Is a process done by the scheduler. What it tries to do is pack all tasks onto as few cores as possible. In this case, it only packs tasks for the low power(small) cores as we want to maintain maximum performance and spread the load out on the bigger cores. The advantage of packing tasks is that if we envision a scenario where there is a 40% load and that gets spread out across the 4 small CPUs at 10% load each all 4 small CPUs are awake and running at a low frequency. With task packing all 40% would be shoved onto 1 core and the other 3 would sleep. This provides energy savings. However there becomes a point where the frequency required to process the extra tasks becomes high enough that it would use less power to run two cores at half the speed rather than 1 core at a very high speed. In this scenario the scheduler will automatically let tasks spill over onto adjacent CPUs in order to maximize power efficiency. One down side to this is a small performance hit due to having to pull the other cores out of a sleep state in the event of needing immediate power. However I would guess most people couldn't notice a difference.
7. What is power aware scheduling?:
Power aware scheduling is a method of scheduling where we make the scheduler aware of the actual efficiency of the cores. As you know, the small cores are more efficient than the big cores. The existing method for scheduling work uses a more basic (if the load is above this point, then move it to the big cores) type of decision making. With power aware scheduling, the scheduler will schedule tasks based on its knowledge of the cores power efficiency. Typically this reduces performance, though it's likely not noticeable except for in some games. If you want more battery, enable this. If you want more performance or have lag in games disable.
More will be added as they come up and I think of them.
Annnndd 3!
Great, downloading for test, my device is i variant but should works fine, any recommend settings?
matheus_sc said:
Great, downloading for test, my device is i variant but should works fine, any recommend settings?
Click to expand...
Click to collapse
I personally use VControl to set my min freq to 200 for both, then I oc to 1600 on Apollo and 2200 on atlas. I then also disable fsync. That's it hope you like it! Let me know if you have any issues!
great job with another kernel!
I enabled CPU task packing, but when I check the current settings, it says "/sbin/VControl(239): cat: /sys/kernel/hmp/packing_enable: No such file or directory"
interestingkid said:
great job with another kernel!
I enabled CPU task packing, but when I check the current settings, it says "/sbin/VControl(239): cat: /sys/kernel/hmp/packing_enable: No such file or directory"
Click to expand...
Click to collapse
Thanks! Yea I had task packing enabled in a previous test but removed it prior to release. I decided to leave it in VControl in case I re add it. So just ignore it for now I'll probably remove it in r2
Sent from my SM-G920T using XDA Free mobile app
Xileforce said:
Thanks! Yea I had task packing enabled in a previous test but removed it prior to release. I decided to leave it in VControl in case I re add it. So just ignore it for now I'll probably remove it in r2
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
ok, that's fine, because this is running well for now!
---------- Post added at 09:49 AM ---------- Previous post was at 09:48 AM ----------
ok so another problem though with google account or play services, don't know which
when i tried to install an app from the play store, i get an error -504
interestingkid said:
ok, that's fine, because this is running well for now!
Click to expand...
Click to collapse
Glad to hear that! There's definitely still room for improvement.
Sent from my SM-G920T using XDA Free mobile app
Boots fine in i variant from Brazil, but dont show much option in kernel auditor. I cant change i/o for fiops too its normal?
interestingkid said:
ok, that's fine, because this is running well for now!
---------- Post added at 09:49 AM ---------- Previous post was at 09:48 AM ----------
ok so another problem though with google account or play services, don't know which
when i tried to install an app from the play store, i get an error -504
Click to expand...
Click to collapse
Weird! I had that earlier too! I cleared my play services cache, and the play store cache and rebooted and it went away so I didn't think anything of it... :/ great...well at least I've got something to do tomorrow....
Sent from my SM-G920T using XDA Free mobile app
Xileforce said:
Weird! I had that earlier too! I cleared my play services cache, and the play store cache and rebooted and it went away so I didn't think anything of it... :/ great...well at least I've got something to do tomorrow....
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
kk will do that
matheus_sc said:
Boots fine in i variant from Brazil, but dont show much option in kernel auditor. I cant change i/o for fiops too its normal?
Click to expand...
Click to collapse
Kernel adiutor doesn't work for IO Scheduler. I recommend trying an app called Kernel toolkit. I'll probably add IO schedulers to VControl in the next update. Also there aren't tons of options on it atm. Mostly because its tweaked to run well on interactive governor, however I'll likely add conservative and ondemand in r2 as well.
Sent from my SM-G920T using XDA Free mobile app
interestingkid said:
kk will do that
Click to expand...
Click to collapse
Hope it works! I'm not sure what in Kernel is causing it, and its gonna be a pain to troubleshoot but I can probably figure it out tomorrow.....I hope....
Sent from my SM-G920T using XDA Free mobile app
This kernel is very fast and good deep sleep 94% all perfect on my G925F
Gesendet von meinem SM-G925F mit Tapatalk
cobra11111 said:
This kernel is very fast and good deep sleep 94% all perfect on my G925F
Gesendet von meinem SM-G925F mit Tapatalk
Click to expand...
Click to collapse
That's awesome to hear! Hope it continues to work well for you.
Sent from my SM-G920T using XDA Free mobile app
Can to future implement smartassv2 or KT governor?
Gesendet von meinem SM-G925F mit Tapatalk
cobra11111 said:
Can to future implement smartassv2 or KT governor?
Gesendet von meinem SM-G925F mit Tapatalk
Click to expand...
Click to collapse
The problem with kts governor is it would require merging a lot of other stuff that I don't need in order to make it work :/ however smartass is standalone. Is there other kernels for s6 that have it? If so it would be an easy addition most likely
Sent from my SM-G920T using XDA Free mobile app
Xileforce said:
The problem with kts governor is it would require merging a lot of other stuff that I don't need in order to make it work :/ however smartass is standalone. Is there other kernels for s6 that have it? If so it would be an easy addition most likely
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
+1 for smartassV2 governor and maybe zzmove as an option
No others kernel got those for S6
Code:
Your warranty is now void.
I'm not responsible for bricked devices, dead SD cards,
thermonuclear war, or you getting fired, because the alarm app failed. Please
do some research if you have any concerns about features included
before flashing it! YOU are choosing to make these modifications, and if
you point the finger at me for messing up your device, I will laugh at you.
So here it is. After testing for a few days I've decided to give out builds of CM 12.1 kernel with a little bit better CPU management.You may see improvement especially when you're not using 3G/LTE as it seems to drain battery almost as fast as before (depending on the use ofc). You'll get much better battery life on wifi though. You may tweak the settings using some kernel control apps but the recommended setup is already applied.
Features:
+ Bricked hotplug driver - turns off CPU cores if the CPU load is not big enough to need them.
+ Powersuspend - a driver that should turn off unused hardware components when screen is off
+ Quickwakeup driver - it allows some tasks to wake up the system to perform certain actions without fully resuming it
+ Min. CPU freq 200MHz (CM12.1 has it set to 800MHz but it seems we don't need it that high after disabling CRC checks)
+ Revised interactive governor target_loads to clock CPU more efficiently
Download:
Kernel:
CM12.1:
J500FN
J500F
J500G
J500H
J500M
J500Y
J5008
CM13:
J500FN
J500F
LOS14.1:
J500FN
J500F
J500H
J5008
GPU Max Frequency Limiting Scripts:
400 Mhz
475 Mhz
550 Mhz
650 Mhz
Installation:
Just flash the zip for your device in TWRP.
Changelog:
Code:
07.10.2017:
- First release rebased on @vince2678 kernel source and device trees (Will work only with his Los14.1 builds from now on, don't even try any older ROMs available)
- Added some tweaks by @Bulgaricus
24.07.2017:
- Rebased on newest LOS kernel
- Reimplemented some of tweaks previously reverted due to conflict (The most important being Display driver update, refresh rate should be better now)
30.05.2017:
- Merged upstream changes (new power hal compability etc.)
19.05.2017:
- Merged base kernel updates
- Enabled thermal core control
- Change throttling cpu temperature from 60°C to 80°C to avoid performance loss
- Enabled CPU_BOOST config
- Kernel now should boot on both LL and MM bootloaders (needs testing)
18.05.2017:
- First release for Lineage OS 14.1
- Rebased on @SoUnd001 kernel source (LOS 14.1 only)
- Drop CM1300/LOS13.0 support
02.03.2017:
- Fixed slow charging
- Cpusets tweaks for hotplug (multitasking related)
25.01.2017:
- Squashed update to 3.10.104
- Additional CPU & Battery tweaks
- Faster boot
16.01.2017:
- Major cleanup
- Tweaked recommended values
- Final release for CM12.1
- First release for CM13.0
08.01.2017:
- Added GPU OC up to 720MHz (you may change max frequency if you don't like OC or want it to be a little less thanks to the scripts included in downloads. Previous default freq was 400 MHz)
- Changed default gpu governor to simple_ondemand to avoid frequency bug described in #16
06.01.2017
- Initial release
- Added bricked hotplug driver
- Added powersuspend driver
- Added quickwakeup driver
- Changed CPU min freq. to 200MHz instead of 800MHz
- Optimized interactive's target_load
XDA:DevDB Information
Hotplug enabled kernel for Cyanogenmod 12.1/13.0, LOS 14.1, Kernel for the Samsung Galaxy J5
Contributors
Koloses, Nick Verse, ganesh varma, #Henkate, SoUnd001, vince2678, Bulgaricus
Source Code: https://github.com/hotplugj5
Kernel Special Features:
Version Information
Status: Stable
Created 2017-01-06
Last Updated 2017-10-07
GJ
great work on FN works pretty good
Awesome, can I request you to build one with 1.4 OC!? :silly:
Can you make for Ressurection Remix too?
Sent from my SM-J500FN using XDA Labs
Since most if not all of custom ROMs are similiar, this should work on RR, just try it. I'll look into overclocking later on since it's not the most needed feature and I wanted to release stable kernel first. I also plan adding adreno idler.
Koloses said:
Since most if not all of custom ROMs are similiar, this should work on RR, just try it. I'll look into overclocking later on since it's not the most needed feature and I wanted to release stable kernel first. I also plan adding adreno idler.
Click to expand...
Click to collapse
Yep, it's confirmed working on RR..
Well, GPU overclock seems to work (3D score) . We'll see about CPU later on as it doesn't seem to have any impact other than showing time in state. I'll add GPU OC to the next build.
First screenshot is without GPU overclock, second is overclocked GPU.
Sent from SM-J500 CM12.1
So to install this on RR we just have to flash in TWRP?
Sent from my SM-J500FN using XDA Labs
Cm 13 on lolypop bootloader will work?
Does this hurt the hardware in anyway? (Not using overclocking of course)
Sent from my SM-J500FN using XDA Labs
Koloses said:
Well, GPU overclock seems to work (3D score) . We'll see about CPU later on as it doesn't seem to have any impact other than showing time in state. I'll add GPU OC to the next build.
View attachment 3994178View attachment 3994179
Sent from SM-J500 CM12.1
Click to expand...
Click to collapse
I got higher GPU score without overclock (879).
Benchmarks may or may not reflect the real phone performance. Personally im against OC.
Any CM kernel should work on RR as well, since RR is using cm kernel.
Oh I didn't mention: First ss shows the score without OC (860) The second is OC'd (979) I'll test it further though because antutu is rather heavy benchmark. OC possibility will be included anyway but I'm thinking about making it enabled out of the box or not.
I did repeat it several times and just took 2 random screenshots from before and after. I'll edit the post to include that.
Sent from SM-J500 CM12.1
Koloses said:
Oh I didn't mention: First ss shows the score without OC (860) The second is OC'd (979)
I did repeat it several times and just took 2 random screenshots from before and after. I'll edit the post to include that.
Sent from SM-J500 CM12.1
Click to expand...
Click to collapse
Oh well, thats clearly an improvement
But im still against OC. I didnt experience any game lag when ive been playing.
OC will lead to higher temperature & battery drain. Personally, i prefer to use phone without OC, since it performs well.
Perhaps you can do a test with temperature when using CPU/GPU OC?
Alright tested this kernel and it works outstanding! My battery life has been improved and I really like that I can see how the cores turn themselves off when they are not needed, in Kernel Adiutor.
Works perfectly on RR
Sent from my SM-J500FN using XDA Labs
#Henkate said:
OC will lead to higher temperature & battery drain. Personally, i prefer to use phone without OC, since it performs well.
Click to expand...
Click to collapse
We'll see. Adreno Idler may compensate GPU OC battery drain, I need to test the temperatures too. It's only a matter of setting up default settings though because I also want to let people configure things to fit them while providing recommended configuration out of the box.
I could always apply OC out of the box and add flashable zip with init.d script to set stock frequency on boot so I won't have to build boot image twice for all the devices. Sounds fair to me.
Sent from SM-J500 CM12.1
Koloses said:
We'll see. Adreno Idler may compensate GPU OC battery drain, I need to test the temperatures too. It's only a matter of setting up default settings though because I also want to let people configure things to fit them while providing recommended configuration out of the box.
I could always apply OC out of the box and add flashable zip with init.d script to set stock frequency on boot so I won't have to build boot image twice for all the devices. Sounds fair to me.
Sent from SM-J500 CM12.1
Click to expand...
Click to collapse
I have tested Adreno Idler and according to latest Kernel Adiutor, it goes to 200mhz when phone is in idle so it is working fine and also i think there are less switches between GPU frequencies than before. Just like the other people, i have noticed battery improvement too using Adreno Idler. But read msm-adreno-tz governor bug below.
The GPU governor called simple_ondemand is working nice too. I searched for 1080p youtube video and GPU frequency stays at 200 always when watching a video (assuming the screen is not touched), which is great and can improve the battery alot for that task and also for reading.
Unlike simple_ondemand, msm-adreno-tz used to stay at 300-400mhz when watching same video. I havent tested yet with Adreno Idler though, but simple_ondemand seems a great choice for tasks like watching a video or reading something long.
When i tested msm-adreno-tz frequencies for first time (with the command from adreno idler thread, but the path is different for J5), i have found that msm-adreno-tz:
- use 300mhz freq when phone is in idle with screen on and on homescreen
- when you touch/keep sweeping with the finger on the screen (e.g. on homescreen), the GPU frequency goes to 200. It gets lowered instead higher LOL.
GPU MSM-ADRENO-TZ BUG, default on all kernels, both on stock and cm based roms.
If screen goes off (or you turn the screen off), then you turn it on, and then it goes off again (or you power it off) WITHOUT UNLOCKING THE PHONE AND TOUCHING THE SCREEN AFTER UNLOCK the GPU will stay at 400mhz until you turn the screen on, unlock and touch it.. This doesnt happen with simple_ondemand, where GPU stays at 200mhz always when screen is off or phone is in idle with screen on. Even if you dont have a lockscreen, the bug still persist.
GPU staying at 400mhz when screen is off, means that it will use power useless, for no reason. And also, it can lead to slower charging. I dont know how much power it use, but i know that it counts.
Unfortunately, even with Adreno Idler i see that the bug is still present. Or perhaps i havent implemented Adreno Idler properly? But i think i did.
This is the governor bug i wanted to talk about. I wanted to make a thread under general section.
I recommend simple_ondemand governor, although i see that it has more switches between GPU frequencies, it can lead to higher battery backup for tasks like watching a video or reading something long.
Im sorry for going a bit off-topic
EDIT:
@Koloses:
Run following commands in terminal to see the current GPU frequency, updated constantly:
PHP:
adb shell
cd /sys/devices/soc.0/1c00000.qcom,kgsl-3d0/devfreq/1c00000.qcom,kgsl-3d0
while true; do cat trans_stat; busybox sleep 0.1; done
The "*" shows the current frequency.
Total transitions = the number of total switches between frequencies.
Development talk is never ever an offtopic to me
Anyway, where did you get Adreno Idler from? https://forum.xda-developers.com/an...dreno-idler-idling-algorithm-devfreq-t3134872 This seems to be an official thread regarding it and explanation of how it works seems fine. It needs powersuspend, but we have that in kernel already. I'll look into implementing it after getting home.
Sent from SM-J500 CM12.1
Koloses said:
Development talk is never ever an offtopic to me
Anyway, where did you get Adreno Idler from? https://forum.xda-developers.com/an...dreno-idler-idling-algorithm-devfreq-t3134872 This seems to be an official thread regarding it and explanation of how it works seems fine. It needs powersuspend, but we have that in kernel already. I'll look into implementing it after getting home.
Sent from SM-J500 CM12.1
Click to expand...
Click to collapse
I got Adreno Idler 1.1 from other msm8916 kernel, as i had some troubles with the commits from the official thread ( i dont remember what troubles lol). I got PowerSuspend 1.5 from same kernel.
Im not sure if PowerSuspend is working. I enabled the debug mode, but i cant find any PowerSuspend line in dmesg, kmesg, neither logcat. But i have power_suspend folder & lib, and also i see that it is on hybrid mode, both in Kernel Adiutor and system file.
Also, in logcat (taken since boot), i see following error:
PHP:
W/libsuspend( 942): Error writing 'on' to /sys/power/state: Invalid argument
I/libsuspend( 942): Selected wakeup count
It is trying to write "on" to state file.
/sys/power/state file has two words: frezee mem.
#Henkate said:
I got Adreno Idler 1.1 from other msm8916 kernel, as i had some troubles with the commits from the official thread ( i dont remember what troubles lol). I got PowerSuspend 1.5 from same kernel.
Im not sure if PowerSuspend is working. I enabled the debug mode, but i cant find any PowerSuspend line in dmesg, kmesg, neither logcat. But i have power_suspend folder & lib, and also i see that it is on hybrid mode, both in Kernel Adiutor and system file.
Also, in logcat (taken since boot), i see following error:
PHP:
W/libsuspend( 942): Error writing 'on' to /sys/power/state: Invalid argument
I/libsuspend( 942): Selected wakeup count
It is trying to write "on" to state file.
/sys/power/state file has two words: frezee mem.
Click to expand...
Click to collapse
@Koloses
I have found this in ramdisk:
init.zygote32.rc:
Code:
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
class main
socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
[B][COLOR="Red"]onrestart write /sys/power/state on[/COLOR][/B]
onrestart restart media
onrestart restart netd
Thats why i got that error while booting, but i dont know why libsuspend is mentioned at the error. Also, there is no android_power folder.
This is on stock kernel 5.1.1.
Good work @Koloses !!! Keep up buddy Just to notify I had 31.800+ benchmark score with the well known kernel 5.1.1. of dj steve, without overheating... Personally I prefer more performance instead of battery life, so if you keep on tweak and overclock your kernel would be nice maybe a separate zip. To enable it. Have a nice day man!
*** This kernel is now end-of-life and not supported nor actively developed anymore !!! ***
Hi all,
some of you know me from the other OnePlus or Samsung devices areas, where I provide my kernels already for more than five years to OnePlus 5, 3T, 3, 2, one and X, Galaxy S5, S3 and Note 10.1 users for all sort of platforms (Samsung, Cyanogenmod, Omnirom etc.)
Now I own a OnePlus 5T device and decided to port my kernels also to this device.
Please note:
I am not heading to have as many features as possible implemented, this is not my design goal. If you are more into that, move on to other, good existing kernels. If you are searching for a good mix of improvements and new functions while not sacrificing stability, you are welcome here (see below the history section for more info).
Compatibility
Important: This kernel is only meant to be compatible with official OnePlus OOS and nothing else.
So when the kernel does not run on custom rom XYZ, do not even bother me with it or ask hundred times in the thread for compatibility.
I could not care less about it !!
To add: A community build is NOT an official build supported here. If you use a community build and have issues, don't complain or even report.
Important notes
Read first, especially when you are new to my kernels:
http://wiki.boeffla.de
Boeffla-Kernel uses the anykernel concept = Flash stock kernel of rom first !
This kernel is ONLY compatible to OxygenOs stock, nothing else !!!
If you are using a custom rom that bases on OxygenOs, it might work. However, if it does not work, do not expect me to do tweak to make the kernel running with your favorite rom. I would not do it - my one and only reference is OxygenOs stock.
It is not supposed to be compatible to CM, HydrogenOS etc.
Also note: You have to use Boeffla-Config app which I provide on my homepage to tweak the kernel. 3rd party apps will not be able to unleash the full power of the kernel.
Important: Manually disable battery optimisation for Boeffla-Config app in the rom settings (battery -> battery-optimisation)
Installation
Read the install instructions in the support section on the Boeffla Site.
Support
First read the FAQ section on the Homepage !!!
Click here to learn about all possible kernel settings in the config app (outdated at the moment).
Click here to learn about using the config app.
I will refuse to give support if you do any undervolting/overclocking and experience freezes or hot reboots.
I will also not provide any support if you do not use Boeffla-Config app to tweak the kernel, other 3rd party tweaking apps are known (and intended) to cause issues.
I will refuse to give support if you have xposed framework installed and reporting any kind of weird issues. My opinion to xposed it quite clear: too powerful for >90% of the users that just mess up their system with it.
Otherwise, you can get in touch with me via the support e-mail address: [email protected]
Please provide kernel version, rom version, a detailed issue description and ideally supporting screenshots or log files.
Change logs
(you can also access them directly in Boeffla-Config V2 by pressing menu and selecting change log...)
Change log for OxygenOS 5.x.x kernel - Click here
Change log for OxygenOS 4.x.x kernel - Click here
Known issues
none known
Features
Note: This kernel only runs on OOS 4.x.x for the OnePlus 5T - nothing else !!!
Important: Manually disable battery optimisation for Boeffla-Config app in the rom settings (battery -> battery-optimisation)
Support of anykernel concept (only latest kernels) - flash stock kernel before flashing Boeffla
Full integration with Boeffla-Config V2 (you need at least version 2.5.10 or higher !!!) configuration app (get it from http://www.boeffla.de) to configure all kernel settings
Dash charging fully supported
The two CPU clusters (big and little cpu) can be configured completely separate in terms of min/max frequencies, governors and CPU core profiles
Additional governors: zzmoove, blu_active, impulse, cultivation
Additional schedulers: fiops, bfq, sio, sioplus, fifo, vr, tripndroid, maple, zen
Underclocking CPU and GPU supported
No CPU and GPU overclocking (not planned too)
No CPU and GPU voltage interfaces (not planned too)
GPU boost implemented (4 levels)
CPU core profiles to restrict number of CPU cores being used (the OP5T does not hotplug based on load)
USB charge rate bumped up to 900 mA
Boeffla charge analysis (display of charger type and charge current in Boeffla-Config app in real time)
Notification LED control (effect + speed for blinking/fading, brightness for continuous notification like battery charging etc.)
Boeffla-Sound engine V1 (headphone volume control, earpiece control in calls, microphone gain control in calls)
Dynamic FSync (activated if screen on, deactived if screen off), configurable
Input boost frequencies and duration configurable per CPU cluster, input boost switch
Show CPU frequency usage per CPU and frequency in Boeffla-Config
Show current CPU core frequencies in realtime (note: other apps than Boeffla-Config will likely display wrong information on offline cores as they are not up-to-date yet)
Show GPU frequency usage per frequency in Boeffla-Config
KCal V2 Color control
Display backlight limits configurable (to avoid display brightness gets too low in some situations)
Display backlight dimmer
Swipe2wake gestures
Boeffla generic wakelock blocker
Control haptic feedback of gestures (except fingerprint)
Haptic feedback intensity control (from 0 to 25, with 25 being 100%)
Swipe2sleep gestures
SD card read ahead buffer configurable (default increased to 1024 kB)
Ext4 File system tweaks (default to on, can be disabled)
Kernel logger (dmesg) configurable
CIFS support (module, do not mount inside /data, if you rooted with Chainfire SuperSu, make sure you uncheck the namespace separation in SuperSu app)
NFS read-only support (module)
NTFS support (module)
XBox support (module)
OTG-Ethernet support (module)
TCP Congestion changed to Westwood
Many additional TCP congestion algorithms available
Entropy values configurable
Swap supported
Wireguard supported
Various kernel tweaks
Doze mode configurable in Boeffla-Config
Full selinux strict support (switchable to permissive on demand)
Show speedbin information (PVS level) in Boeffla-Config app
init.d support (in /system/etc/init.d - set correct permissions!)
Automatic EFS backup
Fully supports OOS device encryption, but does not force it
Integrated full busybox 1.27.2 (own compilation)
Compatible with systemless root
Safetynet: verifiedbootstate + additional flags removed
Kernel initialisation log file (with history of 3 log files)
Emergency reset script automatically placed into /boeffla-kernel-data folder of your internal memory
Google gcc 4.9 toolchain (64 bit) used for best stability
Always based on latest OOS kernel sources (https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998)
Download
For all information and downloads (stable AND testing versions), visit the Boeffla-Kernel homepage:
www.boeffla.de
History and design targets
Basically I created my first Boeffla-Kernel in 2012 as there was no kernel for the Samsung Galaxy S3 around that had exactly the mix of functionalities that I wanted. I wanted to have full flexibility in undervolting and charge rates for instance, but did not like the sharpness and/or brightness tweaks many kernels have implemented as per default.
Hence, I began to create my own kernel after a while, adding all the features I like. This is the result of my work, which in the end I decided to share with you. I hope you like it as much as I do.
The objective of this kernel is to have a kernel for daily use. It does not aim for best battery life, or best smoothness or best benchmark scores. Also it does not aim to have the broadest feature set available everywhere.
It aims more for a good mix of all, not sacrificing stability and functionality in the end.
And - most important: It aims to stay quite close to stock !!!
These design targets are also valid for the OnePlus kernel here!!!
This said, I will definitely NEVER implement:
things I do personally not need
things I do not like
things that are in any way dangerous
anything which is highly experimental
a CAF based kernel
anything that requires upstreaming of kernel parts to a higher kernel major version
So do not even ask for it if it falls into the listed categories. Everything else I am happy to check and decide.
And: I do not really care about benchmark numbers, they say almost nothing as long as something is not completely wrong. Important for me is the feel-good factor.
I am also not interested in gaming at all, so never expect a gamer kernel. It will just not happen...
Compatibility
To reiterate it again: Flash the kernel only if you are running a compatible rom !!!
Configuration of the kernel
To tweak and configure the kernel, manually load and install the app Boeffla-Config V2 from the downloads section on www.boeffla.de.
You need at least version 2.5.10 or higher for the OnePlus 5T Boeffla Kernels.
Donation
If you like my work, feel free to donate: Donation-Link
If you donate at least 2,49 EUR (to be in line with the donation app prices on Google Play store), you will receive a personal donation code which unlocks some nice little comfort functions in Boeffla-Config V2 on top.
Source code
All sources can be found in my Github repository: http://github.com/andip71
Credits to developers
Of course, I had never been able to create all that by my own. So I want to give credits to the really good developers around, that have given me all the inspiration and from which I cherry picked lots of the implemented functionalities:
* ZaneZam
* eng.st
* flar2
* arter97
* Grarak
* Entropy512
* Faux
* FranciscoFranco
* Ak
* Osm0sis
... I just hope I did not forget someone. If so, please let me know and I will add you of course.
Thanks to all of you for your great work !!!
Disclaimer
*** As always - Flash on our own risk! ***
Make sure you flash the correct version depending on your firmware version!
I can and will not take any responsibility for bricked phones or lost data.
It is generally recommended to run a complete Nandroid backup in your custom recovery and safely store your personal data before you flash a new kernel.
Cheers and enjoy
Andi
Latest change log:
OOS4
http://kernel.boeffla.de/oneplus5t/boeffla-kernel-oos/oos4xx/changelog.htm
--- Reserved ---
WHAT MAKES YOU THINK I WILL MAKE A KERNEL FOR ONE PLUS 5 T ?????
Sendt fra min SM-N950F med Tapatalk
Thread opened.
First beta version has just been released - 1.0-beta1.
Feature list, see OP.
Have fun
Andi
Is it compatible with open beta 2 ?
Awesome.. Was waiting for your Kernel
zebasketteur said:
Is it compatible with open beta 2 ?
Click to expand...
Click to collapse
I would assume not, as in title is says OOS 4
---------- Post added at 02:42 PM ---------- Previous post was at 02:05 PM ----------
Just flashed, seems that the max brightness is lower, with the display backlight settings unchanged. Apart from that all seems to be good.
Nice to see you here! I have use your kernels starting with Samsung S3 and after that many many devices and always being good!
zebasketteur said:
Is it compatible with open beta 2 ?
Click to expand...
Click to collapse
This is very clearly stated in the opening post.
No.
Hetex said:
[/COLOR]Just flashed, seems that the max brightness is lower, with the display backlight settings unchanged. Apart from that all seems to be good.
Click to expand...
Click to collapse
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Lord Boeffla said:
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Click to expand...
Click to collapse
Not sure if it is the same problem but in the first release of elementalX kernal, whether the brightness dimmer was enabled or not the brightness at maximum was half of what it should have been.
Thanks.
Lord Boeffla said:
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Click to expand...
Click to collapse
You have to revert THIS exact commit in order to fix that (not working anymore on OP5T)
Welcome to OP5T mate btw :highfive:
Cheers'
Hello Boeffla
Hetex said:
Not sure if it is the same problem but in the first release of elementalX kernal, whether the brightness dimmer was enabled or not the brightness at maximum was half of what it should have been.
Thanks.
Click to expand...
Click to collapse
Good hint. Will check in that direction when more people are sure this brightness thingy is real.
Update: Analysis started...
Andi
Lord Boeffla said:
Good hint. Will check in that direction when more people are sure this brightness thingy is real.
Update: Analysis started...
Andi
Click to expand...
Click to collapse
Ok, issue analyzed, confirmed to be a bug.
Bug is fixed and beta2 already compiling. Stay tuned. And thanks for the report.
(BTW it was not the brightness dimmer but a changed brightness range sent by the rom to the kernel, so the min/max limiter was cutting too early)
Thanks
Andi
AndroidGX said:
You have to revert THIS exact commit in order to fix that (not working anymore on OP5T)
Welcome to OP5T mate btw :highfive:
Cheers'
Click to expand...
Click to collapse
Thanks. Sorry, did not see your post as I was busy analyzing.
Well... reverting a commit and losing the functionality is not the option when I can fix it, eh? :fingers-crossed:
And so I did.
MrTalon4 said:
Hello Boeffla
Click to expand...
Click to collapse
Hello MrTalon4
Andi
Hi all,
small bugfix update is out:
Version 1.0-beta2
18.01.2018
Fix: Backlight limit implementation adjusted to OP5T (display could never reach maximum brightness before)
Enjoy
Andi
Welcome,it is nice to see you here ..waiting one for oreo
marko94 said:
Welcome,it is nice to see you here ..waiting one for oreo
Click to expand...
Click to collapse
Yeah. But not before it gets out of open beta, not before it is released officially.
... my golden rule for a long time.
Andi
Welcome to the 5T-Zone
Is it possible to have WireGuard implementation for your new 5T kernel (at some point in the near future) ?
Edit:
I just rechecked the OP, already there. Too cool
NoGravityKernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
No Gravity Kernel 2.0 + 4.0 App Trailer
Why is it called NoGravity kernel?
The OnePlus company decided to give the Snapdragon 810 V2.1 to our device. It comes with a little increase in GPU clock speed (from 600MHz to 630MHz) BUT it also comes with a CPU downclock going from 2.0GHz to 1.77GHz on the big cluster to avoid overheating issues. No overclocked kernel has been made for PIE/OREO so this is the reason why I made this kernel. This Kernel is for Performance but it still gets descent battery life due to some added features (see below).
The Kernel will boot using stock (OnePlus 2) CPU frequencies that correspond to the Balanced Profile. Other profiles for battery, performance and gaming can also be switched to in my app.
To tweak the kernel easily, here's my No Gravity app! featuring custom profiles (Battery, Balanced, Performance, Gaming and Gaming+). My kernel offers some features that cant be found in other kernel tweaking apps. You can find them lower in the thread.)
Detailed info about the EAS Kernel in post#3.
-Overclocked CPU (Little 1.56->1.9Ghz, Big 1.8-> 2.2Ghz)
-CPU Underclocked to 302 MHz(idle) and undervolted
-The two CPUs (big and little cpu) can be configured completely separate in terms of min/max frequencies and governors
-Undervolted for better battery life and temps
-Using custom thermal engine for better performance (Less thermal throttling)
-Voltage Control
-Jaw dropping Applications Opening speed
-Unlocked PUBG HDR+Extreme options (Disabled by default, enable it in app)
-DDR Bus boost for frame rendering
-No Gravity app! support
-DTS Eagle Drivers added for better sound
-GPU Overclocked to 650 MHz
-GPU Underclocked to 27 MHz on idle
-Added Adreno Idler
-AdrenoBoost 2.1
-Updated Cpusets for even more smoothness
-Backported Pixel timekeeping
-Smarter GPU
-Disabled ZRAM
-DDR Input Boost
-Max screen off frequency tunable
-Dynamic File Sync
-Slimbus Overclock
-Thermal Throttling Slider
-Added Governors (Chill, Relaxed)
-Added Fingerprint boost
-Added WakeBoost module
-Faux Sound support
-Gestures Support
-FastCharge drivers Support (Now the charging rate is fast even when screen on without increasing temps that much!)
-Maximum charge rate over USB 3.0 increased from 500mA to 900mA
-WireGuard Support
-Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
-Added Maple, SIO and FIOPS I/O Scheduler
-KCAL Support
-K-Lapse Support
-Blocked wakelock (Boeffla)
-Added Hotplug (Core_ctl)
-Added Gentle fair sleepers toggle
-Debloated
-New battery screen animation with percentage
-F2FS Support leading to ~10% faster write speeds compared to EXT4
-Based on Linux version 3.10.108
-Kernel & App update checker
-Balance, Performance, Battery, Gaming and Gaming+ Profiles for NGK & NGK EAS
-Max Cluster Overclock toggles to apply maximum overclock frequencies to Little and/or Big Cluster
-Custom Profile Creator Page that let's you create and share profiles with the NGK community (/SDCARD/NGK/PROFILES/)
-Displays most accurate CPU temperatures for Little and Big clusters separately
-GPU Stats page to show every GPU Frequencies time in state stats
-NGK Stats Page showing last gaming session FPS+ Chart, battery drain, avg CPU temps & avg Battery temps, toggle for enabling NGK Stats Overlay displaying FPS and following optional features:
-CPU Temps/Freqs
-GPU Temps/Freqs
-Battery Temps/Percentage
-App optimization (ART) Button
-PUBG HDR+Extreme config unlocker
-Thermal Switch to select between NoGravity thermal config and stock
-NGK Bootanimation
-NGK Overlay
-PocketMode Switch to turn off fingerprint sensor when device is in pocket or on table face down
-Proximity Gestures Switch to pulse ambient dispay on Hand Wave
-Pick-Up Gesture Switch to pulse ambient display when device is taken
-Pixel 3 Flip to Shhh feature
-Resolution Changer to switch between 1080p FHD and 720p HD resolutions
-Battery Current Limit Switch to disable or enable BCL on low battery percentage
-Sound page lets user download DTS:Eagle apps (Headphone:X or Ultra)
-CPU Temperature Limit slider to set thermal throttling temps
-K-Lapse Night mode and Brightness mode toggles
-Video Recording Codecs Selector (H.264, H.265, H.265+)
-Backlight Dimmer button to help reduce eye strain
-DDR Input Boost toggle
-Apply On Boot to apply user settings on boot
-EAS page to tweak Load tracker, governors and dynamic schedtune boost!
-More info on those in the app
Most of my work will be on Energy Aware Scheduling Kernel version since NGK is really solid and stable,,,
This kernel works on Android 10, PIE and OREO ROMs.
DO NOT FLASH ON STOCK OXYGEN OS!
Initial boot might heat up device a bit, which is normal - Let it settle
I recommend before coming to conclusion, give it at least 2 complete charge cycles and then raise any issue.
Max fully stable overclock is Little/Big 1.8GHz/2.1GHz
Both max 1.9GHz and 2.2GHz may be unstable and are not reacheable using app profiles. They still can be reached using the max overclock toggles the app provide.
Flash No_Gravity_Kernel-vX.X.zip file in TWRP (Latest TWRP Recovery Recommanded)
(Optional) - Clear cache and Dalvik
Made your choice?
Download Links
No Gravity Kernel
Anti Gravity Kernel
NGK-EAS (Post#3)
No Gravity App
Anti Gravity Thread
As I put a lot of time and effort into this project, I now accept donations feel free to help me a little
Donate
Older NGK builds
Q-PIE-OREO AOSP Based Roms
Q-PIE-OREO LineageOS Based Roms
v3.2 Q-PIE-OREO AOSP Based Roms
v3.2 Q-PIE-OREO LineageOS Based Roms
v3.1 Q-PIE-OREO AOSP Based Roms
v3.1 Q-PIE-OREO LineageOS Based Roms
v3.0 Q-PIE-OREO AOSP Based Roms
v3.0 Q-PIE-OREO LineageOS Based Roms
v2.7 Q-PIE-OREO AOSP Based Roms
v2.7 Q-PIE-OREO LineageOS Based Roms
v2.6 PIE-OREO-NOUGAT AOSP Based Roms
v2.6 PIE-OREO-NOUGAT LineageOS Based Roms
v2.5 PIE-OREO-NOUGAT AOSP Based Roms
v2.5 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4.2 PIE-OREO-NOUGAT AOSP Based Roms
v2.4.2 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4.1 PIE-OREO-NOUGAT AOSP Based Roms
v2.4.1 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4 PIE-OREO-NOUGAT AOSP Based Roms
v2.4 PIE-OREO-NOUGAT LineageOS Based Roms
v2.3 PIE-OREO-NOUGAT AOSP Based Roms
v2.3 PIE-OREO-NOUGAT LineageOS Based Roms
v2.2 PIE-OREO-NOUGAT AOSP Based Roms
v2.2 PIE-OREO-NOUGAT LineageOS Based Roms
v2.1 PIE-OREO-NOUGAT AOSP Based Roms
v2.1 PIE-OREO-NOUGAT LineageOS Based Roms
v2.0 PIE-OREO-NOUGAT AOSP Based Roms
v2.0 PIE-OREO-NOUGAT LineageOS Based Roms
v1.9.2 OREO-NOUGAT AOSP Based Roms
v1.9.2 OREO-NOUGAT LineageOS Based Roms
v1.9.1 OREO-NOUGAT AOSP Based Roms
v1.9.1 OREO-NOUGAT LineageOS Based Roms
v1.9 OREO-NOUGAT AOSP Based Roms
v1.9 OREO-NOUGAT LineageOS Based Roms
v1.8 OREO-NOUGAT AOSP Based Roms
v1.8 OREO-NOUGAT LineageOS Based Roms
v1.7 OREO-NOUGAT AOSP Based Roms
v1.7 OREO-NOUGAT LineageOS Based Roms
v1.6 OREO-NOUGAT AOSP Based Roms
v1.6 OREO-NOUGAT LineageOS Based Roms
v1.5 OREO-NOUGAT AOSP Based Roms
v1.5 OREO-NOUGAT LineageOS Based Roms
v1.4 OREO-NOUGAT(advanced gestures broken for the LineageOS based ROMs (dt2w works)
Changelog
Public Changelog of private startup builds
post#2 for public released build changelogs.
ScreenShots
See screenshots section at the top of the thread!
Credits
ShreyanshLodha, Lord Boeffla, Benschhold, Grarak, Francisco Franco, arter97 and also Shreesha.
Thanks To: ShreyanshLodha for helping me out a bit at the begining and to Utkarsh Omer for deeply testing the kernel before stable releases.
XDA:DevDB Information
NoGravity Kernel, Kernel for the OnePlus 2
Contributors
Pierre2324
Source: [url]https://github.com/Pierre2324/NGK_android_kernel_oneplus_msm8994[/URL]
Version Information
Status: Stable
Current Version: 3.5
Created: 2018-03-15
Last Updated: 2020-09-27
NoGravityKernel EAS
Kernel Features EAS
Same features as Non-EAS kernel + the following
Energy Model fitting OnePlus 2 and NGK's overclock
Schedtune + Dynamic Schedtune Boosting
Sched and Schedutil Governors
Optional SQRT frequency selection algorithm
PELT & WALT Load Trackers
Prefer Idle tunable
1000Hz Time Interrupt frequency to fit Pixel Phones instead of previous 300Hz
3.18 Kernel Preempt
3.18 CpuFreq upstreams
Using cpu_input_boost driver for event based boosting (replacing cpu_boost)
Many more upstreams and backports to our 3.10.108 kernel
Download Links
EAS Q-PIE-OREO AOSP Based Roms
EAS Q-PIE-OREO LineageOS Based Roms
As I put a lot of time and effort into this project, I now accept donations feel free to help me a little
Donate
Changelog
Public Changelog of private startup builds
post#2 for public released build changelogs.
Source: [url]https://github.com/Pierre2324/EAS_NGK_android_kernel_oneplus_msm8994[/URL]
More info on EAS and the specific implementation for OnePlus 2
EAS | Energy Aware Scheduling
Notice : I will not tell you everything about it.. I'll just do my best to summarise it up and, most importantly, say what's the implementation of it in my kernel compared to newer phones... I don't know everything and may do some mistakes (english mistakes included ) if I do, let me know but still should be on track. I will highlight important words in bold. Also for better kernel tuning, please use my app as its made for our specific implementation of EAS.
Intro: Well Google mostly wanted a better/smarter algorithm to ramp up frequencies than the current cpu-boost driver.. So they started to make the kernel smarter on their 3.18+ kernel seen on Pixel Phones. They wanted to port EAS to their previous phones (Nexus 5x and 6p) having 3.10 kernel like the OnePlus 2 but they didn't.. They started porting it with a pretty basic implementation with a bad energy model, a pretty old version of the battery oriented Per Entity Load Tracking, a pretty basic Schedtune support too and the old Sched governor instead of the newer SchedUtil governor used on current/newer phones. That basic implementation was actually the first releases here on XDA before 3.0 update.
Energy model: At the base of a good EAS implementation there's an Energy Model containing compute capacities and energy cost tuples for each Cluster (big.Little). That way, its possible to estimate the cost of task placement on CPU. Hmm okay that was a big sentence here.. Well to summarise it up, some tasks need more compute capacity to run nicely (smoothly,fast,etc) so need more power which will cost more to run and depending on the task it may need to run on the Big cluster. I say that the kernel is smarter that way, since it will try to set tasks on cores that needs less power to run while still being fast enough for the task. It will also decide to use a shallow core instead of waking another from deeper since the energy model also specify wakeup costs.
What I did for the Energy Model until now: Since the Angler energy model that was used in first releases was pretty bad, I converted it to a frequency / cost model instead of capacity / cost which is now much easier to manipulate instead of speedbins. I then recalculated costs for each frequencies with some graphs including voltages for every frequencies to determine cost for both Cluster. For overclocked frequencies, I had to extrapolate/interpolate trend lines I had in those graphs. That way, we now have an Energy Model that corresponds better to our OnePlus 2 device. Some changes might need to be done later on, but it seems okay for now.
Sched Governor: EAS's Sched or newer Schedutil both use SMP -> Symmetrical multiprocessing instead of previous HMP -> heterogeneous multi-processor found for interactive, ondemand, etc... HMP and SMP both have in mind that multiple CPUs are running, but on SMP no CPU is selected as the Master CPU.. both CPU cooperate as friends.. Well we all know there is a big difference between our little and big CPU and this is why the governor is not alone in EAS..On the other side, HMP knew exactly which cpu was more powerful and while this is good since its easy to implement and fast, this is why its not too battery friendly..
What I did to Sched governor until now: Well no specific feature comes to my mind, but it got optimised alot by backporting amd upstreaming some part of it from higher kernel versions (mostly 3.18)..
Schedutil Governor: Schedutil is the governor every phone uses right now by default I guess. Sched is not even there anymore if I'm not mistaken.
What I did to Schedutil governor until now: Shedutil got backported from 3.18 to the kernel. From my tests, it's been more stable than Sched for below reasons:
o Took less time for the kernel to settle after booting.
o Frequencies stay low and do not jump everywhere when simply looking at the screen.
o Improved latency
Its now possible to switch between them using my app. I wanted to make a comparison between both but couldnt find enough info on them to really tell you precise differences. I can only say Sched is predecessor of Schedutil so I assume Schedutil can only be more efficient.
Load Tracking: Whether its PELT (Per Entitty Load Tracking) or WALT (window assisted load tracking) both increase efficiency since they do not affect frequencies directly and instead of just placing tasks on any cpu it analyzes it and the amount of energy needed for it is estimated. This smart way of doing things make system quicker since it can run more tasks for less energy. This is what EAS is all about.. smoothest UI possible with lowest impact on battery. PELT is more battery friendly as it ramps frequencies up and down slowly.. On the other side, WALT ramps up and down really fast making UI smoother and snappier since every task is done as fast as possible so cpu can idle and go to sleep faster.
What i did to load tracking: I optimised PELT and added WALT.. Its now possible to switch between them using my app.
Comparison between WALT & PELT
Souce: https://fr.slideshare.net/mobile/linaroorg/walt-vs-pelt-redux-sfo17307
Frequency ramp up
Frequency ramp down
As you can see, WALT ramps up way quicker than PELT leading to smoother UI. Also tasks are done more quickly. On the other side, it's also possible to see that PELT may be better is some specific use cases as when another job needs to be done a little after due to it not ramping down frequencies completely. This way, WALT would need to ramp up again while PELT would be ready.
Schedtune: Exposes 2 tunnables to userspace: schedtune boost and schedtune prefer idle into cgroups. There are actually 4 cgroups background, foreground, rt and top-app. The first tunable (schedtune boost) takes an integer between -100 and 100, 0 being the default value meaning the most energy efficiency which means that it will be using the lowest frequency to do what it needs. An higher value will add an % offset to the normally used frequency. The second tunable (schedtune prefer idle) when set to 0 (default value) will simply do what EAS says it to do. When set to 1 it will prefer setting tasks on idle cores to reduce latency. Pretty easy to say the second one is less energy efficient.
What I did to Schedtune: Some improvements to it have been added for sure since first release. I've set top-app
default value to 1 instead of 0 to bias tasks on big cores. This way, it also improves latency for Dynamic Schedtune Boost.
Background has been set to -10 to reduce its impact. Gaming and Gaming+ profiles are using more aggressive values so they are not recommended for other tasks than gaming as this may give you higher battery drain during normal usage.
Dynamic Schedtune Boost: It's pretty easy to understand and its a pretty nice feature made initially by joshuous on the OnePlus 5 if Im not mistaken. It simply sets a user specified value to schedtune boost dynamically a cgroup so it can go back to 0 afterwards to not hurt battery. It's mostly used in cpu-boost for input boosting.. Then why not just use the input boost that worked well on HMP? Well to that I would say: how do you know the input boost frequency value you've set is the correct one for what your specific usage? Input boost will boost to a user specified value but what if that value is okay for chrome but too high for simply scrolling in a text file? Well that's it.. EAS is able to find the frequency needed depending on usage + the dynamic boost it will simply make things faster and smoother by adding a positive offset to the frequency used but dynamically so it can revert back to 0 afterwards and save battery while phone is actually doing nothing or when your simply looking at the screen.
What I did to dynamic schedtune boost untill now:Well I added it to our kernel by backporting the feature from a pixel kernel and adapted it to our phone. Due to some limitation we can only dynamically boost top-app.. at least for now.. I could add other cgroups quite easilly but its not really needed as top-app is the most important/effective one. I'll add more later if its actually needed.
To tweak it: Use the EAS page in my app... make sure you don't set any frequency boost in any kernel manager, tweak input boost ms and dynamic stune boost value. Note: enabling Dynamic Schedtune Boost in my app will automatically erase any previously set input boost frequency so it works correctly.
PowerHAL: For proper EAS people say it needs proper PowerHAL.. The kernel itself cant make what a PowerHAL can do since it cant read some userspace events and all. Lets say boost on input touches can be done with a good PowerHAL so less job is done by the kernel.
What I did for PowerHAL untill now: Well I'm aware of what a PowerHAL could bring tho no PowerHAL has been done for EAS on for old kernels.. That doesn't mean I couldn't modify a newer one to fit our phone but I made a lot of tweaks in the kernel directly to prevent that. A PowerHAL is compiled with a ROM directly so could be harder to replace. So what I did is put some nice features to mimic PowerHAL behaviours like Dynamic Schedtune Boost, DevFreq boost on app launches, fingerprint boost and more nice features directly in kernel that allows (for some of them) to be tuned by the user.
More features and development can be seen in changelogs.
If you have any questions feel free to post them. If I made any mistake feel free to correct me.
Changelog:
Previous Changelogs:
3.4.1 Build:
Kernel:
Revert latest LPM changes to fix a blackscreen issue
NoGravity Kernel App v3.4.2:
General:
Updated Profiles
New App & Kernel Update checker
Small fixes
OnePlus 2:
Nothing specific to OP2 added
Pocophone-Mi8:
Modified NGK Thermals to fit NGK thermal locking mecanism
DT2W Toggle added to Kernel Page (mainly for OOS)
Updated Backlight Dimmer
New NGK stats page
-Shows last session average FPS
-NGK overlay service toggle to show FPS,CPU & GPU stats in real time on screen
3.4 Build:
Kernel:
Faster app opening
Added Memfd call for new Android 10 ROMs
Various CPU, GPU, devreq & cpubw optimisations
Proper DDR bus boost when rendering frames to the display (to fit our old kernel)
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
*Notes :
-I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
3.3 Build:
NoGravity Kernel App v3.3:
General:
Updated Profiles
Lowered Magisk Toast Messages*
Max GPU Freq Selector
Added an option to refresh GPU Stats
Updated descriptions
OnePlus 2:
DDR Input Boost Toggle
Pocophone-Mi8:
New GPU Page:
-GPU Stats
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
Kernel:
Faster app opening
DDR Bus boost on input now disabled by default (use my app to enable it again)
Backported,cleaned up some GPU stuffs
Removed some bloat
Lowered heat and battery drain
Many optimisations
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
Fixed a notification/call sound distortion
*Notes :
-I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
3.2 Build:
NoGravity Kernel App v3.2:
General:
Updated Profiles
Auto-dismiss Apply on boot notification
Updated descriptions
OnePlus 2:
Fixed App opening on AGK
Fixed EAS Dynamic Schedtune Bug
Pocophone:
New Kernel Page to let you control:
-Thermals:
Stock one || Evaluation (NGK’s default)
-Thermal Suspend API:
OFF || ON (NGK's default)
-Battery Thermal Throttling Removal:
OFF || ON (NGK’s default)
-SELinux Switch:
Enforcing (NGK’s default) || Permissive
New DTS Eagle (Sound) Page
Kernel:
Faster app opening
DDR Bus boost on input (Q Gestures, Animations are much better)
Various changes to make the UI smoother
Backported some small changes from the Pocophone F1 kernel (gpu, cpuidle)
Better Dynamic FSync
Removed some bloat
Many optimisations
Blackscreen fix (Device screen not turning on issue)
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
Quite a lot of EAS,Sched,Cpufreq,LoadTracking changes
*Notes :
-Make sure you flash Magisk after flashing the kernel
-As always when you wipe cache and dalvik, make sure you charge atleast once overnight so ART Optimisation does its job while charging at 100%.
3.1 Build:
NoGravity 3.1 App:
Pocophone support added (Profiles and cluster temps only for now)
Small fixes/optimisations
*Notes :
-You may need to uninstall previous app for it to install
-I recommend using my app over others to tweak EAS kernel since its made for the specific OnePlus 2 implementation
Kernel:
Debloated the kernel leading to smaller kernel
Compiling Optimisations
Removed Simple Low Memory killer (Yea algorithm is better but too aggressive even if its made for 4GB devices) This also fixes some black screen issues.
Improved latency
And more under the hood changes
Updated to latest LineageOS changes
Kernel EAS:
Updated to latest NGK changes
*Notes :
-Make sure you flash Magisk after flashing the kernel
3.0 Build:
NoGravity 3.0 App:
Fixes for Android 10
New EAS page to change Load tracker, governor and enable dynamic schedtune boost!
Added 60FPS app download link since NGK now supports 60FPS
Boot delay removed
No more annoying persistent notification!
Thermals and codecs switching should now work for everyone
DTS Eagle page updated
Adapted profiles for EAS
Small fixes/optimisations
*Notes :
-You may need to uninstall previous app for it to install
-I recommend using my app over others to tweak EAS kernel since its made for the specific OnePlus 2 implementation
Kernel:
60FPS Video Recording support added (This app is needed)
New more efficient Simple Low Memory Killer
CPU-Boosting, Fingerprint, Cache, MMC & Sched optimisations
Improved F2FS (700 commits+) averaging about 10% better write speeds over EXT4 in my tests
Battery improvements (mostly to screen off drain)
And more under the hood changes
Adapted to Android 10
Updated to latest LineageOS changes
Kernel EAS:
Rebased completely to make video recording work
1000Hz Time Interrupt frequency to fit Pixel Phones instead of previous 300Hz
Energy model:
-Now uses frequencies instead of capacity
-Recalculated to fit OnePlus 2 frequencies + NGK’s Overclock
CPU Boost driver:
-Added and fits EAS
-Input boost tunable added*
-Various boost events added
Schedtune:
-Modified boosting
-Dynamic Schedtune Boost added
New prefer_idle tunable
Schedutil governor added!
-Window Assisted Load Tracking (WALT) added + optimisations and integrated along already
existing Per Entity Load Tracking (PELT)
Sched governor:
-Improvements
-WALT & PELT improvements
Preempt:
Backport preempt from 3.18 kernel
CPUfreq:
-Upstreams to 3.18 and some hooks from 4.9
A lot of Upsteams/Backport from 3.18 to our 3.10 kernel
A lot of Scheduler improvements
Updated with latest NGK changes
And more under the hood changes
Adapted to Android 10
2.7 Build:
NoGravity 2.7 App:
New Backlight Dimmer feature added to GPU page
*Notes :
-You may need to uninstall previous app for it to install
Kernel:
Fixed stucked on 1+ logo while charging issue
While at it, improved that charging screen with battery percentage and colors
Fixed big cores turning off randomly or when gaming resulting in same/constant performance for every sessions or benchmark
Updated to latest LineageOS changes
2.6 Build:
NoGravity 2.6 App:
New App Settings Page
Fast NGK App opening after boot toggle added to app settings*
New Camera Page
New video recording codecs switches added => H.264(Default), H.265(Lower file size) and H.265+(Better Quality)*
Kernel:
DeepSleep issue is fixed!
Reworked Battery profile to make it usable and quite smooth
Battery optimisations
AdrenoBoost modifications to fit NGK’s GPU Overclock and help battery
BCL modifications
Little faster app opening speeds
UI optimisations
Updated to latest LineageOS changes..
[/STRIKE]Placed some performance-critical IRQs and kthreads onto the performance CPU cluster in order to improve performance[/STRIKE] (2.5.1 feature removed in 2.6 to fix deep sleep issues)
And more under the hood changes
*Notes :
-Possibility to remove the delay before opening the app after boot. This works on new ROMs. Old ROMs like Shreesha’s Pixel Experience will need the delay to be enabled.
-H.264 is default OnePlus 2 codecs. H.265 (lowered bitrates) will give you same quality but much lower file sizes. H.265+ may give you slightly better quality with same(stock) bitrates (same file sizes). Best file size reduction will be seen in 4K.
2.5.1 Build:
NoGravity 2.5 App:
Same app just updated Android File Host link because of the "no mirrors found" issue...
Kernel:
Smoothness improvements
GPU maximum frequency is now 650MHz on balance profile instead of 450MHz since not everyone uses profiles and some people like to game on balance too. This will give better gaming experience on default profile.
[*]Random phone not waking up after going in DeepSleep issue should be fixed not fixed will be in next build go 2.4.2 instead if you encounter this issue
Updated to latest LineageOS changes.. Video recording fixed!
2.5 Build:
NoGravity 2.5 App:
K-Lapse Night & Brightness modes toggles added to GPU page
Max overclock toggles states after reboot fixed
No Gravity EAS support
Kernel:
Lowered minimum brightness
Minimum brightness tunable added
K-Lapse Support added
Smarter GPU decisions leading to better battery
Fixed an issue where the device could get laggy for some time after DeepSleep
Placed some performance-critical IRQs and kthreads onto the performance CPU cluster in order to improve performance
Fixed Slimbus Overclock (Old feature now added correctly)
Kernel EAS (EXPERIMENTAL)*:
First build!
Same features as NGK without extra governors
Sched Governor and Schedtune added
*Notes : this is an experimental build and will be updated and tweaked in futur releases… so battery/performance/smoothness might not be the best for now
2.4.2 Build:
NoGravity 2.4.2 App*:
Fixed Profiles QSTile
Still Secret feature for now will update changelog later...
Kernel:
Fixed a major battery drain issue
*Notes : If app doesn't install just uninstall previous app version before installing the new one.
2.4.1 Build:
No Gravity 2.4.1 App*:
CPU temperature colors fixed
Secret feature revealed: AGK Kernel support
Kernel:
Fixed Random annoying Kernel Panic after reboots
Fixed some little tweaks that were not applying correctly
Kernel smoothness and performance will now be more consistent after waking up/deepsleep
Some minor under the hood changes
*Notes : Uninstall previous app version before installing the new one.
2.4 Build:
No Gravity 2.4 App:
Yea you read it right, it's back and better!
Apply on boot behavior updated.. The app now detects when it gets root access and notifies the user it's ready to be opened.
New Sound tab including both DTS:app downloads (Headphone:X and Ultra)
Fixed some parts of profiles not applying correctly
PocketMode now disables Double Tap 2 Wake on LineageOS based ROMs also
Startup screen updated
Fixed a small issue for Max overclock toggles
Added colors to CPU temperatures
New More-Info "(i)" buttons
Kernel:
Lineage based kernel rebased for smoothness and fixed camera on latest LineageOS Rom
AOSP updated to boot on new/upcoming AOSP Roms
Undervolted for better battery life
Tweaked wakelocks for better battery life
Kernel and Profiles optimisations for battery life, performance and smoothness
Optimised kernel compilation for performance
Interactive governor optimisations for performance and smoothness
Max screen off frequency and more settings added to Interactive governor (Default 960MHz)
Brought back lost GPU AdrenoBoost parameter
DTS Eagle Drivers added for better sound (Working with latest Headphone X and Ultra)*
Disabled ZRAM entirely instead of having it low
Kernel now sets NOOP I/O Scheduler when screen goes off for better battery life and reduced resume latency
Calmed down phone vibration intensity
*Notes : I would recommend Headphone X for customizations.. You can get the flashable apps and read more about them in my app or here: https://forum.xda-developers.com/android/software/port-dtsx-ultra-dts-headphonex-t3896233
2.3 Build:
No Gravity 2.3 App:
Pixel 3 Flip to Shhh feature added (Beta feature may drain battery)
PocketMode now disables DT2W when device is in pocket (DT2W may get disabled, yea thats a small issue that can happen so you need to enable it again in your favorite kernel tweaker app)
Less sensitive pickup wake
Fix Max OC on little cluster when apply on boot enabled
Fix temperature limit slider initialisation
Profiles tweaked for battery life and performance
Kernel:
HotSpot fixed! kernel updated to latest LineageOS changes
SIO and FIOPS I/O Scheduler added
Even faster app opening speed
FingerPrint Optimizations
Kernel tweaks for battery life and performance
Many kernel optimisations
*Notes : If apps do not seem to open fast after an update, charging the phone overnight fixes it. After a clean flash, full art cache is generated only when phone is idling at charging with 100% battery.
2.1 Build:
No Gravity 2.2 App:
Fix “on device shutdown” operations for Android PIE
Fix app opening check right after booting
No more in app lag
Unified Notification for services
No Gravity Spectrum 3.1 App:
New GPU Stats page to show GPU frequencies time in state stats
Big Cluster’s Cores behaviour has been reworked for Pie. This leads to better performance and battery for corresponding Profiles (see post below for more details)
Advanced Descriptions Popups fixed (on long click of titles ending with "*")
Pick-Up device to pulse Ambient Display [Still Experimental] may get app force close when device moves too much I will still try to fix this in future builds
Kernel:
Super fast app opening speed*
Big Cluster’s Cores fixed
Faux Sound Control partially added: Mic & Headphone boost
GPU time in state table like CPU added
Kernel, CPU & Memory Optimisations added
*Notes : If apps do not seem to open fast after updates from now on, as weird as it looks, charging the phone overnight fixes it. Me and my testers couldn't find why this happens.
2.0 Build:
No Gravity Spectrum 3.0 App:
Android Pie Support added
Pick-Up device to pulse Ambient Display [Experimental] may get app force close when device moves too much this will be fixed in future builds
Kernel:
Some Pie commits added
Little Cluster now disables (hotplugs) cores correctly
1.9.2 Build:
No Gravity Spectrum 2.4 App:
App now works with any DPI!
Resolution changer
Changes were made to every profiles.. they are now more battery friendly
(Take a look at Post#3 for more details)
Switches can now be toggled by pressing their description
Updated descriptions (including on long click of titles)
Kernel:
USB 3.0 max. charging rate improved (from 500mA to 900mA)
Wake boost module added
Latest Lineage based ROMs Notification LED fix
1.9.1 Build:
No Gravity Spectrum 2.3.1 App:
App speed is now as fast as before
Bug fixes
No Gravity Spectrum 2.3 App:
Proximity Gestures Switch added to pulse ambient display
Added an option to Save and Load Voltage configs
Toggles to apply maximum cluster overclock (Little: 1.9GHz | Big: 2.2GHz)
Apply on boot switch added to Profiles and Performance+ section
Kernel:
Wireguard support added
Updated No Gravity flash screen logo
1.9 Build:
No Gravity Spectrum 2.2 App:
Voltage control added so it fits my kernel
Getting Root Animation added
Black screen bug fixed(if encountered again just kill from recents and open again)
High dpi device fixed (min 380 max 500+)
Set ZEN I/O scheduler for balance and performance profiles
New Thermal Switch description
Now app sets balance profile just before the device shuts down/reboot to ensure beginning of next boot uses stock frequencies* (fixes boot issues on some devices)
Kernel:
Set ZEN as default I/O scheduler
Added back 1.9GHz frequency as Little Cluster now never use overclocked frequencies during boot time (max stable overclock still 1.8GHz)
Added Dynamic Fsync
Added back BFQ IO scheduler
Added missing governors(Chill, Relaxed) to Lineage build
Added missing Maple I/O Scheduler to LineageOS build
Added missing Adreno Idler switch to kernel tweak apps to LineageOS build
And more CPU optimisations…
*Notes : boot crashes should be close to not present anymore, but for the people who faced them in previous builds, it's highly recommended to install/update the new " NoGravity Spectrum v2.2 " apk and run it before flashing the rom
1.8 build:
No Gravity Spectrum 2.1 App:
No Gravity theme
Thermal Selection switch added to select between stock or no gravity’s thermal config
Pocket Mode switch added (Quick Setting tile also included)
SELinux switch added
BCL switch added
Kernel:
Removed 1.9GHz frequency on Little Cluster (fixes boot for the remaining non booting devices)
Fix voltage Controls that wasn’t working properly (voltage control guide added to xda thread post#199)
Added missing big cluster frequencies in voltage control tab
Added ZEN I/O Scheduler
Fingerprint optimisations
And many kernel optimisation…
1.7 build:
Brought back unlocked frequencies (Little 1.9GHz | Big 2.2GHz) more info in notes section of OP
Returned to stock thermal config
Modified Spectrum app support (details about every profiles in Post#2)
Gaming heating issues fixed using Gaming/Gaming+ Spectrum profiles
Added Voltage control
Undervolted Little and Big 302MHz(idle) frequencies for lesser standby battery drain
Optimised Spectrum Profiles for NoGravity
Re-enabled Battery Current Limit (BCL)
Added Temperature throttle control
1.6 build:
Various Random Reboot Fixes. now this NoGravity kernel should be stable!
Big Cluster max frequency is now 2016MHz (more testing will be done for higher frequencies wanted to have a completely stable build)
Faster Charge over USB
Now Big Cluster boots without overclock (Just like the Little Cluster does)
Added lost Big Cluster 1766MHz frequency
1.5 build:
LineageOS support! There are now 2 versions AOSP && LineageOS.
Disabled Battery Current Limit (BCL) that turns off cores when under 20% battery.
CPU Underclock Little && Big 384MHz-> 302MHz.
Rollback to 1.8GHz on the little cluster as 1.9GHz frequency is not
fully working for everyone will do more testing if you want that freq back
Install this Kernel on AOSiP
All fine so far seems very smooth and stable.
The temperature also looks good. I will continue testing but I think this is a promising project. Thank you:good::fingers-crossed:
Does it have under volting support?? So that reducing the voltages can also reduce temps while using the device at OC frequencies.
chintu1234 said:
Does it have under volting support?? So that reducing the voltages can also reduce temps while using the device at OC frequencies.
Click to expand...
Click to collapse
not yet I will try to implement it on a later update
fonfox said:
Install this Kernel on AOSiP
All fine so far seems very smooth and stable.
The temperature also looks good. I will continue testing but I think this is a promising project. Thank you:good::fingers-crossed:
Click to expand...
Click to collapse
Thanks good to know it works on AOSiP Rom!
Gestures are not working on LOS 15.1 Shreesha's latest Build otherwise phone has become more snappier than before and no phone heating issue faced for a whole day
Good news! 1.5 builds for AOSP and latest LineageOS based ROMs are coming...
rahul9871 said:
Gestures are not working on LOS 15.1 Shreesha's latest Build otherwise phone has become more snappier than before and no phone heating issue faced for a whole day
Click to expand...
Click to collapse
Thanks for trying my kernel! What a surprise it worked on LineageOS I didn't expect that, I am compiling right now the 1.5 update that will work on LineageOS and AOSP.
Thanks for Update
It is a safety reason that the 1.9GHz stage for little is eliminated. With me the V1.4 ran without problems at 1.9GHz.
V1.5 little max frequenzie is now 1804MHz but its enough. Also min Step 302MHz is fine
Sot is fine with all time overclocked
V1.4 and last time with updated V1.5
fonfox said:
Thanks for Update
It is a safety reason that the 1.9GHz stage for little is eliminated. With me the V1.4 ran without problems at 1.9GHz.
V1.5 little max frequenzie is now 1804MHz but its enough. Also min Step 302MHz is fine
Click to expand...
Click to collapse
for me too it ran without problem, the reason is that it wasn't working for everyone. Some had bootloops. We'll see in the futur...
fonfox said:
Sot is fine with all time overclocked
V1.4 and last time with updated V1.5
Click to expand...
Click to collapse
How old is your phone?
shrimetal said:
How old is your phone?
Click to expand...
Click to collapse
Nearly 2 years but bsttery is fine
And this Screenshot is with half day wifi usage
Compared to stock kernel battery life on this kernel is equal or better.
I'm also do not gaming etc.
Which app to overclock?
VinX90 said:
Which app to overclock?
Click to expand...
Click to collapse
Kernel Adiutor from Playstore
Why you don't read the OP first Post
Thanks @ Pierre2324 for lastest version of your kernel. Gestures are working again on LOS 15.1
rahul9871 said:
Thanks @ Pierre2324 for lastest version of your kernel. Gestures are working again on LOS 15.1
Click to expand...
Click to collapse
Thanks to you for using my kernel!
NoGravityKernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
No Gravity Kernel 1.0.0 + 4.3 App Trailer
Hey, NoGravity Kernel dev coming from the good old OnePlus 2 here! I'm a graduating student in computer science and I actually work as a programmer. I made a pretty solid kernel for that old Oneplus device and even added Energy Aware Scheduling (EAS) support to it backporting new features like Dynamic Schedtune Boosting to this old 3.10 kernel. With it being pretty much at its apogee, I need a new challenge on a newer kernel (4.9+) while keeping NGK's mindset of Performance/smoothness while getting decent battery life due to added battery oriented features.
For those who want a to know more about my work here is the link to NoGravity Kernel for OnePlus 2.
The Kernel will boot using stock (Pocophone F1) CPU & GPU frequencies that correspond to the Balance Profile when Magisk is present. Overclocked frequencies can be selected in any kernel manager app. Other profiles for battery, performance and gaming can be switched to in my app.
To tweak the kernel easily, here's my No Gravity app! featuring custom profiles (Battery, Balanced, Performance and Gaming). My app offers some features that cant be found in other kernel tweaking apps. You can find them lower in the thread.)
-No Gravity app! support
-Android T (13) ready
-Rebased to full CAF
-Enforcing SELinux
-KernelSU support
-OxygenOS Ports support Please read compatibility section
-9.1.24 & 10.3.7 Novatech Touchscreen Firmware
-Updated, Cleaned up & Optimized NVT/FTS Touchscreen drivers for latency and responsiveness and reduced touch issues
-The two CPUs (Silver and Gold) can be configured completely separate in terms of min/max frequencies and governors
-Unlocked PUBG HDR+Extreme options (Disabled by default, enable it in app)
-CPU Next frequency selection tunable (linear/expnential)
-GPU Overclocked to 835 MHz (GPU overclock/underclock is possible)
-GPU Underclocked to 160 MHz on idle
-Adrenoboost
-Updated energy model
-Pixel Thermals support
-Using Evaluation Thermals
-Own Thermal Suspend API
-Own Thermal Locking Mecanism (Mostly for using NGK thermals on MIUI)
-NAP power saving state for Adreno 630 GPU
-Dynamic Stune Boost
-Devfreq boost and Cpu Boosting drivers
-Disabled ZRAM by default
-FSync Control (ON/OFF)
-Faster Applications Opening speed
-Slimbus Overclock
-Added Fingerprint boost
-Added WakeBoost module
-Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
-Added Maple, SIO, FIOPS, BFQ, ANXIETY I/O Scheduler
-Westwood(Default) & BBR TCP Algorithms
-DTS Headphone X Software Drivers
-Sound Control support
-Vibration Control
-Charging throttling removed
-Maximum charge rate over USB 3.0
-WireGuard support
-USB Ethernet support
-Controller support
-DriveDroid support
-HDR Video Playback support
-KCAL support
-K-Lapse 5.0 support
-Network Guru app support
-Blocked and tweaked wakelocks (Boeffla & more)
-Fingerprint improvements
-Caches optimisations
-Compilation optimisations
-Debloated
-F2FS Support with GC
-Compile with Proton Clang + Polly + Thin LTO
-Latest CAF Tags merged in
-Always upstreamed to latest! (4.9.337)
-And many more under the hood changes...
-Injected sepolicies to work on Enforcing SELinux
-Per-App Tweaks page to apply tweaks to specific apps
-Kernel & App update checker (Direct install of kernel and app on Pocophone) + Selection between touch firmware versions
-Balance(Default),Performance,Battery,Gaming & Gaming+ Profiles (QSTile available)
-Custom Profile Creator Page that let's you create and share profiles with the NGK community (/SDCARD/NGK/PROFILES/)
-Precise CPU temperature for both Clusters separately
-CPU Page with following tunables:
-CPU Governor
-CPU Frequency Selection Algorithm (Linear/Exponential)
-CPU Min/Max Frequencies
-NGK Smart Throttling
-NGK Stats Page showing last gaming session FPS+ Chart, throttling, battery drain, avg CPU temps & avg Battery temps, toggle for enabling NGK Stats Overlay displaying FPS and following optional features:
-CPU Temps/Freqs
-GPU Temps/Freqs
-Battery Temps/Percentage
-RAM usage
-Kernel Page to let you control:
-App optimization (ART) Button
-Thermals:
NoGravity (NGK’s default) || Battery || Stock one
-PUBG HDR+Extreme config unlocker
-ZRAM
Battery Page to let you control:
-Adaptive Charging
-Charging rate limiter
-Battery Thermal Throttling Removal:
ON (NGK’s default) || OFF
-GPU Page:
-GPU Stats
-Min/Max GPU Freq Selector
-Adrenoboost
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
-HDR ON/OFF toggle
-Proximity Gestures Switch to pulse ambient dispay on Hand Wave
-Pick-Up Gesture Switch to pulse ambient display when device is taken
-Pixel 3 Flip to Shhh feature
-DTS Eagle (Sound) Info Page
-More will be added...
-More features...
-Let me know what you want and those may be added!
This kernel should work on any ROM/Ports! Since I love OnePlus and I'm myself a OnePlus 2 user, I will do my best to fully support OOS ports.
Reported to work on: OnePlus 6 Holi Edition, OnePlus 7 OB8 & OB8 Quince, Quarantine Edition. OxygenOS devs do not support custom kernels so if you face any issues with NGK don't post in their groups, post here instead. Latest OOS may have calling issues as reported by some users.
-I recommend before coming to conclusion, give it at least 2 complete charge cycles and then raise any issue.
-I recommend to use my app, franco app or EX Kernel Manager if you need to tweak the kernel further
-CPUs since Snapdragon 845 can't be overclocked from kernel this is why it is removed
-Flash No_Gravity_Kernel-vX.X.zip file in TWRP (Latest TWRP Recovery Recommanded)
-(Optional) - Clear cache and Dalvik => if you do so, Use App Optimization button in NGK App.
Download No gravity Kernel / Download No Gravity App
Donate me! / Telegram Group /
No Gravity App Changelog / No Gravity Kernel Changelog
-The android community and to all my testers for using my kernel and your precious feedbacks and ideas!.
-thanasxda for his experience/knowledge on the Pocophone
- @[COLOR=#00b5d3]_undead[/COLOR] & @[COLOR=#00b5d3]Wmbruckner[/COLOR] for the crowdfunding
-Followings for their donations!
@[COLOR=#00b5d3]Wmbruckner[/COLOR]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Contributors
Pierre2324
Source: https://github.com/Pierre2324/NGK_android_kernel_xiaomi_sdm845
Version Information
Status: Stable
Current Version: 4.4.0
Created: 2019-11-16
Last Updated: 2023-04-30
Changelog
NoGravity Kernel v4.4.0 & App 6.4.0
Previous Changelogs:
NoGravity Kernel v4.3.1[/B]
NoGravity Kernel v4.3.0 & App 6.3.0[/B]
NoGravity Kernel v4.2.0 & App 6.2.0
NoGravity Kernel v4.1.0 & App 6.1.0[/B]
NoGravity Kernel v4.0.0 & App 6.0.0
NoGravity Kernel v3.3.0 & App 5.3.0
NoGravity Kernel v3.2.1 & App 5.2.1
NoGravity Kernel v3.2.0 & App 5.2.0
NoGravity Kernel v3.1.0 & App 5.1.0
NoGravity Kernel v3.0.0 & App 5.0.0
NoGravity Kernel v2.4.1
-Pixel thermal fix
-Upstreamed to 4.9.281
NoGravity Kernel v2.4.0
NoGravity Kernel v2.3.1
NoGravity Kernel v2.3
NoGravity Kernel v2.2:
NoGravity Kernel App v4.2:
NoGravity Kernel v2.1 / App v4.1:
NoGravity Kernel v2.0:
NoGravity Kernel App v4.0:
NoGravity Kernel v1.5.5:
NoGravity Kernel App v3.5.5:
NoGravity Kernel App v3.5.1:
NoGravity Kernel App v3.5:
NoGravity Kernel v1.5:
NoGravity Kernel App v3.4.2:
General:
Changelog/Update page is now scrollable in case of big changelogs to see download buttons
App now checks for update when app is resumed also (not just when app is launched)
Pocophone F1-Mi8:
Fixed an issue where frequencies were shown over CPU and GPU labels when turning off respective temps in NGK Stats Overlay
OnePlus 2:
Nothing specific to OP2 added
NoGravity Kernel App v3.4.1:
General:
Changed text of update checker button 'View changelog' to 'Download!' when an update is present
Other small fixes
Pocophone F1-Mi8:
Updated NGK Stats Overlay UI
NGK Stats Overlay doesn't block input touches anymore
Better FPS Idling algorithm to prevent bad user's FPS stats when display isn't refreshed (e.g just looking at launcher)
Last session average FPS now updates right after toggling off the switch when in NGK app
OnePlus 2:
Nothing specific to OP2 added
1.4 Build:
NoGravity Kernel App v3.4:
General:
Updated Profiles
New App & Kernel Update checker
Small fixes
Pocophone-Mi8:
Modified NGK Thermals to fit NGK thermal locking mecanism
DT2W Toggle added to Kernel Page (mainly for OOS)
Updated Backlight Dimmer
New NGK stats page
-Shows last session average FPS
-NGK overlay service toggle to show FPS,CPU & GPU stats in real time on screen
OnePlus 2:
nothing specific for oneplus 2 has been added
Kernel 1.4:
NoGravity Thermal locking mecanism
OxygenOS Crack*
Add DT2W node for OxygenOS and enabled by default
Input boost driver cleanup
Touch drivers tweaks
GPU max stable overclock dropped to 800MHz (835MHz still available)
Rebased Techpack Drivers (Fixes Mi8 sound issue)
Updated profiles
Brought back updated Wireguard
Added back HDR playback feature
Removed old CPU governors
Network GURU app can now be opened
Merged latest CAF tag
Updated to latest Anykernel
Always upstreamed to latest (4.9.215)
And many more under the hood changes/optimisations
Notes:
Now Kernel comes in Pie and Q versions only, if you are still on Pie blobs simply use Pie kernel
Kernel and app updates will now show up when they are released on main page of NoGravityKernel App along with device specific changelog and download buttons
NGK Thermal Locking Mecanism prevents ROMs from overriding a thermal selection (Mainly MIUI) (when NGK Thermals are ON only, when they're OFF, ROM will have it's default behavior)
NGK now boots on OxygenOS, OOS developers do not support custom kernels so if there are any issues do not report in their groups.
1.3 Build: Welcome to Mi 8!
NoGravity Kernel App v3.3:
General:
Updated Profiles
Lowered Magisk Toast Messages*
Max GPU Freq Selector
Added an option to refresh GPU Stats
Updated descriptions
Pocophone-Mi8:
New GPU Page:
-GPU Stats
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
OnePlus 2:
DDR Input Boost Toggle
Kernel 1.3:
Fixed Screen Freezes
Updated Profiles
GPU min 160MHz, GPU max 835MHz
GPU optimisations (Governor, Latency)
Better CPU idling
Optimised Schedutil Governor
Changes to EAS Energy model
Updated schedtune,devfreq boosts
Better app opening speed
Exposed a Dynamic Stune Boost Duration tunable to userspace (Now independent to input boost duration) -Small changes to input boost
Sched cleanup
Added FIOPS,BFQ,ANXIETY I/O Schedulers
Updated thermals
Brought back RCU 4.14 backport
Vibration Control
Compiled with DragonTC
Huge compilation optimisations for performance
POLLY Optimisations
Debloated even more
Now Permissive by default, Android 10 Q blobs don't seem ready yet
Always upstreamed to latest! (4.9.212)
And many more under the hood changes...
Notes:
Max GPU frequency of 835MHz is only reachable manually as I don't consider it fully stable. On the other side, 820MHz Overclock is stable and is used in my profiles.
I wanted to use relatively longer dynamic schedtune boost duration compared to input boosts so made them separate in terms of length.
I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
1.2 Build:
NoGravity Kernel App v3.2:
General:
Updated Profiles
Auto-dismiss Apply on boot notification
Updated descriptions
Pocophone:
New Kernel Page to let you control:
-Thermals:
Stock one || Evaluation (NGK’s default)
-Thermal Suspend API:
OFF || ON (NGK's default)
-Battery Thermal Throttling Removal:
OFF || ON (NGK’s default)
-SELinux Switch:
Enforcing (NGK’s default) || Permissive
New DTS Eagle (Sound) Page
OnePlus 2:
Fixed App opening on AGK
Fixed EAS Dynamic Schedtune Bug
Kernel 1.2:
Updated to latest Touch Firmware
Updated with Xiaomi Q Kernel Source (Touch,Sound,PSU,WLAN,GPU,etc)
Silver cluster will now ramp all the way down to 300MHz for better idle drain
Removed some GPU latency
Underclocked GPU on idle to 170MHz (from 180MHz)
820MHz GPU frequncy step added between 710MHz & 835MHz
New Thermal Suspend API
FSync Control (ON/OFF)
DTS Eagle Software Driver
Bluetooth changes
Optimisations, Removed some bloat
Bluetooth Fixed
Wifi Speed Meter Fixed
Random Reboot Fixed
Blackscreen issue Fixed
SmartPack/Kernel Adiutor issue Fixed
Camera Fix for MIUI Q and ROMs with Q-Blobs (see separate build)
Updated AnyKernel3 changes (No Need to flash magisk after updating!)
Always upstreamed to latest! (4.9.210)
And many more under the hood changes...
Notes:
Thermal Suspend API : This is a small API I’ve written in the kernel directly (to make sure no background services are running for it) that unsets NGK thermals when screen turns off and enables them back when screen is turned back on. (This fixes some issues on some specific ROMs where screen wouldn’t turn on or phone would random reboot while device sleeps or is charging)
There is now a camera fix version to fix camera on ROMs with Q-Blobs like MIUI Q, so if your camera isn't working flash this one.
Kernel 1.1 Pie Edition:
NoGravity Kernel v1.1 now working on Pie ROMs
Using v1.0 Base
Notes:
This kernel uses v1.0 base so will work on both Android Pie and Q ROMs/Ports/MIUI
From now on releases will be separate in 2 builds: [9] and [10]. People on Android 10 should use [10] builds since it is rebased to Full Q CAF sources even tho [9] build would still work.
1.1 Build: Welcome to No Gravity Kernel App for Pocophone!
NoGravity Kernel App v3.1:
Pocophone F1 support added
Balance(Default),Performance,Battery & Gaming Profiles*
Precise CPU temperature for both Clusters separately
Kernel 1.1:
Rebased completely to full Q CAF (LineageOS Staging)
Removed CPU overclock*
Removed charging throttling*
Many Optimisations
F2FS updated with GC and changes
Debloated the Kernel
Westwood(Default) & BBR TCP Algorithms added
Using 2048kb read ahead
Fixed ZEN I/O Scheduler initialisation
Picked port of RCU's taken from 4.14
Updated SDFAT to EXFAT
Removed a CPU boosting driver that could conflict with another
Battery oriented tweaks
Tried to fix random reboots and other issues some people were getting
Always upstreamed to latest! (4.9.206)
And many more under the hood changes...
Notes:
Profiles also have a QSTile for fast switching
If you didn’t already know it was only placebo/performance wouldn’t change, but don’t worry there are other ways to make performance better
If you want charging throttling, you can set it back on here by setting the value to N instead of Y: sys/modules//sys/module/smb_lib/parameters/skip_thermal
MIUI ROM/Port variants may have some issues but I didn't have much testers on those so please send logs if you have issues
1.0 Build: Welcome to Android 10 & Pocophone!
Kernel:
Overclocked CPU (Silver 1.76->2.0Ghz, Gold 2.8-> 3.0Ghz) (Will boot with stock clocks)
Energy model modifications to fit NGK overclocked frequencies
GPU Overclocked to 835 MHz
GPU Underclocked to 180 MHz on idle
Using Evaluation Thermals (For now..)
NAP power saving state for Adreno 630 GPU
Added Adreno Idler
AdrenoBoost
Dynamic Stune Boost
Devfreq boost and Cpu Boosting drivers
Disabled ZRAM
Faster Applications Opening speed
Slimbus Overclock
Added Fingerprint boost
Added WakeBoost module
Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
Added Maple, SIO and FIOPS I/O Scheduler
Power Efficient Workqueues
Sound Control support
Maximum charge rate over USB 3.0
WireGuard Support
KCAL Support
K-Lapse 5.0 Support
Blocked wakelock (Boeffla & more)
Fingerprint improvements
Caches optimisations
Compilation optimisations
Novatek touch firmware from 10.3.7.0
Always upstreamed to latest! (4.9.201)
Using Anykernel3
And many more under the hood changes...
Useful stuffs
Clean flashing a kernel:
1. Boot into recovery
2. Wipe dalvik/art cache, cache, system and vendor(if recovery have this option)
3. Reboot into recovery (only needed on some recoveries)
4. Flash latest ROM zip
(Optional) Flash other zips like GApps, DFE, etc depending on ROM and your preference
5. Flash latest Magisk zip
6. Reboot into system (yes boot with stock kernel first)
7. Reboot into recovery
8. Flash latest NGK Kernel zip
9. Reboot and enjoy
Not to be confused with a ROM clean flash!
Do not wipe data or internal storage!
Encryption fix
For the ones who uses an encrypted device, those steps needs to be done to worl properly with NGK:
To those who are facing screen flicker/bootloop upon flashing NGK on an encrypted device.
1. Dirty flash your current ROM and boot into system.
2. change your password to whatever you want then click on "No" when it shows "Secure Start-up".
3. Boot into recovery then flash NGK. You will notice that it will not ask for a password even though you are encrypted.
Taking logs
Screen Freezes:
-Connect phone to PC
-Run following commands in terminal:
[*]adb shell
[*]dmesg
Random Reboots:
-When the random reboot occurs press the TWRP button combo to got straight into TWRP
-Send the pstore folder as a .zip file located in /sys/fs/
Any runtime kernel/app related crashes that doesnt make the device reboot or freeze:
-Use Matlog app on play store
-Start recording before the issue
-Stop recording after the issue
-Send the .zip file created
Charging:
Okay lets break it down for yall.
Every kernel on every device has WARM_TEMP and HOT_TEMP values which are usually always 45 and 50 respectively.
When device reaches 40-42C charging rate will decrease more and more until it reaches about 45C where device will stop charging even if its plugged in for safety reasons. Battery must not charge when they are this hot.
Battery thermal removal: this will prevent throttling before battery reaches about WARM_TEMP. Once battery reaches about 45C there is nothing in the world you can do. So yea battery thermal removal is still safe, just a matter of preference because if charging throttles before reaching 45C it will heat less then continue charging but if charging doesnt throttle yea it will charge charge faster under 45C but may heat more so you may hit 45C faster. So as in every other tweaks it depends on user.
As per my tests I would get about those but that may vary for you:
Battery temp (°C) - Charging rate (mA) tuples
46-1800
45-1800
44-2000
43-2600
42-2800
What else? oh yea here are some tips for you to lower temps (cause yes some of you charge while playing pubg..)
Tips for lowering temps:
-Turn off NGK thermals from NGK APP
Right you all need to understand thermals first.. A lot of users are just asking best thermals, best this, best that.. there is no universal bests..
Thermals will throttle performance depending on heat generated.. so yes there is a gain in performance when using NGK thermals because performance will throttle at higher temperatures. Why do I say it depends? Well someone living in a hot place and is getting high temps and throttling will use NGK thermals so he gets more performance for the same temperature point but there is always throttling else a phone would heat too much in the end and be really unsecure and all. That being said, if your device throttle with stock thermals then you go ngk thermals it will throttle at higher temps but in the end may still throttle and if you hit too high temps it will throttle even harder to keep temps low. For those people using normal thermals would be best since yea performance will throttle but it will prevent the phone from getting higher temps which could lead to more intense throttling. (Can also read about charging above you may want more aggressive thermals that will throttling performance to reduce heat so you can charge phone)
So next tip:
-Reduce Big cluster max frequency as this cluster is a hest generator
-Use another profile than Gaming! (Performance for me is best because its less aggressive, some people prefer balance for gaming)
All in all, try stuffs by yourself I think I did my part guiding you through all this, the best things you can do is the best things for yourself not necessarily the best for others.
Touchscreen Tests (NGK v1.5.5):
Spent a whole week with testers to just sit down and find the firmware to choose and then rebuild the drivers from the groud up.. but first here's an intro
Intro:
Small intro for everyone cause many people confuse many things..
-Panels: We have 3 main panels:
FTS, NVT REV1 & NVT REV2
-Touch firmware: comes in kernel and also in ROMs but kernel will flash its inbuilt firmware if the kernel firmware checksum is different to the one already present in ROM
-Touch Drivers: comes in kernel and those dont have numbers/versions its up to the kernel dev to make changes it those so stop asking for driver version no one can answer that precisely compared to firmware
Tests:
Alright now enough talking, the tests and results.
-Panels:
For FTS panels, using stock xiaomi drivers was fine no touch issues seem to happen since those went out.
For NVT panels, some had touch issues on rev1 and rev2 depending on firmware used while keeping xiaomi stock drivers so below tests were focusing on NVT mostly
-Firmware:
We tried 3 firmware and the ones who remained are 9.1.24 and 10.3.7 since other one gave issues
So I did incremental test builds modifying drivers for both firmware
-Drivers:
For drivers, as said before I reverted all changes to xiaomi stock drivers from their source. Some issues were present for some on both firmware version and different issues on both panel revisions (rev1 and rev2)
-Latency:
some issues was only related to latency and I knew latency was going to be better by optimizing the drivers later on
-Touch issues:
So based on that, I only took account of the issues present between firmware for each driver changes
Part 1:
Part 1 was updating novatech drivers from a CAF source that can be seen in my kernel source. So did that, compiled 2 versions again fixed some small issues here and there like firmware flashing wasnt working, touch didn't work at first and some bootup issues, anyway main thing is that novatech driver were updated a bit with less variable locking and such coding changes making the driver faster. Results after that were good it fixed some people's issues but latency wasnt perfect.
-Part2:
Now was time to optimize the drivers and did for both NVT and FTS (most of those optimizations were seen in previous ngk versions) but needed to add them again and add some more and see how they impact (cause not every optimizations means better results, some optimizations introduced issues)
Conclusion:
So in the end if TLDR
The conclusion was that issues were fixed after some driver changes as some optimizations made them worst, 9.1.24 firmware gave better touch (mostly under load or heat a.k.a for gamers) and didnt impact day to day users hence why NGK uses now 9.1.24 drivers.
BUT that is based on the fact that I reviewed the drivers from official xiaomi source, then updating them, then doing specific optimizations, other kernels may have different results or different ways of doing tests, thats just how I did it.
So yea for people who wont like touch, I will send this cause I did work on it to give better touch to most users and limiting the touch issues. I still dont think its possible to have perfect latency and perfect touch due to our phone but here's what has been done..
Great work as always, glad to see you here! NGK was one of the best kernels for OnePlus 2, I'm excited to see what NGK brings in for Poco. You deserve much more appreciation for your work, I am doing my bit. For whosoever appreciates his work, following is a crowdfunding link that we created for getting Pierre a Pocophone, as he does not own one. Just to be clear, he isn't involved with this anyway, we, the OnePlus 2 family has done this on our own will, as a token of appreciation of all the work he has done for the community.
https://bit.ly/34b406p
Congrats on the kernel.
Best kernel in the west is out for poco
can it be used in PIE ?
add some screen overclock pls
and also, can i use it to one plus rom? thank you
Hutabarat said:
can it be used in PIE ?
Click to expand...
Click to collapse
Yea can be used ! Thanks for giving it a go
lucyr03 said:
Best kernel in the west is out for poco
Click to expand...
Click to collapse
Hehe hell yea!
_undead said:
MOD EDIT: quote removed
Click to expand...
Click to collapse
Thanks to yall for it, its appreciated and makes me want to make the best kernel I can Cool stuff coming!
cloudzzz00 said:
add some screen overclock pls
and also, can i use it to one plus rom? thank you
Click to expand...
Click to collapse
Havent been tested on Oxygen OS port yet.. Let me know how it goes! I'm not really into screen overclocking unless you want your screen to be damaged in a year... :cyclops:
Nice Work
Will Post it in Poco Official Channel:highfive:
Thanks for the effort! Although it's weird that almost every kernel devs are saying that CPU OC is not possible/necessary in recent SoCs anymore.
Will the source code be available? Can you create a script to easily run the build process for the kernel so that we can mess around with it?
Congratulations bro
Flashed the kernel, but the no gravity app doesn't detect the kernel.
Edit- My bad, it says coming soon in OP.
Legend is now working on poco. So lucky to have you bro.
quick question, if i have drunk optimus installed, how do i change it to this kernel?
and how to update it?
thanks!
Awesome bro... keep it up..
---------- Post added at 10:11 PM ---------- Previous post was at 10:10 PM ----------
Gysenok said:
quick question, if i have drunk optimus installed, how do i change it to this kernel?
and how to update it?
thanks!
Click to expand...
Click to collapse
flash stock boot or dirty flash you rom. then NGK.
This kernel only for android 10?
youngAvJ said:
Awesome bro... keep it up..
---------- Post added at 10:11 PM ---------- Previous post was at 10:10 PM ----------
flash stock boot or dirty flash you rom. then NGK.
Click to expand...
Click to collapse
how to dirty flash? and what is ngk? and how to update?