[Lenovo A7000 ROMs, Kernels, Recoveries, & Other De] tanish2k09:
Kernel for Oreo :

https://goo.gl/8H7fks

(MM and Nougat kernel in previous post)

1) Livedisplay feature of lineageos ROMs now added in kernel. It works now on each and every ROM which supports venom. As always, this is also fully customisable. This feature is a one-time turn-on-and-forget feature.

Info about LineageOS's Livedisplay :

This feature (when set to automatic) will reduce Blue light in display and give the screen a "yellow" look.

This is similar to night mode, but there's a very significant difference.

Night mode goes to yellow instantly, whereas Livedisplay progresses the yellow shift smoothly as the day goes on .

During day, the screen is normal. As evening approaches, the screen starts to become slightly yellow.

From evening to night the yellow colour keeps increasing/deepening.

From night time to morning it will remain yellow, and then finally at early morning the yellow fades away and returns to normal colour.

This feature is extremely useful for people who spend more time looking at the phone's screen.

What's the drawback of LineageOS's Livedisplay feature?

1) It's found only on LineageOS-based ROMs.
2) You cannot customise the time limits of yellowness. It is calculated according to sunset and sunrise only.

What's benefits of the kernel level RGBlapse?

1) It will work on any ROM which has this kernel installed (Even vibe, MIUI, aosp, aex and other non-lineage based ROMs) (Works even with LOS-based ROMs but conflicts with it's ROM-level Livedisplay)
2) You can customise EVERYTHING used to calculate RGB values. If you have a night shift duty, you can even change the time accordingly.
3) Protects your eyes from blue light in evening of course. Blue light disrupts sleeping ability. With yellow light, you can use phone until late nights without compromising sleep.
4) Fully automatic, you don't even need to change anything other than the on/off switch.

Can you show what it looks like?

Sure! Here's the video of kernel-level livedisplay in action (the ROM livedisplay was turned off in video)
[Url]https://goo.gl/BW9nif[/Url]

How to use Kernel-level livedisplay?

There are two ways. One is very user-friendly where you just have to flash a zip. Other is to enable from kernel adiutor.

Note : Enabling kernel-level livedisplay is NOT recommended on lineageOS-based ROMs which have their own livedisplay support in settings->display->livedisplay. Some of those ROMs are RR,AICP,LOS. Livedisplay of RR6.0.0 is not working currently so you can enable from kernel.

Note : Enabling kernel-level livedisplay is HIGHLY recommended on vibe,MIUI,other skin ROMs and all aosp-based ROMs. Some of those are AEX,CARBON,AOSP,AOSPA.

Flashable zip to enable Kernel-livedisplay by default during boot (using script. Works only with venom) :

1) Flash latest venom kernel
2) Flash the zip from this link : [url]https://goo.gl/LMif8n[/url]

Kernel adiutor method :

1) Boot your ROM with this kernel first obviously.
2) Open a kernel-tuning app like "kernel adiutor" (Btw I'm working with a fellow developer on an app made specifically for Venom. It might be complete after April due to exams)
3) Go to CPU section
4) Make sure the governor is set to Poison.
5) Open poison tunables
6) Find "force_livedisplay".
7) It is default 0 (meaning off). Changing it to 1 will enable livedisplay in your ROM.
8) If you are using lineageos-based roms (like Los, RR, AICP etc) then please keep it to 0.
9) If you are not using lineageos-based ROMs, it is VERY HIGHLY recommended to change force_livedisplay to 1.

How to customise livedisplay :

List of tunables in poison for livedisplay :

1) force_livedisplay : Can be 0 or 1. Making it 1 will enable kernel-level livedisplay. Default 0, not recommended for use on Lineage-Based ROMs because they have their own livedisplay feature. Highly recommended for non-lineage-based ROMs like aex,Omni, carbon, aosp etc.

2) livedisplay_start_hour : When to start livedisplay yellowing? Takes input from 0 to 23, which represents the start hour of day in 24-hour format.

3) livedisplay_stop_hour : When to return to daytime colour and remove yellowing? Takes input from 0 to 23, which represents the stop hour of day in 24-hour format.

4) daytime_r, _g, and _b : This is the RGB values which will be used when livedisplay is not yet started. Reducing b will give a yellow-green shade of screen.

5) target_r, _g and _b : This is the RGB values which will be finally achieved. It is the final yellowness.

6) livedisplay_aggression : This is the multiplicative factor which determines how fast target_rgb will be achieved. More value means faster scaling to target_rgb.

2) Brightness dimmer is now added into kernel which works at GPU level to reduce the brightness by upto one-tenth of current brightness.

You may be thinking that what is the use of it when so many brightness reducing overlay apps already exist in playstore...

Here's a simple answer :

1) Overlays flicker when they are applied above navbar and status bar. GPU-level has no issue.
2) You can't do specific things like installing apps, or taking screenshots when an overlay is active. GPU-Level has no issues with that.
3) Imagine you're up late at night and chatting with your friend or someone and you want to send him a screenshot... When overlay is enabled, it applies a dark film over the screen which is captured in screenshot, and this makes it impossible to view the screenshot properly. You can try yourself. Install a darkening app and enable it's overlay then take a screenshot and then disable the overlay. Go to gallery and view the screenshot. It will be darker.
4) Sometimes some overlay apps temporarily turn off when screenshot is taken... This suddenly increased the brightness level which is harmful for your eyes in the dark.

How to enable brightness dimmer :

Tuneable in Poison for brightness dimming :

[B]Note : Needs force_livedisplay to be 1.

1) brightness_lvl : It can take values from 10 to 3. The value 10 means the current brightness is normal. The value 3 will reduce the brightness to 30% of current brightness.

3) This build is SUPERHYBRID.

It has all the variants in a single kernel.

Here is what you can choose

1) dt2w on off

2) t2s on off

3) swipe2wake on or off (kernel adiutor shows it like sweep2wake)

4) purebattery gestureless mode.

How to choose :

For disabling dt2w, go to wake section in kernel adiutor and disable from there.
Swipe2wake can also be changed from there.

For disabling trace2sleep, go to poison tunables and change "enable_trace2sleep" to 0.

To disable every gesture and turn off touch detection in sleep and to enable purebattery mode, go to Poison tuneables and change "force_disable_gestures_HARD" to 1. This changes the kernel to act like gestureless build.

4) A couple bugs have been fixed in dt2w.

5) T2s has been upgraded to v2 and a bug has been fixed...

Bug/Glitch that was present earlier:

There was an unintended behaviour in the gesture which was that if you tap on one bottom corner and then tap on other bottom corner while holding previous one, the screen would still sleep because the code only checks for detection trigger at one corner and power trigger at other corner.

Here's what new :

New value for the tunable "enable_trace2sleep"

Values :
0 - Disables trace2sleep
1 - Enables trace2sleep but makes sure tapping on both corners (like while typing) doesn't accidentally trigger it
2 - Enables trace2sleep but also works when both corners are tapped simultaneously. This is much faster but more accidental usually while typing.

Default value is 1.

6) Kernel Samepage merging (KSM) enabled. It reduces RAM consumption for the same amount of workload. Win-win situation. Increases performance, no effect on BB.

7) Poison has been optimised for much better BB even with gestures build.

8) Pocket mode override values have been increased to reduce accidental wakeup further. Number of taps is now 4 for override, and the time allowed is 550milliseconds. Can you tap that fast? Not accidentally.

9) Fast charging works in offline charging, recovery and android also by default. You get the max charging speeds in all the modes.

10) Wireguard support added in kernel

11) Init.d support added and used script to apply KSM values.

12) Bluetooth has been fixed.