K-Lapse : A kernel-level livedisplay module - Android Software/Hacking General [Developers Only]

KLapse - A kernel level livedisplay module​
Intro - What is K-Lapse?
Kernel-based Lapse ("K-Lapse") is a linear RGB scaling module that 'shifts' RGB based on time (of the day/selected by the user), or (since v2.0) brightness. This concept is inspired by LineageOS (formerly known as 'CyanogenMod') ROM's feature "Livedisplay" which also changes the display settings (RGB, hue, temperature, etc) based on time.
Why did I decide to make this? (A short story)
I (personally) am a big fan of the Livedisplay feature found on LineageOS ROM. I used it every single day, since Android Lollipop. Starting from Android Nougat, a native night mode solution was added to AOSP and it felt like Livedisplay was still way superior, thanks to its various options (you could say it spoiled me, sure). I also maintained a kernel (Venom kernel) for the device I was using at that time. It was all good until the OEM dropped support for the device at Android M, and XDA being XDA, was already working on N ROMs. The issue was, these ROMs weren't LineageOS or based on it, so Livedisplay was... gone. I decided I'll try to bring that feature to every other ROM. How would I do that? Of course! The kernel! It worked on every single ROM, it was the key! I started to work on it ASAP and here it is, up on GitHub, licensed under GPL (check klapse.c), open to everyone
How does it work?
Think of it like a fancy night mode, but not really. Klapse is dependent on an RGB interface (like Gamma on MTK and KCAL on SD chipsets). In mode 1, it fetches time from the kernel, converts it to local time, and selects and RGB set based on the time. The result is really smooth shifting of RGB over time. Mode 2 uses the current brightness level to scale RGB, with the concept behind it being that lower brightness usually implies a dark environment, so a slight color temperature shift should help with eye strain.
How does it really work (dev)?
Klapse mode 1 (time-based scaling) uses a method void klapse_pulse(unsigned long data) that should ideally be called every minute. This is done using a kernel timer, that is asynchronous so it should be handled with care, which I did. The pulse function fetches the current time and makes calculations based on the current hour and the values of the tunables listed down below.
Klapse mode 2 (brightness-based scaling) uses a method void set_rgb_slider(<type> bl_lvl) where type is the data type of the brightness level used in your kernel source. (OnePlus 6 uses u32 data type for bl_lvl) set_rgb_slider needs to be called/injected inside a function that sets brightness for your device. (OnePlus 6 uses dsi_panel.c for that, check out the diff for that file in op6 branch)
What all stuff can it do?
Emulate night mode with the proper RGB settings
Smoothly scale from one set of RGB to another set of RGB in integral intervals over time.
Reduce perceived brightness using brightness_factor by reducing the amount of color on screen. Allows lower apparent brightness than system permits.
Scale RGB based on brightness of display (low brightness usually implies a dark environment, where yellowness is probably useful).
Automate the perceived brightness independent of whether klapse is enabled, using its own set of start and stop hours.
Theoretically more efficient, faster by residing inside the kernel instead of having to use the HWC HAL like android's night mode. This is unproven and probably has no practical significance.
(On older devices) Reduce stuttering or frame lags caused by native night mode.
An easier solution against overlay-based apps that run as service in userspace/Android and sometimes block apps asking for permissions.
Give you a Livedisplay alternative if it doesn't work in your ROM.
Impress your crush so you can get a date (Hey, don't forget to credit me if it works).
Alright, so this is a replacement for night mode?
NO! Not at all. One can say this is merely an alternative for LineageOS' Livedisplay, but inside a kernel. Night mode is a sub-function of both Livedisplay and KLapse. Most comparisons here were made with night mode because that's what an average user uses, and will relate to the most. There is absolutely no reason for your Android kernel to not have KLapse. Go ahead and add it or ask your kernel maintainer to. It's super-easy!
What can it NOT do (yet)?
Calculate scaling to the level of minutes, like "Start from 5:37pm till 7:19am". --TODO
Make coffee for you.
Fly you to the moon.
Get you a monthly subscription of free food, cereal and milk included.
I want more! Tell me what can I customize!
All these following tunables are found in their respective files in /sys/klapse/
Code:
1. enable_klapse : A switch to enable or disable klapse. Values : 0 = off, 1 = on (since v2.0, 2 = brightness-dependent mode)
2. klapse_start_hour : The hour at which klapse should start scaling the RGB values from daytime to target (see next points). Values : 0-23
3. klapse_stop_hour : The hour by which klapse should scale back the RGB values from target to daytime (see next points). Values : 0-23
4. daytime_r,g,b : The RGB set that must be used for all the time outside of start and stop hour range.
5. target_r,g,b : The RGB set that must be scaled towards for all the time inside of start and stop hour range.
6. klapse_scaling_rate : Controls how soon the RGB reaches from daytime to target inside of start and stop hour range. Once target is reached, it remains constant till fadeback_minutes (#13) before stop hour, where target RGB scales back to daytime RGB. (Pre-v4.2 value was a factor, now it is a minute value)
7. brightness_factor : From the name itself, this value has the ability to bend perception and make your display appear as if it is at a lesser brightness level than it actually is at. It works by reducing the RGB values by the same factor. Values : 2-10, (10 means accurate brightness, 5 means 50% of current brightness, you get it)
8. brightness_factor_auto : A switch that allows you to automatically set the brightness factor in a set time range. Value : 0 = off, 1 = on
9. brightness_factor_auto_start_hour : The hour at which brightness_factor should be applied. Works only if #8 is 1. Values : 0-23
10. brightness_factor_auto_stop_hour : The hour at which brightness_factor should be reverted to 10. Works only if #8 is 1. Values : 0-23
11. backlight_range : The brightness range within which klapse should scale from daytime to target_rgb. Works only if #1 is 2. Values : MIN_BRIGHTNESS-MAX_BRIGHTNESS
12. pulse_freq : The amount of milliseconds after which klapse_pulse is called. A more developer-targeted tunable. Only works when one or both of #1 and #8 are 1. Values : 1000-600000 (Represents 1sec to 10 minutes)
13. fadeback_minutes : The number of minutes before klapse_stop_hour when RGB should start going back to daytime_rgb. Only works when #1 is 1. Values : 0-minutes between #2 and #3
Impact on performance or battery...
Fortunately, as per practical testing there is absolutely no negative effect on performance or battery backup!
"I'm a kernel maintainer. How do I add it to my source?"
The klapse.c file is pretty much generic, but depending on your device you may need to change some of the #define values
The klapse.h file should be edited in order to make the K_RED etc. defines point to the correct RGB interface variable. OnePlus 6 simply uses kcal_red, kcal_green and kcal_blue in sde. Some devices have a struct or pointers instead of a variable. Those devices must edit their kcal files to keep a copy of the address that klapse will access. An example of a source with struct-based kcal with klapse support is this: commit (thanks to @rupanshji for this commit)
The KCONFIG is pretty understandable too, but you may wanna remove the "DEPENDS" line for your device.
The Makefile is just one line, and so is enabling klapse in the defconfig.
Now you must change the file that provides the kcal/gamma (mtk) interface. Thanks to other developers, all I had to do on the OnePlus 6 was to remove the keyword "static" from the variable declaration.
Great work! Can I pay for your next meal?
I'm just a university CS student so sure, any amount is much appreciated! You can donate via paypal here :
Donate
XDA:DevDB Information
KLapse, Kernel for all devices (see above for details)
Contributors
tanish2k09
Source Code: https://github.com/tanish2k09/KLapse-Livedisplay
Kernel Special Features: RGB shifting based on a context
Version Information
Status: Stable
Current Stable Version: 4.3
Stable Release Date: 2019-03-02
Created 2019-03-04
Last Updated 2019-03-03

Hi, thanks for bring this KLapse. Actually i heard about this on other kernel (i forgot which one) thread, someone asking about have KLapse support and my favorite kernel also have support this kernel.
Great work, keep it up, all the best.
Anyone can share best settings KLapse? ?

duplicate thread closed
please follow this one https://forum.xda-developers.com/an...apse-kernel-level-livedisplay-module-t3907031

Related

[KERNEL][3.0.31][HDMI][FULL HD][GUIDE 1.8]JBX-Kernel Hybrid [1,5ghz]

/// JellyBeanX-kernel ///​
DISCLAIMER
Me, XDA-Developers.com and anyone else doesn't take any repsonsibilty for damages on your device!
Rooting your device will void your warranty!
Don't play with settings you aren't familiar with, you could burn your device!!
Click to expand...
Click to collapse
READ THIS: I added almost all important topics which have been discussed around the kernel thread to the OP and wrote this FAQ just that you guys don't have to browse through 100+ pages of the thread. READ BEFORE YOU ASK and HELP TO KEEP THIS THREAD MORE CLEAN! BUT ALSO BETTER ASK ONCE MORE BEFORE YOU MESS UP YOUR PHONE! If you find something missing in this OP/FAQ, please PM me and I will add it. Thank you!
You can find the FAQ at the bottom of this post!
This is a direct port of my RAZR-JBX-Kernel Hybrid for Motorola Razr!
This kernel is built of the Kexec Project which was initiated first by Kholk & [mbm] and finished by the STS-Dev-Team (Hashcode, Dhacker). Using this kernel will provide addtional features to your ATRIX 2.
LATEST CHANGES (for latest release and NIGHTLIES)
--> DETAILED CHANGELOG JBX-kernel Hybrid <--
Kernel Guide by Placca 1.8!!
Check the FAQ section at the bottom of this post to download it! It will make many things easier for you and help you to understand the kernel and its features!
FEATURES
JBX-Kernel Hybrid
Battery Friend toggle (a battery friendly mode)
Intelli-Plug (Kernel side replacement for msm MPDecisions) by Faux123 + patches by me (no hotplugging when screen is ON)
Dynamic Hotplug: Second core will be turned off ONLY while screen is off - independent from selected governor. (Not needed when using Intelli-Plug)
Optimized OPP Table for smooth CPU scaling
Frequencies: 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300
Modifed Smartreflex driver (Custom Sensor for detecting n-Value).
Smartreflex Tuning Interface: Set min/max calibrated voltage
Overclocking using Live OC (mine runs stable at a maximum frequency of 1,498ghz!)
hwmod, uart, IRQs - cleanups from pre-kexec config to safe power
CPU: lower voltages for CORE and IVA. Give CORE the abbility to scale up to higher voltage if needed
Added IVA_NITROSB
Dynamic fsync control: FSYNC interval is dynamic depending on screen state (SCREEN OFF: synchronous, SCREEN ON: asynchronous)
HTC's Asynchronous Fsync port - read explanation below*
Dynamic page-writeback: Page writeback interval is dynamic depending on screen state.
Frandom v2
JRCU / Tiny RCU (currently JRCU in use)
Raised voltage limits for mpu a bit
Raised the temperature limits from 64c* to 74c* (degrees)
optimized CRC32 algorithm (better code generation)
RW Readahead dynamically depending on storage device (automatic detection of the best value)
zRAM support
GPU has 4 scaling steps and OC to 384mhz (Base freq: 102 mhz --> 154 mhz, 307 mhz, 384 mhz)
GPU C4 states / GPU Control (Governors, Frequencies)
Multicore Power Saving Mode Control
ARCH Dependant Power feature
Gamma Control
Front Buffer Delay Control (draw in x msecs on early suspend)
Screen/Display: Modified OMAPDSS for sharpness and lightning colors
OMAPDSS: Added variable clock rate and OPP - allows the screen to scale down power and voltage
lowmemkiller: Heavy modified for R/W Speed and efficient performance
ZCACHE, ZSMALLOC, XVMALLOC backported from 3.4, 3.7 and 3.10 (ZCACHE currently not in use)
Custom Voltage Support
IO-Schedulers: SIOPlus, Fifo, Row, VR, Noop, Deadline, CFQ, BFQ
ROW Scheduler is heavily tweaked to be the fastest scheduler ever!
CPU: More Governors
Deep Idle
ARM Topology
Many improvements in overall OMAP PM
SELinux permissive
GREAT performance!
battery life!
Support for Trickster Mod Kernel Control App (Download from Gplay)
*]Too much stuff to list here. See "Sources" below and check my Github
* HTC's Asynchronous Fsync and Dynamic Fsync:
Asynchronous fsync (called "afsync" or "async fsync") from HTC is ported into this kernel. By default it's enabled and dynamic fsync is disabled (and as well it isn't needed anymore).
The dynamic fsync toggle in Trickster Mod is now serving both functions - the dynamic fsync AND the asynchronous fsync! How? By default Dynamic Fsync is disabled, and Afsync is enabled. If you now enable Dynamic fsync using the toggle, Afsync will be automatically disabled, so both functions are not conflicting each other - and this way we have a working toggle for both of them.
CAUTION
This is a work in progress! Some of the current features are still not in final stat. If you are facing issues report back here and DON'T spam the threads of the rom you're using!
Be careful with some settings such like Voltage and Overclocking!!! If you aren't experienced with these things, dont play with 'em!
Click to expand...
Click to collapse
REQUIREMENTS
Rooted device
Must use a Kexec Rom (CM, AOKP, AOSP)
Recovery (BMM, SS)
REMOVE any kernel modules you used before
DEACTIVATE ANY CPU tweaks, onboot settings etc otherwise your phone may not boot!
CAUTION: The kernel needs a clean setup related to CPU tweaks / Settings, etc...Keep your device as clean as possible regarding to Tweaks, CPU special settings, etc. The Kernel brings its own CPU settings and after you can boot it succesfully, you can set it like you want!
Some roms may use CPU tweaks. This can cause issues like reboots and freezes. Check the init.d folder for any CPU related stuff and Kernel modules - then remove it. E.g. Remove any scripts which include "insmod" commands.
The best setting is to have stock CPU settings set
This kernel may not work on all roms! Check and report.
TO DO LIST
- Fix bugs
- Fix compile warnings
- More features.
INSTRUCTIONS
NOTE: CLICK here for a detailled Installation Guide (about the Aroma Installer, the features to select and more)
Download zip file from below
Reboot into recovery
Flash the kernel (BMM users: DON'T use the "Flash Kernel" Option! This is a usual zip file!)
Reboot
Download Trickster Mod App from Gplay! Read the FAQ to learn about playing with kernel features!
Enjoy!
EMERGENCY RESTORE
If you have tried a Nightly build and you phone is acting crazy, you can follow these steps:
Check the thread or ask for the latest stable kernel build
NO WIPES!
Flash the Rom (Yes, again! That one you're currently using.)
Flash Gapps
Flash Kernel
Reboot
DOWNLOAD
JBX-Kernel 3.0.8 Versions:
0.8.x ==> Android 4.2.2
1.x == > Android 4.3
2.x == > Android 4.4
JBX-Kernel 3.0.31 Versions:
3.x == > Android 4.4
TEST BUILDs
Test builds are potential prerelease builds which need some more testing before pushing to all users.
CAUTION: Should be stable mostly! But use at your own risk though!!
---> TEST BUILDS [CF] <---
XPERIMENTAL BUILDs
These builds include features without promises to work.
CAUTION: There is no promise that these version are stable/working/whatever! Use at your own risk!!
---> XPERIMENTAL Builds [Dev-Host] <---
---> XPERIMENTAL Builds [CF] <---
Click to expand...
Click to collapse
Something went wrong?
If you think you have set wrong "on-boot-values" in Trickster Mod flash this:
TRICKSTER RESET: http://dtrailer.de/kernel/trickster_reset.zip
FAQ
CAUTION: This FAQ and the whole OP, additional informations about Governors, IO Schedulers and detailed informations about the usage of Trickster Mod and this kernel can be viewed in the awesome Kernel Guide by Placca!
Kernel Guide 1.8
PDF: http://www.mediafire.com/download/7zaddcmvtxfk9ry/JBX+Kernel+Guide_v1.8.pdf
CHM: http://www.mediafire.com/download/g3ck1bf1k3a3j38/JBX+Kernel+Guide_v1.8.chm
CLICK HERE TO OPEN THE FAQ
Please check the following points if you don't know how to use the features of the kernel or you are facing any kind of issues.
INDEX
1. Kernel Features
1.1 Smartreflex (Turn ON/OFF, adjust min/max range)
1.2 Live OC (Realtime Overclocking)
1.3 Custom Voltage (EMIF)
1.4 GPU Overclock
1.5 Gamma Control
1.6 Battery Friend
1.8 IVA Overclock
1.9 DPLL Cascading (Currently not in use)
1.10 HDMI toggle
1.11 Intelli-Plug
2. Issues
1.1 How can I change the smartreflex minimum/maximum voltage
What is Smartreflex?
SR is compareable with an CPU governor but not for scaling frequencies but for voltages. That means SR has a fixed range of voltage (min/max) and calculates the optimal voltage for each CPU frequency. In example on light use of the CPU it scales down to lower voltage - on heavy use it can sclae to higher voltage. This is an efficient system to save power! Compared to EMIF which uses the hardcoded voltages it saves more power because it's variable. EMIF cannot vary between the values.
This interface has a hardcoded range of 830mV min to 1450mV max. Usually there is no need to adjust these values but irt can be usefull in example when using high overclocked frequencies above 1,5ghz! Usually SR cannot handle frequencies above 1,5ghz and I have hardcoded the maximum range of 1,45mV which should allow SR to handle it. In prior times the users had to turn off SR when OCing above 1,5ghz which causes the CPU to eat more power. But you can try around and report your results.
CAUTION: Don't raise the maximum SR voltage too high! It can burn your board = no phone anymore! I recommend to not use higher values than 1490mV! As already mentioned: THe default value should be enough!
ANd also: USUALLY THERE IS NO NEED TO CHANGE ANYTHING ON SR! IF YOU DON'T KNOW WHAT YOU'RE DOING, PLEASE LEAVE IT ALONE!
Ok, now let's see how to do this:
Turn ON/OFF SR
1. Open Trickster Mod
2. Head to the "Specific section"
3. Scroll down to "Smartreflex"
4. You can toggle ON/OFF SR for each component (IVA, CORE, MPU)
Usually I recommend to keep SR ON because it saves power! But in some cases when overclocking the CPU (MPU) the device could freeze - whether you OCed too much or SR couldn't handle the frequency! In this case you can try to raise the vmax value of SR a little bit (CAREFULLY!) and try again. If it sitll freezes and you're sure that you didn't OC too much, turn SR OFF at least for MPU!
Maximum Voltage
Currently there is no app which supports the feature of adjusting the SR vmax value, because I wrote this feature some days ago.
But in the next Trickster Mod version this option will be supported!
example:
# To read the current vmax value. Replace XXX with one of the following:
sc_core - for core max sr voltage
sr_iva - for iva max sr voltage
sr_mpu - for mpu max sr voltage (mpu is most related for CPU scaling)
cat /sys/kernel/debug/smartreflex/XXX/vmax
# You will get an output, e.g. for mpu = 1450000 (1450mV)
# To set a new value, do the following command (replace XXX with a value like above - BE CAREFUL! USUALLY THE DEFAULT VALUE ENOUGH AND YOU CAN LEAVE IT UNTOUCHED!)
echo XXX > /sys/kernel/debug/smartreflex/XXX/vmax
Minimum Voltage
It's easy because Trickster Mod supports it!
1. Open Trickster Mod
2. Head to the "Specific section"
3. Scroll down to "Smartreflex"
4. Below each SR component (IVA, CORE, MPU) there is displayed a value (usually 830 default) which means this is the lowest scalable voltage for this component. You can try to decrease this value for the case you want to UV a bit more - or raise it a bit for the case you think that the set range is too low and causes freezes on your device.
1.2 How do I use Live OC (Live OVerclock)?
This feature allows you to overclock the CPU in realtime. It works with a multiplier value set by the user. The default multplier value is "100", which means: No OC! If you want to raise the OC frerquency, just raise this value step by step.
FOr my device the maximum working OC value is "111" which means the maximum frequency is running at 1498mhz!
NOTE: Keep in mind that you tunr Smartreflex OFF for higher freqs than 1500mhz - or raise the maximum SR voltage range for "MPU" a little bit and test if it works.
Ok, how to use Live oC in action:
Open Trickster Mod App and swipe to the tab "Specific". There you will find something like this:
Code:
MPU OC [100]
DON'T TOUCH THE "CORE OC" SECTION, IT WILL CAUSE FREEZES!
Now slowly increase the value "100" to something higher, e.g. "105". Tap the hook in the right upper corner to confirm. To see your new set of frequencies you can now whether close and restart Trickster Mod or just use any monitoring app like Cool Tool which will show your frequencies in real time. That's it!
CAUTION: You can damage your phone forever!!!! This feature allows you to set very high frequencies (also up to 2,0ghz...) - That DOESN'T mean that your phone can run these frequencies!
If your phone freezes or crashes you have probably set too high OC - or your voltage is too low.
1.3 How do I use Custom Voltage (EMIF)?
NOTE: This only adjusts the fixed voltage! When you have Smartreflex ON it can still vary! You have to see the bigger picture: This voltage value sets the "middle point" for voltages. Smartreflex is still able to increase or decrease the voltage. When Smartreflex is OFF the CPU will stay on this voltage you set here and probably eats also more power.
How does EMIF works together with Smartreflex:
Code:
-------
| CPU |
-------
|
------------------ ------------------
|Voltage 1015 mV | ---->| SMARTREFLEX ON| = 1015mV +/- "vmax"/"vmin"
------------------ -------------------
|
--------------------
|SMARTREFLEX OFF| ----> 1015mV FIXED! No changes!
-------------------
Thi smeans if you change the voltage for a scaling step (OPP) while SR is ON, SR will adjust the voltage from this value, means: mV-Value +/- SR vmin/vmax. WHen SR is OFF it will stay on this mV as a fixed value.
How to adjust the voltage?
Well, this feature can be used with all generic apps which are supporting voltage settings. But we are prepared well, you can adjust voltages also with the "Trickster Mod App".
When you open the app, head to the tab "Specific" and below the "Live OC Section" you will find your voltage table, which looks like this:
Code:
<-->
1200 [1398]
1000 [1388]
900 [1371]
...
..
..
Now just tap the arrows in the right upper above the first voltage value and just type or tap (per direction) a value, e.g. "-25". To apply it, confirm by tapping the hook in the right upper corner of your screen. That's it, your new voltage values are now set and applied. And also mind here: If your phone freezes you porbably have set it too low.
CAUTION: NEVER SET HIGHER VOLTAGE THAN 1490mv here!!!!! Or you might damage your phone FOREVER!
This voltage is not the same like Smartreflex! But it's still voltage! Just be carefull!!
1.4 How can I use GPU OC and GPU Governor?
GPU Overclock doesn't work like Live OC! You cannot really set custom frequencies for the GPU, but you can select and set the maximum frequency from a hardcoded range!
For the GPU there are the following available frequencies:
154mhz (FIXED!)
307mhz
384mhz
416mhz
The minimum frequency of 154 is FIXED! This means you cannot change it because the GPU needs a minimum speed to run with. But the kernel allows you to select the maximum speed. This can be usefull for playing games and also for saving power . In example when not playing games you don't need the GPU to run at 416mhz! Set it to 307mhz in this case and save power.
When you open Trcikster Mod and head to the "specific section tab", you will find "GPU MAX FREQUENCY" and it's currently set maximum frequency. Tap on it to select your preferred one:
- 154 Mhz
- 307 MHz
- 384 MHz
That's it. The new setting will be your new maximum GPU frequency.
Below there's another option called "GPU Governor". Just tap on it and select your prefered one.
NOTE: If you want to track current GPU frequencies and watch governor's behavior, just switch to Trickster's "Informations" - Tab and watch the frequencies clock.
1.5 How can I use Gamma Control?
What is gamma? The gamma setting sets the color range for the screen. You can compare it to the contrast. We all know that the touchscreen eats most of the power compaerd to all other components in a smartphone! A lower brightness causes less power consumption and a lower gamma or contrast range alos helps a little bit to save power.
In this kernel you can choose from a range of "5 - 10" while "5" is very bright while "10" is very dark. The default setting is "5" BUT CAUTION: Trickster Mod will display a range of "0" to "10" and the default setting will be shown as "0". This is caused by the fact that this feature was ported from the Gnex device where you can choose from a higher range. The only sideeffect is that the values "0" - "5" won't show any difference.
How to set the gamma value?
Well, once again open Trickster Mod and swipe to the tab on the right end. Just select your preferred value by using the slider.
Alternately you can use sysfs by terminal or adb:
OMAP Gamma interface:
echo i > /sys/devices/platform/omapdss/manager0/gamma
Replace i with 0-10 of your choice.
1.6 What is "Battery Friend and how to use it?
Battery Friend is a simple toggle (ON/OFF) which sets your device into a battery friendly mode without the need to play with all settings in Trickster Mod /sysfs until you find a good setting. In fact it does the job for you.
What does it affect?
NOTE: Doesn't lock anyx frequencies anymore!
locks dynamic Fsync enabled
locks Fsync disabled
Doesn't allow any OC (Live OC will not have any effect, Core OC is not allowed in this kernel)
Increases the dirty ratio interval to 90% (starts working at this value)
Enables Dynamic Hotplug: This doesn't allow hotplugging during device is active - and it will always turn CPU1 OFF during suspend! It also prevents from conflicts when user uses a hotplug governor (which isn't a good idea though) - but hotplug governors are causing higher battery drain!
Dynamic Page-writeback always enabled
How to toggle Battery Friend:
For now the only way is via terminal, adb shell or root explorer (text editor)
For terminal and adb:
Code:
echo 1 > sys/kernel/battery_friend/battery_friend_active /* Enable */
echo 0 > sys/kernel/battery_friend/battery_friend_active /* Disable */
For Root Explorer
Open Root Explorer
Navigate to sys/kernel/battery_friend/
Open "battery_friend_active" with Text Editor
Change "0" to "1" and safe the file to enable
Change "1" to "0" and safe the file to disable
1.7 Suspend Governor Control (CURRENTLY DISABLED)
Suspend Governor Control is a kernel module written by me. You can use it to set your preferred Screen-Off-governor.
For now it's only supported by sysfs (Trickster Mod will support all my current and upcoming features as soon as it gets updated with its new UI mode!
How to set suspend governor
Open a terminal or use adb shell
Code:
su
echo "x" > /sys/kernel/suspend_gov/suspend_gov
Replace x with one of these values:
0 = Ondemand
1 = Ktoonservative
2 = Conservative
3 = OndemandX
NOTE: No matter what governor you use for suspend mode, if Battery Friend is enabled the second core will be turned off during suspend!
1.8 IVA Overclock
What is IVA OC?
IVA OPPs are controlling the CPU load for sound events. It could be useful (in some cases) when you get sound related laggs. Just set the maximum frequency to highspeed. This will allow more CPU power for sound events but also will cause higher battery consumption.
How to use IVA OC?
If you want to check the current IVA frequency. Just type in Terminal or ADB:
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/iva_clock
You will get an output like this:
Code:
132 Mhz
2. You can whether enable IVA highspeed: 130 - 430 Mhz ["1"] or enable IVA normal speed: 130 - 332 Mhz ["0"]
320 Mhz max: echo "0" > sys/devices/system/cpu/cpu0/cpufreq/iva_freq_oc
430 Mhz max: echo "1" > sys/devices/system/cpu/cpu0/cpufreq/iva_freq_oc
1.9 DPLL Cascading
DPLL: Davis–Putnam–Logemann–Loveland (DPLL) algorithm
To get more info about this please see wiki
But to sum it up shortly: It helps to use/stream media (music) in a low power mode.
NOTE: DPLL Cascading will be available to be switched easily via Trickster Mod App soon!
How to switch DPLL?
DPLL is ENABLED by default!
Open Trickster Mod -> Speicific Tab --> DPLL (soon)
sysfs:
Turn off:
Code:
echo 0 > /sys/kernel/dpll/dpll_active
Turn on:
Code:
echo 1 > /sys/kernel/dpll/dpll_active
1.10 HDMI toggle
Some users are facing a RAZR-sepcific problem: HDMI cable is detected, even though there is no cable plugged!
Therefor I included a toggle to switch HDMI wether ON or OFF. Additinally there's an init.d script included within the AROMA Installer you can select during the installation of JBX-Kernel.
To enable/disable HDMI on-the-fy:
sysfs:
Turn off:
Code:
echo 0 > /sys/kernel/hdmi/hdmi_active
Turn on:
Code:
echo 1 > /sys/kernel/hdmi/hdmi_active
1.11 Intelli-Plug
For intelli-plug hotplugging is now only allowed when the device enters sleep.
To enable hotplugging universally just change the value of the following entry whether to 1 (on) or 0 (off):
Code:
sys/module/intelli-plug/parameters/int_hotplug
*Unfortunately I don't have enough space in the OP to write all this into the FAQ, that's why the I only added the sysfs path, but the description is simply here
2. If anyone has the following issues:
Issue
Media Process FC
No SD-Card in File Explorer
My CPU Settings (frequencies, etc) won't be saved (it sets itself back to Kernel default after screen off)
My phone freezes/reboots always when I try to set options in Trickster Mod
The device is lagging very hard
Solution
Media FC: Open App settings, head to "Download Manager" and "Media Storage" and hit the "delete data" button. Reboot. Now it shouldn't give any FCs anymore and after a little bit of waiting it will find all Media (Pictures, Videos, etc..)
No SD-Card: Reboot into recovery, go to "Mounts & Storage", tick "mount int" or "mount ext".
USB: Make sure the screen is ON while plugging the cable in.
CPU Settings: This is a bug which cannot be solved at the moment. Temporary solution: In Trickster Mod just activate the "Frequency Lock" and your settings will persist.
Trickster Mod:: Open App settings, Trickster Mod and select "uninstal updates". Now it should work.
Crashes, Freezes, lagging, something doesn't work, etc
There are too many reasons which could cause crashes! So here is a checklist for you to look for. Check each point and try the following workaround:
- Your rom has CPU tweaks (e.g. Kernel modules, init.d folder, etc)
- You have set custom CPU settings (e.g. custom frequencies with apps like No-Frills CPU Control, Set-CPU, Antutu, etc...)
- You have undervolted too low
- You have overclocked too high
- You have applied higher "Core OC" value in Trickster Mod App
- You are running any other kernel tweaks which are regarding to the CPU and/or performance (e.g. Kernel modules by Whirleyes eventually set by init.d, etc..)
- After setting some settings (e.g. in Trickster Mod) your device doesn't boot anymore
- adb doesn't work / shows only "device offline"
- You are facing hard lagging
If any point here matches your setting, please revert from it:
- Remove any CPU init.d script from /System/etc/init.d
- Uninstall any CPU controling app (e.g. Set-CPU, No-Frills, etc..)
- Remove all extra kernel modules from system/lib/modules (e.g. cpu_control.ko, cpufreq_smartass2.ko, etc..)
- Unset any custom settings from any other kernel / CPU - tweaking app which is NOT Trickster Mod
- Maybe your governor causes issues. Hotplug is know for bugs at the moment...I'm going to fix it..
- NEVER set your CPU Settings (e.g. in Trickster Mod App) on boot!!!! - before you aren't sure that your settings are safe!!!
- You may flash the kernel again after reverting related settings
- to make adb work / show device online, download latest SDK platform-tools and confirm access on device (4.2 security feature of Android)
- Don't use any task killers, memory killers, seeder apps! They may conflict with the kernel/Rom settings.
If none of these suggestions work for you your rom may be incompatible. Please report it here that I can add the rom to the list of imcompatible roms
If you have any issue, please read this:
First check:
- is it really a kernel issue?
- did I see this bug with the roms original kernel?
- what are the people in the rom thread saying?
- what are the people in the kernel thread saying?
- can I find this issue on a bug list?
- how about my settings? Is it my fault it crashed?
- can I find something useful in the kernel FAQ?
- Is it maybe a well known issue and can be solved
withing seconds? Just like wifical.sh?
- Where to repeat that issue? Rom or kernel?
I know it's sometimes difficult to track the issues, and we can't know for sure if it's caused by the rom or by the kernel, but if you try at least to get some information you might find an answer sometimes. If you are able to understand logs, you may report whatever you find.
All this helps to keep the threads more clear. Thank you.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
DONATE
If you like my work and want to support me, I'd enjoy a little beer or coffee. You can find my beer mug below my username
SOURCE
3.0.8 Base:
JBX-Kernel 4.2.2
JBX-Kernel 4.3
CREDITS
Kholk & [mbm] - Kexec inital Release
Hashcode & Dhacker - Making Kexec stable and initiating compatible kernels
Motorola - 3.0.8 Kernel Source
Surdu_Petru - Sharing Knowledge and helping with problems
nithubhaskar - Hints and answering my questions
Ezekeel, Imoseyon - Custom Voltage, Live OC, Temp Control, Gamma Control Source Code
faux123 - Some features, like Intelli-Plug, Intellidemand, Intelliactive
bigeyes0x0 - Trickster Mod App
Team Trickster - Great support and adding new features from my suggestions
Placca - Awesome kernel guide
Click to expand...
Click to collapse
3.0.8 / 3.0.31
There is the classic JBX 3.0.8 Kernel (a hybrid of 3.0.8, 3.0.21, 3.4, 3.7, 3.8, 3.10, 3.11, mostly backports from these versions)
And now there is also JBX 3.0.31 (also a hybrdig including the above backports, but also from 3.0.101)
I won't list the whole version history, too long
3.0.31 first TEST-BUILD now coming!
- also reserved -
And it arrives...
Many thanks man...
Really appreciate you doing this...
---------------------------------------------------
May the -Mass times Acceleration-be with You...
I need the internal storage mount points from someone with stock kernel, please. I saw something about mmcblk0 - int ? Please anyone check the /mnt partitions and tell where the internal and external sdcards are mounted. thx
Edit: nevermind, I didn't know this device doesn't include an internal storage. Now I need to know if USB mount works on Devesh's Rom ports.
Used Stock ICS Based ROM on System 1 with BMM , and Mobile Terminal .
hope its ok .
Wow !
I see some awesomeness coming to our A2s *Respect*
All is set up. Everything works, so I will now build the first test kernel for you guys.
First test kernel in NIGHTLIES folder. Please test and report. Keep in mind that you have to be on one of Devesh's Rom Ports!
Edit: Sorry, forgot something! Please wait 5 mins...
Edit: Done!
Dirty flashed, liquid smooth slot 6 oc1350 running good.
MB865/ATT/BMM
1. Stock 4.0.4
2. Miui 4.0.4
3. Pac man 4.2.2 (6/3)nonkexec
4. Mt
5. MT
6. Cm 10.1 4.2.2 (6/7)kexec
Can I get a wohooo for the A2
JB leak?
Sorry for asking dummy question. Can i flash it on the JB leak because we still need JB leak for installing kexec room right? So if I want to try what possibly would happen?
dtrail1 said:
First test kernel in NIGHTLIES folder. Please test and report. Keep in mind that you have to be on one of Devesh's Rom Ports!
Edit: Sorry, forgot something! Please wait 5 mins...
Edit: Done!
Click to expand...
Click to collapse
Man! You really are damn energetic and enthusiastic, aren't you? Really glad to have you around.. Thanks again.. :thumbup:
Sent from my MB865 using Tapatalk 2
amynjimmy said:
Dirty flashed, liquid smooth slot 6 oc1350 running good.
MB865/ATT/BMM
1. Stock 4.0.4
2. Miui 4.0.4
3. Pac man 4.2.2 (6/3)nonkexec
4. Mt
5. MT
6. Cm 10.1 4.2.2 (6/7)kexec
Can I get a wohooo for the A2
Click to expand...
Click to collapse
How did you OC ? i just can't get the phone to Overclock properly with this trickster app ..
afeeq said:
Sorry for asking dummy question. Can i flash it on the JB leak because we still need JB leak for installing kexec room right? So if I want to try what possibly would happen?
Click to expand...
Click to collapse
You cannot. It needs a kexec Rom. So flash it first
M.o.t.o.r.o.l.a.R.a.z.r - JBX-Kernel 0.6 - Tapatalk4
New nightly online with fixed CPU and live oc! @Brantuck84
Edit: sorry, wrong thread!
But ne nighty comes here too in 5 mins
M.o.t.o.r.o.l.a.R.a.z.r - JBX-Kernel 0.6 - Tapatalk4
So with the current version there is a bug with OC ? ( i don't see TEST2 for Atrix like with the Razr version).
Yes, device starts lagging when OC too high (over oc value of ~107). But new release comes with fixes - OC up to 1,5ghz possible without any problems (Mine crashes when OC higher than 1,498mhz, each silicon is different).
I think I will push it as a release (not NIGHLTY) - only thing left to be fixed is the random black screen while booting. But that's not that important as long as the kernel works well when booted successful.
Edit. done!
Great can't wait to boot 1498mz!
MB865/ATT/BMM
1. Stock 4.0.4
2. Miui 4.0.4
3. Pac man 4.2.2 (6/3)nonkexec
4. Mt
5. MT
6. Cm 10.1 4.2.2 (6/7)kexec
Can I get a wohooo for the A2
Not boot, just set it after boot - and if you're sure you have it running stable, set the "Apply on boot" function in Trickster Mod with a delay of ~90 sec - just to be safe!
RELEASE for Atrix 2
CHANGELOG JBX-kernel 0.6 Hybrid
This version includes fixes for performance and stability
CPU: Set bootup policy to static frequency
CPU: Revert some accidently failed cleanups
CPU: Reset CPU delay on tickless
CPU: Changed margins and sr settings for some OPPs
CPU: Default trimmed dpll mpu
CPU: Added Uilization
SR: Fixed SR return value check
Decreased RCZ_CPU_STALL_TIMEOUT to 60
emif, lpddr: Re-added 466mhz timings
USB: Change ehci performance mode to static scaling freq
Disabled PM_DEBUG for performance
Reduced RW READAHEAD Buffer to 1024
OMAP, CPU, RCU: Re-enabled watchdog
Universal performance invreased
dtrail1 said:
Not boot, just set it after boot - and if you're sure you have it running stable, set the "Apply on boot" function in Trickster Mod with a delay of ~90 sec - just to be safe!
RELEASE for Atrix 2
CHANGELOG JBX-kernel 0.6 Hybrid
This version includes fixes for performance and stability
CPU: Set bootup policy to static frequency
CPU: Revert some accidently failed cleanups
CPU: Reset CPU delay on tickless
CPU: Changed margins and sr settings for some OPPs
CPU: Default trimmed dpll mpu
CPU: Added Uilization
SR: Fixed SR return value check
Decreased RCZ_CPU_STALL_TIMEOUT to 60
emif, lpddr: Re-added 466mhz timings
USB: Change ehci performance mode to static scaling freq
Disabled PM_DEBUG for performance
Reduced RW READAHEAD Buffer to 1024
OMAP, CPU, RCU: Re-enabled watchdog
Universal performance invreased
Click to expand...
Click to collapse
Is his gonna allow then use of 1498 then.
MB865/ATT/BMM
1. Stock 4.0.4
2. Miui 4.0.4
3. Pac man 4.2.2 (6/3)nonkexec
4. Mt
5. MT
6. Cm 10.1 4.2.2 (6/7)kexec
Can I get a wohooo for the A2

[APP][5.0+][2020.12.22] CF.lumen v3.74

About
CF.lumen adapts the colors on your Android device based on the position of the sun, or your custom configuration.
When using the default settings, your display will get a warmer tint (lower color temperature) when the sun is down, vastly reducing strain on the eyes. This will take some getting used to, though! The colors also match closer to common artificial light sources, than the daytime light you get from the sun. Blue light makes your brain want to stay awake, and a lower color temperatures reduces the amount of blue displayed; using this in the evening also reduces your brain's effort to keep you awake at night, and can be beneficial to your sleeping pattern.
During sleeping hours by default a red filter is used. Red strains your eyes the least, and retains your night vision.
Light sensor
The light sensor can be used to automagically adjust the color: switch to the sleep filter in full dark, or to the day filter (usually none) under bright lights.
Because light sensor quality varies wildly between devices, a calibration option is provided. Most devices seem to work fine with sliders set all the way to the left, others need them to be set all the way to the right. Experiment as needed, but be warned that some devices simply cannot distinguish between evening indoor lighting and full darkness, and this feature may thus not work well for you.
Color filters
Several filters are provided. Those named after a color (red, green, blue, amber, salmon) do not limit the display to those colors, but convert the displayed image to grayscale first, then display that image in levels of the selected color, instead of levels of all channels (white). This preserves details that would otherwise be lost.
Grayscale, invert colors, temperature adjustment and custom R/G/B adjustment filters are also provided.
Colorblindness
The master color filter setting also has an option for colorblindness enhancement, with settings for protanopia/anomaly, deuteranopia/anomaly and tritanopia/anomaly. These options redistribute colors across the spectrum, in theory enhancing clarity and color detail.
No claims are made to the effectiveness of these filters, but positive reports have been received from testers. Also note that these filters were thought up by Google engineers - CF.lumen just includes them.
Pro version
Upgrading to CF.lumen Pro will support my developments, remove all nags, unlock the option to start at device boot (make sure you test your configuration first), and unlocks notification options. It also enabled Tasker integration.
In Pro mode, the notification adds convenient buttons to quickly disable the current filter or switch to sleep mode, and you can switch the notification to when enabled mode, which shows the notification only when a color filter is active.
In non-Pro mode, the notification only asks you to upgrade to Pro. It may seem that notification is just there to annoy you, but it actually prevents Android from randomly killing the background service taking care of all the work. Getting rid of it without getting the service killed can be done by going to Settings -> Apps -> CF.lumen and unticking Show notifications.
As in the past CF.lumen was part of Chainfire3D, if you have the Pro package of the latter installed, Pro mode will also be enabled.
Drivers
CF.lumen currently supports three driver backends to adjust the display: the original CF.lumen driver, the KCAL kernel driver, and the rootless (non-root) overlay. See the driver section below for further details.
Performance
When no color filter is active, there should not be any noticeable performance impact. When a filter is active, impact depends on device and what you are doing. On some devices we have tested there was no performance impact at all, on others it was slightly noticeable.
Performance characteristics change based on the driver you are using. See the driver section below for further details.
History
Nightmode - now called 'sleep mode' in CF.lumen - was actually the kick-off of Chainfire3D's development, and the later arrival of the original CF.lumen additionally containing the functionality to change color temperature based on the sun's position. Completely different (and no longer possible) techniques were used to get similar results. There were fewer options, and the filters limited display to the selected channels instead of the currently used much higher quality method of displaying luminance levels on the selected channel.
Future
Keep in mind that Android's rendering system changes over time. This app was possible in the old days of Android, and then wasn't possible for a long time. Only with KitKat did it become possible to make this work again. As such, you should be aware that this app may simply stop working on future Android versions without the possibility of a fix.
Scary permissions
By far most permissions are used only for Google Maps to set your location, and Google Play to provide for In-App Purchases. I cannot make any claims as to what information the Google components do or do not send to Google servers, but no information is sent to me or anyone else (than Google).
Download
Get CF.lumen at Google Play
It needs Android 5.0 Lollipop or newer!
Screenshots
Walkthrough video
GIF
Drivers
CF.lumen currently supports several driver backends to adjust the display: the original CF.lumen driver, the KCAL kernel driver, the PCC/RGB kernel driver, and the rootless (non-root) overlay. Driver selection will only be presented to you if multiple drivers are actually supported on your device.
Drivers: performance background
Software compositing is when your device takes the different surfaces on screen (the app's display, the status bar, the navigation bar, a popup window, these are all surfaces), draws them into a single buffer, then lets the hardware display this buffer. Virtually all modern devices can also do hardware compositing, where these different surfaces are presented to display hardware themselves, skipping one drawing step. It should be noted however, that hardware compositing only supports three surfaces (usually), so only the most basic scenes can be rendered this way. If more than the number of supported surfaces are displayed, the system falls back to software compositing automatically. Performance is slightly lower when this happens, but it happens all the time, and I doubt you've ever noticed it without looking for it.
One specific note about this is that "secure" content (DRM protected video rendering, for example) can only be hardware composited, as the software is not allowed to gain access to the surface. So if you are experiencing video disappearing, it's because the system has switched to software compositing. This can be due to CF.lumen's driver, a color overlay, or even just a system popup pushing the number of surfaces beyond the number of supported surfaces by the hardware compositor.
Drivers: CF.lumen
The CF.lumen driver requires software compositing, as it changes the colors displayed during the software compositing step. Of course, it lets the system go back to hardware compositing if it's not actively changing colors. This can slightly impact performance.
This driver changes colors on the surface content level, and can perform all sorts of calculus before deciding what to display. This usually gives it the highest possible image quality output. For example, in the color channel modes (red - night mode, green, blue, amber, salmon), the image is first converted to a luminance-based grayscale image, and then output in the selected color channels. This dramatically improves clarity and detail over only displaying the selected channels. Taking red mode as an example, this means that green and blue image content still shows up in a shade of red, whereas normally all colors devoid of a red component would show up as full black. Because of the surface-based manipulation, the invert filter may sometimes show unexpected results.
This driver affects both full-screen screenshots as well as app screenshots. Aside from normal screenshot/cast purposes, these are also used by the system for animations and in the recent task lists, and thus it may sometimes appear like a filter is applied twice during rotation or while browsing the tasks list.
Since v3.65 this driver comes in three different modes:
Drivers: CF.lumen: Compatibility mode
This driver mode should work on virtually all devices out there, however, on many firmwares it comes with an extra large performance penalty. Rendering quality is generally excellent, but various internal actions of Android itself (such as screen on, pattern unlock, app install, etc), as well as any app that triggers Android's accessibility options, may temporarily interfere with the rendering. This can cause a flash of the original colors being shown, instead of our manipulated colors.
Drivers: CF.lumen: Performance mode
This driver mode overrides Android's rendering system in a different way. While it doesn't work on all devices and firmwares, if it does work, it is often significantly faster than the compatibility mode. It also doesn't suffer from short flashes of the original colors being shown. This mode causes visible artifacts on some devices, though it isn't common.
Drivers: CF.lumen: Anti-flicker mode
This driver mode is a hybrid of compatibility and performance modes. It uses the same subsystem as performance mode, and thus it doesn't work on all devices and firmwares. This mode keeps the rendering from compatibility mode, but attempts to prevent the short flashes of the original colors being shown.
Drivers: KCAL
The KCAL driver is quickly becoming a popular kernel mod for Qualcomm devices. It allows color adjustments in the display hardware itself. There is no performance difference with this driver, but of course your kernel must support it. This is the fastest driver.
This driver changes colors on the display level, and is limited in the operations it can perform. It is fast, but the image quality can be less. In color temperature modes (probably your most used mode) there is no difference with the CF.lumen driver. In the color channel modes however, there is no luminance conversion. If you select for example the red mode, you will only see the red component of colors. Pure blue, pure green, or any color which is a mix of blue and green but not red, will appear black.
A gamma correction option is available for this driver. Some devices automatically gamma correct the values CF.lumen gives the kernel, the app needs to know about this, so it can take this into account in its calculations.
This driver affects neither full-screen screenshots nor app screenshots. It does not support the colorblind filter.
Drivers: PCC/RGB
This driver is very closely related to the KCAL driver, as they use the same hardware, so please read that section. Some kernels provide support for one but not the other. If both are supported, KCAL generally gives you a few more options than PCC/RGB, but there is no performance difference between the two.
This driver does not support the grayscale, invert or colorblind filters.
Drivers: rootless
The rootless fallback driver (for non-root users) uses a color overlay. This is an additional surface, causes at least one additional expensive full-screen rendering step, and is likely to throw your system into software compositing mode most of the time. This is the slowest (and ugliest) driver.
Image quality wise, it is no competition for the other drivers, but not everyone has root. Like the other screen color tint apps on the market (there are quite a few, and while CF.lumen is older than all of those, it is certainly not the best known or most popular one), a color overlay is used. Where the other drivers properly manipulate the displayed colors, this driver is more like putting a half-transparent colored sheet over a picture. While it somewhat does the job, it lowers contrast significantly.
On Android 6.0, various Android functions refuse to work when an overlay is present. This includes apps asking for permission, installing apps, etc. The app attempts to detect these situations and automatically turn off the filter. If you spot a situation where the filter is not automatically temporarily disabled, please let me know.
This driver affects only full-screen screenshots (but not full-screen animations), not app screenshots. It does not support the grayscale, invert, or colorblind filters.
Non-GApps firmwares
This app uses Maps for manual location setting, and Play for purchasing Pro. An increasing number of users do not have GApps, for privacy, security, and other concerns. If the app is installed on such a firmware, your location will be determined using the normal location API (without manual override, so your phone has to be able to determine your location). As I do not want to deprive anyone from the potential health benefits of sleeping better, the app operates in Pro mode if you do not have the Play store installed (PayPal'ing me beer money is always an option).
The APK is attached to this post for those not using Google Play (only).
Under no circumstances are you allowed to (re-)distribute this APK
(v2.00: 32, v2.05: 180, v2.10: 164, v2.16: 288, v2.25: 118, v2.40: 555, v2.50: 546, v2.60: 39, v2.61: 132, v2.66: 27, v2.71: 563, v2.74: 388, v2.75: 1042, v3.00: 4320; v3.65: 1376)
Changelogs
2020.12.22 - v3.74
- (c) 2020
- Remove references to G+
- Android 11 support
- Android 10+: Show warning about notification options not working
- Android 10+: Disable rootless mode
- Android 10+: Disable advanced/injection/anti-flicker/performance driver (needs further investigation to make work)
- Add foreground service permission
- Built for API 29
- Fix notification spam issue
- Fix maps crashing
2018.12.20 - v3.72-TEST
- Pie: Fix soft-bar transparency
- Pie: Fix boot-up launch
- Pie: Fix maps not working
- Pie: Fix greylist violations
- Oreo/Pie: Fix notifications
- Fix Magisk detection / root warning
- Fix system settings modification permission handling
- Fix location permission handling
- Fix performance driver injection on some 7.0 devices
- Fix several deadlocks
- Add option to detect which driver mode is the fastest
- Support for new KCAL paths
- Replaced root sockets with Binder-based IPC
- Removed colorblind options (available in Developer Options on all recent devices)
- Greyscale/Saturation filter: allow up to 2.0x factor (oversaturate)
2018.11.28 - v3.71-TEST
- (c) 2018
- Basic Pie fixes (far from complete!)
- Updated libsuperuser and librootjava
- CF.lumen performance driver: fixed injector for newer Android versions
2017.02.09 - v3.70
- (c) 2017
- Upgrade grayscale filter from a toggle to a saturation slider
- CF.lumen driver: fix 'performance mode' on Nougat (bypass new linker protections)
- CF.lumen driver: fix darken filter math issue (still doesn't work on invert, though)
2016.03.30 - v3.66
- CF.lumen driver: smoother filter switching
- CF.lumen driver in Performance mode: fix disable hardware overlays option sticking when CF.lumen is disabled
- Tasker: fix black screen on filter selection
- Tasker: fix brightness change on filter selection
2016.03.01 - v3.65
- Reworked raw remote control receiver
- Fix logcat spammed with notification errors regarding a missing icon
- Fix issue with "Bright light" setting
- Fix flicker on location update
- Reduce frequency of notification updates
- Add color checker to rgb/custom and temperature filter selection dialogs
- Underlined numbers next to sliders can now be tapped to input a text value
- CF.lumen driver: fix not closing properly when switching to KCAL
- CF.lumen driver: better monitor accessibility settings
- CF.lumen driver: added anti-flicker and performance modes
- KCAL driver: add gamma correction feature
- KCAL/CF.lumen drivers: Tune color temperature algorithm
- PCC RGB driver added
- Add "Darken filter" setting to "Brightness" option (sub-zero)
- Made "Brightness" setting on filter selection an icon
- Moved "Auto-update location" option to the Map activity
2016.02.18 - v3.62
- Fix driver not initializing on various devices
2016.02.17 - v3.61
- Slight performance improvement in root driver
- Change timeout handling code in root service
- Fix background ANR
2016.02.16 - v3.60 - RELEASE NOTES
- Play release of v3.53
2016.02.16 - v3.53 BETA
- Add notice to reboot first after installation if old driver found
- Fix some options in the settings screen not being disabled when they should be
- Adjust light sensor calibration texts and min/max values
- Add option to auto update location (enabled by default, passive listener, no power use)
- Add welcome message
2016.02.13 - v3.52 BETA
- Fix issue with system-based SuperSU
- Fix old driver not always being reset when switching drivers
- Fix KCAL driver not always resetting when setting to disabled (screen power cycle also works)
- Fix rootless overlay being applied twice on service restart
- Periodically and on certain actions, reset color matrix
2016.02.08 - v3.51 BETA
- Fix grayscale channel rendering
- Allow master mode without location
- Improve Marshmallow doze/standby handling
- Fix filters sometimes not showing on initial setup in Rootless mode
- Added warning if drawing over other apps is disabled in M+Rootless mode
- Added capability to detect permission dialogs and hide overlay in M+Rootless mode
2016.02.08 - v3.49 BETA
- Should work again on MIPS
- 4.4 support dropped, now 5.0+
- Fix FC on SuperSU prompt
- Completely new CF.lumen driver code
- Improved driver switching
- (C) 2016
2015.10.28 - v3.16
- Detect Enforcing SELinux without supolicy availability and warn user
2015.10.27 - v3.15
- Fixed a case of the new root driver not being injected (and thus nothing happening)
2015.10.26 - v3.11 BETA - RELEASE NOTES
- Fixed freezing issue
- Fixed Note5 (and others?) support
2015.10.19 - v3.10 BETA - RELEASE NOTES
- New root driver method
- Adjusted slider layouts
- Dropped MIPS support
2015.02.24 - v3.00 - RELEASE NOTES
- (C) 2015
- Added KCAL driver (see XDA thread for details)
- Added Rootless driver (see XDA thread for details)
- Added freeload option
- Backuptool script updated (requires un-/reinstall of driver to become active)
2014.12.22 - v2.75
- Change notification flags
- Fix driver detection issue which could lead to bootloops on devices with symlinked busybox
- Work-around one case of bootloops, detect that case, and warn about it
2014.12.02 - v2.74
- Fix remote control issue
2014.11.19 - v2.72
- Fix issue with in-app billing
2014.11.14 - v2.71
- Hide notification from (secure) lockscreens on L
- Check free space before installing driver
2014.11.06 - v2.70
- Tasker integration (Pro only)
2014.11.05 - v2.66 - RELEASE NOTES
- Android 5.0 fixes
- 64-bit fixes
- Performance improvement
2014.10.22 - 2.61
- Fix UI bug where settings wouldn't open sometimes
2014.10.22 - 2.60 - RELEASE NOTES
- Fixed a name issue with the recovery installer
- Automatically restart service when app is updated
- Expanded theme options, including material (basic)
- SELinux policy patches for LPX13D
- Experimental support for arm64, x86-64, mips64
2014.07.02 - 2.51
- Fix: ignore light sensor triggered sleep if forced awake during sleep hours
2014.07.01 - 2.50
- Installer fixes for latest AOSP
- Installer fixes for Android "L" Preview
- Added wake button to notification during sleep mode, which goes to sundown mode and is the default tap response - in contrast to disable, which disables all filters and is the default tap response while not sleeping
- Fixed issue where starting CF.lumen would not start the driver/service when not using Pro, and nothing would happen regarding screen colors, no matter which buttons you push
2014.04.16 - 2.40 - RELEASE NOTES
- Added brightness control to filters (actionbar option)
- Added option to wake from sleep mode when an alarm goes off
- Added option to install via custom recovery
- Added backuptool support (survive custom ROM nightlies) - un/re-install driver to activate if coming from an older version
- Fixed setting sleep filter to disabled using day filter at night instead of sundown filter
- Fixed filters occasionally sticking while modifying settings
2014.04.14 - 2.25 - RELEASE NOTES
- Various UI tweaks
- Added gradual filter fading, configurable for sunrise, sunset, sleep and sensor events
- Added notification icon options (keep notification but hide icon)
- Added light sensor based wake from sleep option
- Added driver update needed notification
- Added option to switch between light, dark, and device themes
- Added quick toggle menu items to main activity
- Improved (Pro) notification behavior - en/disable now default tap option when active
- Fixed kelvin and R/G/B choices not being saved between filter selections
- Fixed "Upgrade to Pro" from notification sometimes not working
- Fixed text wrapping on light calibration dialog
2014.04.11 - 2.15
- Fixed driver installation problem when using Superuser instead of SuperSU
2014.04.11 - 2.10
- Fixed crash on driver (un)install
2014.04.10 - v2.05
- Fixed a number of force closes
2014.04.10 - v2.00
- Initial public release
Is there any practical difference between this and Lux?
Sent from my Nexus 5 using XDA Premium 4 mobile app
rlaw said:
Is there any practical difference between this and Lux?
Sent from my Nexus 5 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
See walkthrough video on YouTube, and you will get the answer.
Sent from my Nexus 4 using Tapatalk
Is it possible that you could add Tasker compatibility? If not, are there public intents available to control cf.lumen through Tasker intents? Thanks for updating this great app.
EDIT: The latest update(s) fixed my problems. Thanks CF! Will buy if I like the app after a few days of use.
BUG:
I would love to include a logcat, but I simply don't have the time today or tomorrow. If needed, I'll post one this weekend.
When the app runs for the first time: grant su access, then I see the "please install cf.lumen driver". I click install, device reboots after a few secs, after reboot I wait for some time before opening the app again. When I open it, it asks me the same thing: install the driver. Wasn't the driver installed, or doesn't it detect the driver?
PHONE: Nexus 4, ROM: Paranoid Android 4.2 BETA 4 (that's Android 4.4.2 if you don't know), KERNEL: franco.Kernel #204.
On my first try I had Nexus Display Control (also by Franco) installed. My guess was the apps aren't compatible. After uninstalling both apps, reboot, installed cf.lumen again, install driver, reboot: same problem. So for now no cf.lumen for me. Just eye strain.
I hope this helps you find the bug or incompatibility I have!
4.0+
Excellent, and we need it for Android 4.0+
No love for 4.1 - 4.3 makes me a sad panda
kodirovshchik said:
Excellent, and we need it for Android 4.0+
Click to expand...
Click to collapse
+1. Although I favour the cool-factor and performance of custom ROMs, it's always nice to be able to get a similar experience on stock ROM (which is ICS for me), considering that there are no stable custom ROMs on my device at the moment. I'm actually in the midst of custom ROM development for my device, though I work on CM10.2. (There are others who work on KitKat). It would be much appreciated if the @Chainfire could add support for lower Android versions.
rlaw said:
Is there any practical difference between this and Lux?
Click to expand...
Click to collapse
Seems to me (haven't actually tried), Lux (like several other solutions) uses an overlay for things like colortemperature and nightmode, which usually gives a lot worse image quality.
It's auto-brightness features on the other hand should work fine, and is something not really available from CF.lumen. Maybe one day one app will also be able to control the other.
jackattack said:
Is it possible that you could add Tasker compatibility? If not, are there public intents available to control cf.lumen through Tasker intents? Thanks for updating this great app.
Click to expand...
Click to collapse
This is not available right now, but I've added it to my to-do list.
erikieperikie said:
BUG:
I would love to include a logcat, but I simply don't have the time today or tomorrow. If needed, I'll post one this weekend.
When the app runs for the first time: grant su access, then I see the "please install cf.lumen driver". I click install, device reboots after a few secs, after reboot I wait for some time before opening the app again. When I open it, it asks me the same thing: install the driver. Wasn't the driver installed, or doesn't it detect the driver?
PHONE: Nexus 4, ROM: Paranoid Android 4.2 BETA 4 (that's Android 4.4.2 if you don't know), KERNEL: franco.Kernel #204.
On my first try I had Nexus Display Control (also by Franco) installed. My guess was the apps aren't compatible. After uninstalling both apps, reboot, installed cf.lumen again, install driver, reboot: same problem. So for now no cf.lumen for me. Just eye strain.
I hope this helps you find the bug or incompatibility I have!
Click to expand...
Click to collapse
A logcat will not help for this (its not a crash) - we'll need to investigate some other way. Can you confirm /system/lib/libcflumen.so is present?
SirBindy said:
No love for 4.1 - 4.3 makes me a sad panda
Click to expand...
Click to collapse
Codename13 said:
+1. Although I favour the cool-factor and performance of custom ROMs, it's always nice to be able to get a similar experience on stock ROM (which is ICS for me), considering that there are no stable custom ROMs on my device at the moment. I'm actually in the midst of custom ROM development for my device, though I work on CM10.2. (There are others who work on KitKat). It would be much appreciated if the @Chainfire could add support for lower Android versions.
Click to expand...
Click to collapse
If I could easily do this, I would, but I can't, so I won't.
Chainfire said:
A logcat will not help for this (its not a crash) - we'll need to investigate some other way. Can you confirm /system/lib/libcflumen.so is present?
Click to expand...
Click to collapse
Same issue here on N4 running CM11 M5 4.4.2. I do not have the system/lib/libcflumen.so file. I tried pressing install and reboot a couple of times to no avail.
Edit: just got an update from the play store. Ironically this update that says it fixes force closes now causes the app to force close when pressing ok to install the driver. Using ART by the way.
It does not seem to work at all in Cm11. It crashed once but even when it does not it don't change anything. It does flicker a small black square though.
The app crashes when I tap okay for the driver installation. I am using a Nexus 4 on 4.4.2 SlimKat build 3 with Matr1x 13.5 kernel and ART. I've added a Logcat for you, not sure if I did it right, let me know if it doesn't contain all the information you need. I think ART might be breaking it.
Max Dark level - 100
Min Bright level - 250
Could you change Min Bright level to 101? Its logical, and I really need it on my nexus 7 2013.
Or, even better, could you make dynamic Max Dark/Min Bright level?
Max Dark - ( N ),
Min Bright - ( N + 1 )
I also get fc after driver install on cm11 with my vs980. No work:/
Sent from my LG-VS980 using Tapatalk
I stand by XXCoder and tacosdelicioso on the CM11 issue. App crashes when asking for reboot, soon after permissions are given. I am running ART, FYI.
Enviado de meu XT925 usando Tapatalk
Dante897 said:
The app crashes when I tap okay for the driver installation. I am using a Nexus 4 on 4.4.2 SlimKat build 3 with Matr1x 13.5 kernel and ART. I've added a Logcat for you, not sure if I did it right, let me know if it doesn't contain all the information you need. I think ART might be breaking it.
Click to expand...
Click to collapse
Happens the same to me. Using latest temasek v64, devil's kernel and dalvik.
FCs on me as soon as I press OK to restart to install the driver. Happens every single time. Restarted manually and opeed it up again and same thing

[Kernel][Tuneable][STOCK/CM] SmoothMod Kernel for SM-T311

SmoothMod Kernel (SMK) for Samsung Galaxy Tab 3 8.0 3G (SM-T311), also may work on WiFi version (SM-T310), all stock and CM ROMs.
Development discontinued, read reason here.
This kernel is developed to give you more smoothness and stability than you can have on stock kernel and others.
Warning. Kernel may work on your device/ROM and may not. For me it works at all ROMs and for many people (on 4PDA.RU forum) it works too. Some people say (or said before kernel worked, this also can be) it doesn't work. So do a kernel backup please before you flash it first time. I've never had boot or usage problems with SMK, but it could be because i'm its developer (though it can not be the reason for that I'm always successfully boot it..). So it seems that our devices of the same model might be different. Be careful as I can not help you.
Features:
- Kernel version updated up to 3.2.26 and keeps updating
- Safe CPU overclock to 1.9 GHz with CPU-Boost kernel driver developed also by myself
- Custom (and only here) governor Smooth that is made to give both good battery saving and absolute smoothness. Uses GPU load and io_wait to additionally increase frequency at the right time.
- Kernel has a custom Android service smkd that controls all its features and provides many tweakable settings that you can change very simply: through terminal command "smkd" (instructions below) or "by hands" at folder "/smk" (like usual linux kernel settings at "/proc/sys/{kernel|vm|net}"). The program is written in C language, not as a script, for performance (shell-scripts are very slow when comparing with optimized C-programs).
- Tweak Menu that can be found if you type 'smkd' in your terminal.
- SmoothnessControl - one of smkd's functions that tries to guarantee UI smoothness to your tablet even if there are very CPU-hungry (but not I/O) apps/programs running like android.process.media and others. By default disabled. To enable, type this: 'su -c "scd --enable"' in terminal emulator. To disable, type 'scd --disable'.
- CPU Undervolt controlled through smkd.
- DynBS program (also developed by me) used by smkd to improve battery saving by 40% and more.
- Boeffla Sound Engine with custom settings, not working with Boeffla Sound Control app because smkd controls them (it's needed because smkd fixes engine's sound effects bug). Settings are stored folder "/smk" in files beginning with "boeffla.".
- Cron scheduler configured from file /sdcard/cron/root.
- All the custom tweakable settings described upper are reloading instantly after you change them or on delete (cron schedule file is also under the same watch).
- Kernel is compiled with optimized HYPER-TOOLCHAIN with gcc version 6.0 and maximally optimized compiler configuration.
Customizing kernel:
There is now nothing that needs to be explained, as customizing is pretty simple! Just type command 'smkd' (without quotes) and go through the menu (by entering appropriate symbols) as you want, changing parameters as you need.
Ask, if you have questions
If you have questions or suggestions about my kernel, feel free to write about that here and I will try to answer.
F.A.Q.:
Q.: Do I need to wipe Dalvik/ART cache before/after flashing this kernel?
A.: It is even not useful to wipe caches because they are used by Android only, not by kernel. So, it's not needed.
Q.: The kernel does not boot! What do I have to do to boot it?
A.: Write a message in this thread providing info about what ROM do you use, what Android version it is and what kernel build (kk/lp/mm) and version you are trying to boot. I will reply to that message and try to fix that problem.
Author: me, igoryan94
Download from Google Drive
Before flashing this kernel please do a backup yours first!
Warning! If you have a Jellybean/Kitkat rom, then download the smoothmod-kernel-kk-... build. If you use Lollipop (CM12), then your build to download will be ...-lp.... If it is a Marshmallow (CM13), then download mm build.
Other choice will cause your device to not be able to boot!
(Sorry for my (maybe )bad english)
Plans:
-
Developing now:
-
Changelogs (old*):
1.2.1/1.2.2:
- Returned possibility to load a profile from command line (command 'smkd --load [name]' or 'smkd ld [name]')
- Added custom setting for apps CPU time, now it has two groups: idle and high.
Idle group gives an app very small amount of CPU time, use for hungry apps that you don't need.
High group grants an app a 95% of all CPU time. Use to speed up some apps or games.
It is all very similar to Greenify and others, excepting that this is not battery saving solution, only to smooth up your Android, as Greenify disables an app and CGroup lowers app's CPU execution time available to it.
- I/O settings fully rebalanced for smoothness for system processes and apps processes
- Also added control group for I/O that does like one for CPU, but for I/O and developed its correct (for Android) behavior.
- Current configuration name in smkd menu now correctly saves and loads after reboot.
- Default LMK level changed to 125
XDA->SMK:
1.2:
- Got a smoother UI with better CGroup tweaking
- In case of some situations smkd will notify user with drawing a small square of some color at the left upper screen edge (portrait orientation). For overheat the color is red. When SmoothnessControl gets to work, color is light blue/cyan. If device's load is too high, the color will be blue.
"Notification" will blink when screen updates because the framebuffer devices are not support this method of screen drawing. But it works for now and I think that it is very useful to know the reasons of device's lags and freezes.
- Menu now immediately reacts to input, instead of pressing some characters and then Enter. Modified all menus that way so the interface is now much better.
- When exiting menu, parameters are automatically saved to default profile. No need to care about it anymore...
- Added Quick settings also to RAM and I/O
- Main menu: moved all "p)" menu elements to main menu level, it is quicker to access now
- Some more Quick settings options added
- Added Quick settings to my menu templates, so I will add this to most of the new menus in the future
- Main Quick settings colors changed to blue, additional are still white
- Overclock to 1920 MHz lowered to 1800 MHz because 1800 is much more stable (1920 causes reboots on Marshmallow on my tablet)
- Device now reboots when charging speed is too bad. By default this is disabled. Also added setting "Charge cycle time" and Quick settings for that so you can quickly set up to what charge speed you need (reboots are helpful but not very good for users that want to play device when it charges).
- 'Boost' feature disabled so now DynBS will work as always even when device is laggy
Previous:
1.1.22:
- CPU, Boeffla Sound and Network setting menus in smkd now have the Quick settings feature that helps to configure them by one click instead of tweaking them each
1.1.21.1:
- DynBS updated: now it uses frequencies from 350 to 700 MHz too, so more battery can be saved.
1.1.21:
- smkd now has menu interface which opens by default by command 'smkd' without options.
- All setting commands are removed. Use menu instead.
- In Cyanogenmod ROMs SystemUI is restarted every time when screen becomes disabled, so you may never see it lags or freezes again.
- PCS renamed to SC (SmoothnessControl).
- Overclock enables when device is laggy even when it is disabled in settings
- Redone temperature control: now smkd monitors a device temperature instead of CPU. It leads to better smoothness. Also overheat situations disable some functions like I/O readahead, ZRam, KSM.
- Overheat prevention function fully removed
- Governor Smooth now enables both cores on gestures with two or more fingers instead of simple tap.
1.1.20:
- Added charging compensation: now when battery charging is too slow, CPU Topology and voltage will be changed appropriately for quicker charge.
- Touch boost changed from 1400 to 1000 MHz, but it also boosts busfreq to 400 instead of 267 MHz. Results in better reaction on screen touch.
- Governor Smooth's default sampling_rate changed from 27000 to 16000 for quicker reaction
1.1.19:
- Added ARM CPU Topology for better multithread scheduling
- Some CPU Scheduler changes for smoothness or power saving (tweakable)
- Improved smkd UI code
1.1.18.1:
- Fixed performance/smoothness problems.
1.1.18:
- Added new default configuration "throughput"
- GPU acceleration is now forced for all apps and it is changeable from smkd.
- I/O scheduler SIOPlus added.
- DynBS is returned (one user asked for it as it really saves battery, as he said).
1.1.17:
- User profiles are no more exist, replaced with default configurations" instead. They are: smooth, battery, ram and cool. After each launch of smkd (mostly on reboot) configurations are removed and recreated to always be fresh and up to date.
- Added ability to create, rename and delete profiles by normal way, but default profiles cannot be replaced, deleted or renamed through smkd (only "by hands").
- GPU settings: composition and forced GPU-acceleration from Android settings for developers.
- Tripndroid and Zen I/O schedulers are added.
1.1.16.1:
- Configurations loading is now be always successful (but only if appropriate file exists), without that annoying errors "try again later, please..."
- Small tweaks optimization
1.1.16:
- Overclock now disabled by default, as it was on 1.1.14 and before, for battery saving (overclock eats too much battery). Can be enabled with command 'smkd -c -o 1'. Temperature control is now optimized for both CPU overclock and hardware maximal frequency modes.
- smkd interface improved a little.
- KSM functionality added with some fixes for Mali GPU driver bugs in userspace.
- Default temperature limit is now 64 C (before it was 67 C). This is done for more stability when the weather is hot.
- Some changes for smoothness and stability...
1.1.15:
- Overclock is enabled now for any time when screen is enabled (no more boost).
- Developed overheat preventing functions that cool device when temperature is between 90% of threshold and higher. CPU frequency will be set according to temperature for the moment (for every 2% will be a different frequency). Function can be disabled but it is not recommended.
- All cooling functions now control voltage too to be more effective.
- Governor Smooth tweaked for more balance (oc_nr_run_threshold->6)
- Governor Smooth: changed logic: half-overclock (to 1.7 GHz) will occur if number of processes running is a half of oc_nr_run_threshold tunable.
- smkd now controls I/O scheduler and I/O readahead settings, they are tweakable with smkd command. Profiles change this parameters too.
1.1.14:
- smkd tweaker program fully translated to english and comes now in two languages. Now it uses Android's property 'persist.sys.language'.
If your device configured for any language excepting russian, then program will be in english for you. At the other case it will print out text and messages in russian.
- Improved custom configurations in smkd. Now it loads profiles synchronous with service (by using mutex) instead of relaunching it with shell stop/start (it was too slow and even buggy to do that).
- DynBS will not be in kernel anymore, it is not so effective as needed. Instead, I've added a profile tweaks for my governor Smooth, that tweaks easily changeable from smkd (cmd. "smkd -c -s [0-2]").
1.1.13:
- Cron scheduler now works correctly (i'm happy ), doing exactly what was scheduled by the user at the exact times.
- I don't remember what was in this version because forgot this as I worked on 1.1.14 intensively.
-----
* Newer versions contain changelogs in install archive itself.
Very good kernel. Use [5.1.1] Resurrection Remix 5.5.9 + SMK 1.0.20.1 lp.
Nerovinger said:
Very good kernel.
Click to expand...
Click to collapse
Thanks
stuck at bootanimation..
Sent from my SM-T311 using XDA-Developers mobile app
so.hell said:
stuck at bootanimation..
Sent from my SM-T311 using XDA-Developers mobile app
Click to expand...
Click to collapse
What ROM do you use? Android version, SMK version?
AICP BY GR8NOLE.
SMK V-1.1.12
i try dirty flash n clean flash.stuck at bootamination..
Sent from my SM-T311 using XDA-Developers mobile app
so.hell said:
AICP BY GR8NOLE.
SMK V-1.1.12
i try dirty flash n clean flash.stuck at bootamination..
Sent from my SM-T311 using XDA-Developers mobile app
Click to expand...
Click to collapse
Looks like it will not work on AICP ROM, on Cyanogenmod 13 and ResurrectionRemix kernel works fine (I've tested that)... Sorry The reason for that I can not fix this problem is that I do not know (even cannot know) how to make an init.rc (this file starts all Android services on boot) file universal (to support absolutely all ROMs at one time). This is also the reason for three builds of kernel: kk, lp and mm...
Nice kernel. But can you please make a version of your kernel work with the T310 (WiFi)?
Stuck at Bootanimation
ROM: Resurrection Remix 5.6.9 by powermetza
Android Version:6.0.1
SMK version 1.1.12
pawas99 said:
Stuck at Bootanimation
ROM: Resurrection Remix 5.6.9 by powermetza
Android Version:6.0.1
SMK version 1.1.12
Click to expand...
Click to collapse
Try to flash on a clean ROM (with backup of cource)... All fine for me on RR.
Luis_0 said:
Nice kernel. But can you please make a version of your kernel work with the T310 (WiFi)?
Click to expand...
Click to collapse
I can't as i don't know much about modding in '/init.rc' script and also about what differences it has in kernels for T310, T311 and T315... Sorry.
There are too much incompatibilities with builds that are now (they must work everywhere but they don't)...
Ok. Added one question to poll. There are three variants for ROM and two for working or not (six at all), for me all works fine, so I voted for the first three answers.
Version 1.1.14 developer testing ends now, smkd fully translated to english. I will now build the kernel and then begin uploading it to Google Drive.
(sorry for my incorrect english)
igoryan94 said:
Try to flash on a clean ROM (with backup of cource)... All fine for me on RR.
Click to expand...
Click to collapse
Stuck at bootanimation even after flashing on a clean ROM.
waiting for update..
Hey @igoryan94,
Thanks a lot for making this great kernel!
I've flashed the KK version along with the stock ROM http://forum.xda-developers.com/showthread.php?t=2789510. It works very nicely. Would you please show an instruction (or a specific terminal command for newbies like me) of how to overclock CPU to 1.9GHz? Currently the max speed is 1.5Ghz according to kernel audit.
Thanks again
Hey I cant change the cpu frequent through kernel adiutor. As soon as i change the freq to 1920 it changes back to 1500.
igoryan94 said:
I can't as i don't know much about modding in '/init.rc' script and also about what differences it has in kernels for T310, T311 and T315... Sorry.
Click to expand...
Click to collapse
@gr8nole could help him in this?
xdaSEx10 said:
Hey @igoryan94,
Thanks a lot for making this great kernel!
I've flashed the KK version along with the stock ROM http://forum.xda-developers.com/showthread.php?t=2789510. It works very nicely. Would you please show an instruction (or a specific terminal command for newbies like me) of how to overclock CPU to 1.9GHz? Currently the max speed is 1.5Ghz according to kernel audit.
Thanks again
Click to expand...
Click to collapse
CPU frequency is automatically changed to 1920 MHz when special conditions are met (they are: "blocked" processes and waiting for I/O).. Version 1.1.5 will have full 1920 MHz CPU frequency.
I will now upload "developer" version of kernel 1.1.15_dev for KitKat users. If you want, test that) It is not fully contains all changes that i've done, but I'm not at home now and cannot compile new build... For now it has smooth overheat prevention and overclock fully enabled.
Hunter97 said:
Hey I cant change the cpu frequent through kernel adiutor. As soon as i change the freq to 1920 it changes back to 1500.
Click to expand...
Click to collapse
Please wait for SMK version 1.1.15, it will use 1920 MHz as a default frequency always excepting overheat moments (that will disapear very quickly) and governor's battery saver mode.
You can also use a developer version 1.1.15_dev if you use JellyBean/KitKat as your ROM.
Ok, "dev" version released for testing.
When I will return home, I will release another testing version that has an I/O scheduler change functionality, optional Overheat Prevention and changing min_freq to minimal (50 MHz) when temperature event occurs. Maybe it will have even more features (I have smkd code with me, PC is only needed for compiling kernel and ramdisk).
on NoleKat.T310. v1.1 KK 4.4.2 not boot. on CM13 it's ok, but, for me, the best android versioni for this tablet is kk stock and i install NoleKat.T310. v1.1.
jamax80 said:
on NoleKat.T310. v1.1 KK 4.4.2 not boot. on CM13 it's ok, but, for me, the best android versioni for this tablet is kk stock and i install NoleKat.T310. v1.1.
Click to expand...
Click to collapse
SMK will not boot on T310. Only T311.

[APP][OPEN SOURCE][ROOT][5.0+] Night Light (KCAL)

Night light is an open-source app which uses KCAL to adjust blue light intensity of the display colors, so that viewing the screen at dark becomes pleasant for the eyes, and help you fall asleep faster (this is what science have proven so...).
Features
Easy to use user interface. Settings are easier to find.
Uses KCAL to adjust screen RGB colors, hence its efficient and changes are seen everywhere on screen.
Supports older KCAL implementations as well as newer KCAL implementation for v4.4 kernels.
Simple color controls for normal users through color temperature control.
Manual KCAL controls for advanced users.
Automation routines lets you define routines where you specify Night Light settings which you wish to apply, and they will be automatically applied for you in specified times.
Intensity fading in/out is supported as part of automation routines.
Supports sunset/sunrise timings.
Set on boot delay.
Original KCAL settings of user is backed up and applied when night light is turned off. And it can be configured as well.
Support for user profiles, which are collections of settings that user can apply with one click.
And to fulfill your all kinds of automation needs, app is supported as a Tasker plugin. You can use it with Profiles.
Option to automatically disable Night Light in lock screen, and turn it back on after the device is unlocked.
Quick Setting tile for easy toggling on/off night light anywhere.
Launcher icon shortcut for toggling Night Light on/off and toggling intensities.
Dark and Light theme.
Advantages
No overlays.
Background service is only used for lock screen option. The entire automation (including the fading) is done using neat AlarmManager tricks (which not only is battery friendly, but memory friendly as well).
Requirements
Kernel supporting KCAL.
Root access.
Download
Source - https://github.com/corphish/NightLight
Wow. Thanks for this awesome app. This is my best daily night light app.
Thanks
sounds good
let me have a try brother......
corphish said:
Night light is an open-source app which uses KCAL to adjust blue light intensity of the display colors, so that viewing the screen at dark becomes pleasant for the eyes, and help you fall asleep faster (this is what science have proven so...).
Features
Easy one touch toggles, with a single slider to tweak blue light intensity.
Quick Setting tile for easy toggling on/off night light anywhere.
Automatic switching on/off night light at user specifed timings. (Limitation - Start time must be lesser in value than ending time, that is if you choose starting time at 2300 hrs and ending time at 0600 hrs (next day) it won't work for now).
Requirements
Kernel supporting KCAL.
Root access.
Download
Source - https://github.com/corphish/NightLight
Click to expand...
Click to collapse
The automatic switch doesn't seem to be reliable. Could you add intents so it can be toggled with Tasker? I already have a profile that triggers at sunset so that would be perfect.
Sent from my Nexus 5X using XDA Labs
Great app, thanks. Have been using CF.lumen until now, but that seems unsupported (and is closed source).
Please keep improving it. Would also like to donate a beer.
Can you explain whats this KCAL thing ??? ??
thanks for this app apreciate it i got ADD and Slightly Autism and i already have an issue sleeping my brain get supercharged and i can't get to sleep but this app helps [email protected]
Loving the app so far, however, I notice it won't trigger at the time I have set unless I manually open the app. I've removed it from Android's battery optimization so I don't think that can be it. Any ideas?
rickysidhu_ said:
Loving the app so far, however, I notice it won't trigger at the time I have set unless I manually open the app. I've removed it from Android's battery optimization so I don't think that can be it. Any ideas?
Click to expand...
Click to collapse
Same here. I forgot to report it. I use Tasker to launch it at sunset & sunrise along with switching between dark / light app themes.
Sent from my Nexus 6P using XDA Labs
yochananmarqos said:
Same here. I forgot to report it. I use Tasker to launch it at sunset & sunrise along with switching between dark / light apo themes.
Click to expand...
Click to collapse
I ended up doing this as well! Now the other thing I'm hoping gets implemented is a smooth transition to the orange hue.
zaibansari20 said:
Can you explain whats this KCAL thing ??? [emoji848][emoji848]
Click to expand...
Click to collapse
Kcal is a kernel tweak that lets you customize colors at lower (kernel) level, so there won't be any filter or layer on screen, but in most stock kernels it isn't available, so you have to find a custom kernel for your phone/rom that has it.
Thanks for the app, but I've used tasker with the command "echo 180 75 35> /sys/devices/platform/kcal_ctrl.0/kcal" for a long time (echo 256 256 256 > /sys/devices/platform/kcal_ctrl.0/kcal to get the color back.)
Obviously you can change the values to whatever you want.
But the app will be much more easy for many people
Envoyé de mon ONEPLUS A5000 en utilisant Tapatalk
J0kker said:
Kcal is a kernel tweak that lets you customize colors at lower (kernel) level, so there won't be any filter or layer on screen, but in most stock kernels it isn't available, so you have to find a custom kernel for your phone/rom that has it.
Click to expand...
Click to collapse
I'm using LineageOS with a custom kernel which allows mein to change RGB values from any kernel modification app...
Sent from my LG G2 using XDA Labs
zaibansari20 said:
I'm using LineageOS with a custom kernel which allows mein to change RGB values from any kernel modification app...
Click to expand...
Click to collapse
So it should work for you, you can try with a kernel manager like kernel adiutor but the app should work.
J0kker said:
Kcal is a kernel tweak that lets you customize colors at lower (kernel) level, so there won't be any filter or layer on screen, but in most stock kernels it isn't available, so you have to find a custom kernel for your phone/rom that has it.
Thanks for the app, but I've used tasker with the command "echo 180 75 35> /sys/devices/platform/kcal_ctrl.0/kcal" for a long time (echo 256 256 256 > /sys/devices/platform/kcal_ctrl.0/kcal to get the color back.)
Obviously you can change the values to whatever you want.
But the app will be much more easy for many people
Envoyé de mon ONEPLUS A5000 en utilisant Tapatalk
Click to expand...
Click to collapse
I tried the Tasker method and it works great. I had no idea that command existed and could be used in Tasker. Thank you for sharing! :good: :highfive:
rickysidhu_ said:
Loving the app so far, however, I notice it won't trigger at the time I have set unless I manually open the app. I've removed it from Android's battery optimization so I don't think that can be it. Any ideas?
Click to expand...
Click to collapse
Does it fail to trigger if a reboot had happened sometime before the time it should have triggered?
For example, if it was to trigger at 5pm, but a device reboot happened in, say, 3pm, then does it fail to trigger at 5pm?
Anyway, set on boot is broken (again), will need to fix it, but normal timers should work fine.
corphish said:
Does it fail to trigger if a reboot had happened sometime before the time it should have triggered?
For example, if it was to trigger at 5pm, but a device reboot happened in, say, 3pm, then does it fail to trigger at 5pm?
Anyway, set on boot is broken (again), will need to fix it, but normal timers should work fine.
Click to expand...
Click to collapse
Ahh, that might be it. I think it stops working after a reboot, so I'd be going back into the app to get it going again.
Very minor issue though, great app - thank you for your hard work!!:highfive:
corphish said:
Does it fail to trigger if a reboot had happened sometime before the time it should have triggered?
For example, if it was to trigger at 5pm, but a device reboot happened in, say, 3pm, then does it fail to trigger at 5pm?
Anyway, set on boot is broken (again), will need to fix it, but normal timers should work fine.
Click to expand...
Click to collapse
Launcher shortcut (toggle on/off) switch is also seems somewhat broken, it toggle on but fails to toggle off.
@jineshpatel30 @rickysidhu_
Here is an experimental version (in the attachment of this reply), with launcher shortcut toggle and set on boot fixed.
The reason why it is experimental :
- Now written in kotlin
- Uses some of the new stuff announced in I/O 18, like ktx and the new material design style
- Uses different font called 'Acme'. (Feel free to suggest fonts)
- I decided to ditch cards because normal layouts look better in this new style.
Source - https://github.com/corphish/NightLight/tree/p
corphish said:
@[email protected]_
Here is an experimental version (in the attachment of this reply), with launcher shortcut toggle and set on boot fixed.
The reason why it is experimental :
- Now written in kotlin
- Uses some of the new stuff announced in I/O 18, like ktx and the new material design style
- Uses different font called 'Acme'. (Feel free to suggest fonts)
- I decided to ditch cards because normal layouts look better in this new style.
Source - https://github.com/corphish/NightLight/tree/p
Click to expand...
Click to collapse
It kicked in automagically at sunset tonight which reminded me to come back and comment. That was unreliable previously.
What does the save button do at the bottom? I assume it saves something, but there's no toast message to acknowledge it's been pressed.
I don't like the font, myself. Since you're going for new and fancy code and styling, why not use ProductSans? I like the new font used in the Wear OS app, I think that's it.
Could you add the numerical values for the sliders for more accurate fine tuning? I like the way the new XDA Navigation Gestures app does it. It's in the latest beta posted in the thread and should be pushed to the Play Store soon.
Since CF.lumen is EOL now, this app is going to be a great alternative especially when it eventually breaks.
Thank you!
Sent from my Nexus 6P using XDA Labs

[MOD][Kernel] K-Lapse : A kernel-level livedisplay module [GPLv2]

{
"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"
}
K-Lapse : A kernel level livedisplay module
​
Intro - What is K-Lapse?
Kernel-based Lapse ("K-Lapse") is a linear RGB scaling module that 'shifts' RGB based on time (of the day/selected by the user), or (since v2.0) brightness. This concept is inspired by LineageOS (formerly known as 'CyanogenMod') ROM's feature "Livedisplay" which also changes the display settings (RGB, hue, temperature, etc) based on time. This is very very similar to f.lux for desktop too.
Why did I decide to make this? (A short story)
I (personally) am a big fan of the Livedisplay feature found on LineageOS. I used it every single day, since Android Lollipop. Starting from Android Nougat, a native night mode solution was added to AOSP and it felt like Livedisplay was still way superior, thanks to its various options (you could say it spoiled me, sure). I also maintained a kernel (Venom kernel) for the device I was using at that time. It was all good until the OEM dropped support for the device at Android M, and XDA being XDA, was already working on N ROMs. The issue was, these ROMs weren't LineageOS or based on it, so Livedisplay was... gone. I decided I'll try to bring that feature to every other ROM. How would I do that? Of course! The kernel! It worked on every single ROM, it was the key! I started to work on it ASAP and here it is, up on GitHub, licensed under GPL (check klapse.c), open to everyone
How does it work?
Think of it like a fancy night mode, but not really. Klapse is dependent on an RGB interface (like Gamma on MTK and KCAL on SD chipsets). In mode 1, it fetches time from the kernel, converts it to local time, and selects and RGB set based on the time. The result is really smooth shifting of RGB over time. Mode 2 uses the current brightness level to scale RGB, with the concept behind it being that lower brightness usually implies a dark environment, so a slight color temperature shift should help with eye strain.
There's also an option for a "brightness factor" that can reduce your brightness down to 80% below the minimum brightness that your phone allows. The catch is, it doesn't actually reduce the brightness, but rather uses a clever trick to fade away the RGB of the screen by the same amount so it "appears" to be lower brightness.
How does it really work (dev)?
Klapse mode 1 (time-based scaling) uses a method void klapse_pulse(unsigned long data) that should ideally be called every minute. This is done using a kernel timer, that is asynchronous so it should be handled with care, which I did. The pulse function fetches the current time and makes calculations based on the current hour and the values of the tunables listed down below.
Klapse mode 2 (brightness-based scaling) uses a method void set_rgb_slider(<type> bl_lvl) where type is the data type of the brightness level used in your kernel source. (OnePlus 6 uses u32 data type for bl_lvl) set_rgb_slider needs to be called/injected inside a function that sets brightness for your device. (OnePlus 6 uses dsi_panel.c for that, check out the diff for that file in op6 branch)
What all stuff can it do?
Emulate night mode with the proper RGB settings
Smoothly scale from one set of RGB to another set of RGB in integral intervals over time.
Reduce perceived brightness using brightness_factor by reducing the amount of color on screen. Allows lower apparent brightness than system permits.
Scale RGB based on brightness of display (low brightness usually implies a dark environment, where yellowness is probably useful).
Automate the perceived brightness independent of whether klapse is enabled, using its own set of start and stop hours.
Theoretically more efficient, faster by residing inside the kernel instead of having to use the HWC HAL like android's night mode. This is unproven and probably has no practical significance.
(On older devices) Reduce stuttering or frame lags caused by native night mode.
An easier solution against overlay-based apps that run as service in userspace/Android and sometimes block apps asking for permissions.
Give you a Livedisplay alternative if it doesn't work in your ROM.
Impress your crush so you can get a date (Hey, don't forget to credit me if it works).
Alright, so this is a replacement for night mode?
NO! Kinda, but no. Lemme explain. One can say this is an alternative for LineageOS' Livedisplay, but inside a kernel. Night mode is a sub-function of both Livedisplay and KLapse. Most comparisons here were made with night mode because that's what an average user uses, and will relate to the most. There is absolutely no reason for your Android kernel to not have KLapse. Go ahead and add it or ask your kernel maintainer to. It's super-easy!
What can it NOT do (yet)?
Calculate scaling to the level of minutes, like "Start from 5:37pm till 7:19am". --TODO
Make coffee for you.
Fly you to the moon.
Get you a monthly subscription of free food, cereal and milk included.
I want more! Tell me what can I customize!
All these following tunables are found in their respective files in /sys/klapse/
Code:
1. enable_klapse : A switch to enable or disable klapse. Values : 0 = off, 1 = on (since v2.0, 2 = brightness-dependent mode)
2. klapse_start_hour : The hour at which klapse should start scaling the RGB values from daytime to target (see next points). Values : 0-23
3. klapse_stop_hour : The hour by which klapse should scale back the RGB values from target to daytime (see next points). Values : 0-23
4. daytime_r,g,b : The RGB set that must be used for all the time outside of start and stop hour range.
5. target_r,g,b : The RGB set that must be scaled towards for all the time inside of start and stop hour range.
6. klapse_scaling_rate : Controls how soon the RGB reaches from daytime to target inside of start and stop hour range. Once target is reached, it remains constant till fadeback_minutes (#13) before stop hour, where target RGB scales back to daytime RGB. (Pre-v4.2 value was a factor, now it is a minute value)
7. brightness_factor : From the name itself, this value has the ability to bend perception and make your display appear as if it is at a lesser brightness level than it actually is at. It works by reducing the RGB values by the same factor. Values : 2-10, (10 means accurate brightness, 5 means 50% of current brightness, you get it)
8. brightness_factor_auto : A switch that allows you to automatically set the brightness factor in a set time range. Value : 0 = off, 1 = on
9. brightness_factor_auto_start_hour : The hour at which brightness_factor should be applied. Works only if #8 is 1. Values : 0-23
10. brightness_factor_auto_stop_hour : The hour at which brightness_factor should be reverted to 10. Works only if #8 is 1. Values : 0-23
11. backlight_range : The brightness range within which klapse should scale from daytime to target_rgb. Works only if #1 is 2. Values : MIN_BRIGHTNESS-MAX_BRIGHTNESS
12. pulse_freq : The amount of milliseconds after which klapse_pulse is called. A more developer-targeted tunable. Only works when one or both of #1 and #8 are 1. Values : 1000-600000 (Represents 1sec to 10 minutes)
13. fadeback_minutes : The number of minutes before klapse_stop_hour when RGB should start going back to daytime_rgb. Only works when #1 is 1. Values : 0-minutes between #2 and #3
Impact on performance or battery...
Fortunately, as per practical testing there is absolutely no negative effect on performance or battery backup!
"I'm a kernel maintainer. How do I add it to my source?"
Note : I'm currently maintaining klapse for OnePlus6 (enchilada), using the snapshot branch.
The klapse.c file is pretty much generic, but depending on your device you may need to change some of the #define values
The klapse.h file should be edited in order to make the K_RED etc. defines point to the correct RGB interface variable. OnePlus 6 simply uses kcal_red, kcal_green and kcal_blue in sde. Some devices have a struct or pointers instead of a variable. Those devices must edit their kcal files to keep a copy of the address that klapse will access. An example of a source with struct-based kcal with klapse support is this: commit (thanks to @rupanshji for this commit)
The KCONFIG is pretty understandable too, but you may wanna remove the "DEPENDS" line for your device.
The Makefile is just one line, and so is enabling klapse in the defconfig.
Now you must change the file that provides the kcal/gamma (mtk) interface. Thanks to other developers, all I had to do on the OnePlus 6 was to remove the keyword "static" from the variable declaration.
Great work! Can I pay for your next meal?
I'm just a university CS student so sure, any amount is much appreciated! You can donate via PayPal here :
Donate
XDA:DevDB Information
K-Lapse, Kernel for all devices (see above for details)
Contributors
tanish2k09
Source Code: https://github.com/tanish2k09/KLapse-Livedisplay
Kernel Special Features: RGB shifting based on a context
Version Information
Status: Stable
Current Stable Version: 4.3
Stable Release Date: 2019-03-02
Created 2019-03-04
Last Updated 2019-03-19
TODO :
Add custom-minute support
Add full-smooth scaling algorithm that actually scales from node to node to make the shift smoother
Add a third "intelligent" mode that uses both time-based and brightness-based values to magically come up with an RGB set that's perfect for that environment
A grayscale feature, that maybe also would support a yellow tint over it, so it's like a grayscale night mode.
Telegram support?
Yeah yeah, I know. Telegram links are common now. In compliance with the xda rule of "Only one TG link per thread" that I saw on some other sub-forums, maybe a link would be fine but mods can remove it per will.
Here's the official klapse telegram group, with commit notifications too:
t.me/klapse or from within telegram you can just join klapse but with an @ in front of it (I didn't use it to prevent an unintended mention to some person)
Notes :
I'm open to any other contructive feedback or suggestions
Klapse doesn't conflict with night mode of Android. They both can work TOGETHER, the result would be an overlap of both their colors.
Credits :
I pretty much wrote all the code for k-lapse myself, but it would be useless without these awesome people who put it to use -
@pappschlumpf for getting k-lapse working for the first time on any snapdragon device, with Smurf kernel for OnePlus 6
@Eliminater74 for tips along the way, very helpful
@HolyAngel for a collab to add support to HolyDragon, and indirectly SkyDragon, and suggesting some tunable structuring
@rupanshji for the commit used for an example of a structured kcal implementation
@flar2 for debugging and adding k-lapse support to his app EX kernel manager, purchase the app here - EXKM
 @franciscofranco for adding k-lapse support to his app Franco Kernel Manager, purchase the app here - FKM
Screenshots
Screenshots from EXKM v4.04, Mixplorer and FKM v4.0 have been attached.
Note that these screenshots were taken while v4.3 was the active version. May change in future.
It's pretty common now
@apophis9283 Seeing you're one of the mods here, would you please be kind enough to delete the other 3 clones of this thread that got created due to XDA request failure?
Also, in case this thread is in the wrong sub-forum, please feel free to move it to the correct one but notify me via PM or email. Many thanks
Been using this on Smurf kernel for awhile now. Absolutely love it. Great job.
Glad your work is posted on XDA now works good in sky dragon.
Great alternative to night mode that does way more than that if you're interested in other features.
It's lightweight and won't bloat your system at all.
Any proper kernel should include this as there are only benefits and no drawbacks. 8)
As a last addition/compliment/support: it's been very well maintained and as you can tell just from reading OP, the dev is friendly and will help you if you have issues with it.
On Smurf kernel on op6. I have the gray scale option on digital wellbeing in the night and after switching on this mod (light mode) it automatically turns off the gray scale. Is it a bug?
akiwiz said:
On Smurf kernel on op6. I have the gray scale option on digital wellbeing in the night and after switching on this mod (light mode) it automatically turns off the grayscale. Is it a bug?
Click to expand...
Click to collapse
It is not a bug, it's actually expected behaviour.
First of all, we both know that the screen can't be both grayscale AND have a yellow tint at the same time, because yellow isn't gray.
Only one of them can stay active. The fact that klapse works from the kernelspace makes klapse more powerful. As soon as klapse refreshes, which happens every 30 seconds by default, the grayscale RGB will be overridden.
It also depends on how digital wellbeing's grayscale option works. I'm assuming it uses the same HWC HAL that android uses, but I have not the slightest clue. In case I'm right, both klapse and grayscale will work together to give you a black-n-white + slight yellow tinted screen.
As an alternative, how about I add grayscale as a feature to klapse itself? I can't add it to klapse right away but I can mark it in my TODO post above. Sounds good? Maybe I can come up with a solution that overlaps the grayscale with the yellow tint to create a grayscale night mode?
I don't know about you but it seems like an amazing idea to me
tanish2k09 said:
It is not a bug, it's actually expected behaviour.
First of all, we both know that the screen can't be both grayscale AND have a yellow tint at the same time, because yellow isn't gray.
Only one of them can stay active. The fact that klapse works from the kernelspace makes klapse more powerful. As soon as klapse refreshes, which happens every 30 seconds by default, the grayscale RGB will be overridden.
It also depends on how digital wellbeing's grayscale option works. I'm assuming it uses the same HWC HAL that android uses, but I have not the slightest clue. In case I'm right, both klapse and grayscale will work together to give you a black-n-white + slight yellow tinted screen.
As an alternative, how about I add grayscale as a feature to klapse itself? I can't add it to klapse right away but I can mark it in my TODO post above. Sounds good? Maybe I can come up with a solution that overlaps the grayscale with the yellow tint to create a grayscale night mode?
I don't know about you but it seems like an amazing idea to me
Click to expand...
Click to collapse
Thank you for the explanation ? is there a way I can switch off klapse at night when grey scale from digital wellbeing kicks in? Also your alternative would be ideal if it's possible in future! Thanks again
akiwiz said:
Thank you for the explanation ? is there a way I can switch off klapse at night when grey scale from digital wellbeing kicks in? Also your alternative would be ideal if it's possible in future! Thanks again
Click to expand...
Click to collapse
A tester just told me that klapse's yellow tint worked on gray-scale too.
But to answer your question, the only possible solution is to either disable Klapse or keep the schedule of start and stop outside the range of grayscale's schedule.
Btw I totally recommend you to use Klapse at night because yellow tint in the dark is better than grayscale to look at
tanish2k09 said:
A tester just told me that klapse's yellow tint worked on gray-scale too.
But to answer your question, the only possible solution is to either disable Klapse or keep the schedule of start and stop outside the range of grayscale's schedule.
Btw I totally recommend you to use Klapse at night because yellow tint in the dark is better than grayscale to look at
Click to expand...
Click to collapse
So I need EXM to set a schedule start?
akiwiz said:
So I need EXM to set a schedule start?
Click to expand...
Click to collapse
EXKM is one way. You can create your own tunables in Franco kernel manager too like. Here's a couple screenshots of an example.
You can use those same paths in kernel adiutor too. I haven't talked to the dev for klapse support yet, maybe I should but next weekend probably.
You can also use a file manager to change those files. Remember that pretty much everything in /sys is rebuilt during each boot so all values reset. That's why an apply-on-boot method is used for fixing values.
Info for which file does what is in OP.
This doesn't seem to work for me. OnePlus 6 with xXx NoLimits and Smurf Kernel. Latest stable versions for all. I have changed settings with EXKM and rebooted multiple times. /sys/klapse files accurately reflect the settings in EXKM. Setting K-Lapse alternately to time and light have failed to demonstrate any color changes as would be expected from the settings. I turned off the phone's night mode so that I can see more purely what K-Lapse does.
Thoughts?
maigre said:
This doesn't seem to work for me. OnePlus 6 with xXx NoLimits and Smurf Kernel. Latest stable versions for all. I have changed settings with EXKM and rebooted multiple times. /sys/klapse files accurately reflect the settings in EXKM. Setting K-Lapse alternately to time and light have failed to demonstrate any color changes as would be expected from the settings. I turned off the phone's night mode so that I can see more purely what K-Lapse does.
Thoughts?
Click to expand...
Click to collapse
I'm guessing you're using the wrong display calibration mode.
On the OnePlus 6 stock ROM it only works with custom and adaptive display modes in settings.
tanish2k09 said:
I'm guessing you're using the wrong display calibration mode.
On the OnePlus 6 stock ROM it only works with custom and adaptive display modes in settings.
Click to expand...
Click to collapse
That was it exactly. Thanks!
I can't find any settings for K-lapse in the latest EX Kernel Manager. I went through every section of the app. No K-lapse settings.
majikfox said:
I can't find any settings for K-lapse in the latest EX Kernel Manager. I went through every section of the app. No K-lapse settings.
Click to expand...
Click to collapse
Tools > Color Control > K-Lapse Settings
maigre said:
Tools > Color Control > K-Lapse Settings
Click to expand...
Click to collapse
Nope. Not there.
majikfox said:
I can't find any settings for K-lapse in the latest EX Kernel Manager. I went through every section of the app. No K-lapse settings.
Click to expand...
Click to collapse
I don't own EX kernel manager yet but I was given a v4.04 build to test, and it was under Graphics > Klapse-settings
They'll obviously only show up if the kernel supports it.
Also, some users reported that the update isn't live for them yet, so you may have to wait. That's not in my control either and flar2 handles EXKM.

Categories

Resources