• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[KERNEL]CleanSlate v4.7.3v2[rock stable/smooth] BLN|GPU|LED|KAD|Squeez [6Sep]

Search This thread


Recognized Developer
Oct 22, 2010
CleanSlate kernel
for HTC U11

The User Experience Kernel leaning towards Stock Stability plus UX features.
Rock stable stock approach, performance smooth and issue free

"No-Root is a State of Mind"


As always tbalden is here to bring you authentic new features first in line, to his heart's chosen phone, this year HTC U11. ;)

No rooting / tweak app needed for all functions and basic preference switches, keep your stock recovery, receive official OTAs:

Version 4.7.3 - 6 of Sep, 2020
Version 4.7.2 - 14 of June, 2020

Version 4.7.1 - 16 of Feb, 2020
Version 3.7.18 - 25 of September, 2018
Version 3.7.14 - 17 of March, 2018
Version 3.7.3 - 22 of December, 2017
Version 2.6.5 - 25 of November, 2017
Version 2.5.0 - 5 of November, 2017
Version 2.4.8 - 1 of November, 2017
Version 2.3.1 - 15 of October, 2017
Version 2.0.0 - 21 of September, 2017
Version 1.8.0 - 15 of September, 2017
Version 1.6.0 - 27 of August, 2017
Version 1.2.0 - 15 of July, 2017
Version 1.0.0 - 17 of June, 2017

Should work on ROM bases O 2.31 - N 1.27/1.28. Tested on 2.31 HK and 1.27 HK/Eu Dual Sim U11.

..--== Video guide: HERE ==--..


- Fingerprint doubletap sleep (see video below)
- Squeeze Control: *wake/sleep* *peek/keep* in-kernel without root (see video and set up screens here post)
- Squeeze Control: Squeeze To Swipe (see video below, details here)
- Button Light Notification / BLN on Charger and Dim blinking (see video below)
- Screen Backlight Dimming
- K.AdAway adblocking browser and in-app, not YouTube DETAILS
- Kernel Ambient Display (see video below) DETAILS and HERE
- WireGuard VPN kernel support
- Smart Notification Control - detauls: HERE
- CleanSlate Companion app - included in installer v2.6.0+
- Unprivileged Configuration Interface - /sdcard/uci_user.cfg - no rooting needed for 99% of configs
- Flashlight Notification/Call blinking (see video below)
- Notification Booster on vibrating notifications when screen is off
- Pulsating notification led (see video below)
- Notification led blink while on charger (default off, check Config app)
- Notification led patterns (5 patterns)
- Vibrating Notification Reminder (DETAILS)
- Chromatic charging led (see image below) Continuously Shifting and Discrete colors option
- Button light / notification led brightness control
- Low light mode switch ( with screen off, press both volume keys short to switch.)
- Low light/vibration mode (press both volume keys long. DETAILS)
- Full light/Full vib mode switch (screen-off double press both VolKeys DETAILS to switch to Full light mode with Vib Notification Reminder on)
- KCAL Color Control (credit to @savoca)
- AdrenoBoost v2.2
- Button Light Notif doubleblink when detecting short vibrating notifications, BLN number/speed/intensity
- WLAN "non-vital" Wakelocks disabled (credit @franciscofranco)
- NTFS/ReadWrite
- Hacked texfat loading for all ROM bases to work with sdcard
- doesn't modify system partition. Androidpay should work on phones with stock system image

- no root required, use /sdcard/uci_user.cfg file to configure 99% of the features without rooting. If you need tweak apps (e.g. LeeDroid tweaks / EXKM) you'll need rooting!
- should pass safetynet with unlocked bootloader by itself (if not phone's not rooted or custom rom, then you still need Magisk Hide)
- built on top of kernel sources released on htcdev for Europe/Dual Sim
- built with standard toolchain for stability and efficiency
- kept stable, no tweakings, just features
- stable and reliable, keeping close to stock except addition of Usability features

KCal Color Control on HTC U11
Use CleanSlate config app for non-rooted configuration

Doubletap Fingerprint scanner to sleep:

Squeeze control:

Pulsating notification LED video:

Button Light Notification

Kernel Ambient Display

Flashlight notification

Chromatic gradient colors for battery percentages while charging..
Will gently pulse green when reaching 100%

- Unlocked HTC U11 with TWRP
-- Tested on European and HongKong HTC U11 (dual sim) model. Please report back about your device/model experience!
- BACKUP: make sure you backed up your original Boot partition in TWRP, before installing this! Installer only modifies BOOT (kernel zImage)

- INSTALL: Side load, or install the zip from your sdcard through TWRP
- Reboot.
--- If not using PlayStore Donation apps, then install CleanSlateCompanion-x.y.z.apk / CleanSlateConfig-x.y.z.apk from SDCARD (copied by installer if internal memory was mounted) Please grant Notification Access and the permission to read/write SDCard, read phone call status.
------ !! IF YOU UPDATED THE COMPANION APP, Don't forget to Open it again as well after update !!
--- use CS Configuration App to configure stuff without rooting

Companion application writes /sdcard/uci_sys.cfg to communicate with kernel, you'll find it there after first running the app, don't delete it.
--- instal kadaway flashables for adblocking, and after that set kadaway feature on in Configuration App : UX/Gesture&Extras/ K.Adaway ON

Known bugs:
- doesn't work well with PNPMod, please don't use them. Especially balanced mode can cause freezes.
- None, please tell


PIE 4.7.3v2 -- For Bases 3.x installer for TWRP, NOT for Oreo/Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=8889791610682932485

OREO 3.7.18 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=1322778262904013418

Companion App 2.6.9 -- Donation premium version from PlayStore here:
Configuration App 2.14.2 -- Donation premium on playstore:
- additional features in premium app: App Themes, Profiles, Profile Switch QuickTiles

Companion App 2.6.9 -- Normal free download: https://www.androidfilehost.com/?fid=4349826312261804490
Configuration App 2.14.2 -- Normal free download: https://www.androidfilehost.com/?fid=8889791610682868176

K.AdAway flashables:
Ad/Malware blocking (contained in kernel installer too!): https://www.androidfilehost.com/?fid=673791459329067943
Ad/Malware/Pr0n blocking: https://www.androidfilehost.com/?fid=745849072291695400
Remove hosts file from boot partition (off): https://www.androidfilehost.com/?fid=962021903579499121

NOUGAT 2.6.8 -- For Bases 127/1.28 installer for TWRP, NOT for OREO:
Installer flashable: https://www.androidfilehost.com/?fid=817906626617952216

PIE 4.7.2 -- For Bases 3.x installer for TWRP, NOT for Oreo/Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=8889791610682869976
PIE 4.7.1 -- For Bases 3.x installer for TWRP, NOT for Oreo/Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=4349826312261724417
PIE 4.7.0 -- For Bases 3.x installer for TWRP, NOT for Oreo/Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=4349826312261613464
OREO 3.7.17 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=890278863836291333
OREO 3.7.16 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=962339331458993362
OREO 3.7.15 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=746163614322263964
OREO 3.7.14 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=673956719939828192
OREO 3.7.13 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=818070582850500535
Custom ROM - OREO 3.7.12v2 -- For Bases 2.31/2.42 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=673956719939825242

Stock/RUUed System/Stock boot Verity no-root OREO 3.7.12v2 -- For Bases 2.31/2.42 installer for TWRP:
Do not install over custom ROMs! https://www.androidfilehost.com/?fid=962187416754465914
Custom ROM - OREO 3.7.7 -- For Bases 2.31 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=889964283620776195
OREO 3.7.0 -- For Bases 2.31 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=889964283620772819
OREO 3.6.3 -- For Bases 2.31 installer for TWRP, NOT for Nougat:
Installer flashable: https://www.androidfilehost.com/?fid=889964283620772427
2.6.1 -- For Bases 127/1.28 installer for TWRP:
2.6.0v2 -- For Bases 127/1.28 installer for TWRP:
2.5.0 -- For Bases 127/1.28 installer for TWRP:
2.4.10 -- For Bases 127/1.28 installer for TWRP:
2.3.1v2-- For Bases 127/1.28 installer for TWRP:
2.2.1-- For Bases 1.03/1.11/1.13/1.16/127/1.28 installer for TWRP:
2.0.0 -- For Bases 1.03/1.11/1.13/1.16/127/1.28 installer for TWRP:
1.8.1 -- For Bases 1.03/1.11/1.13/1.16/127 installer for TWRP:
1.7.3 -- For Bases 1.03/1.11/1.13/1.16/127 installer for TWRP:
1.7.0 -- For Bases 1.03/1.11/1.13/1.16/127 installer for TWRP:
1.6.0 -- For Bases 1.03/1.11/1.13/1.16/127 installer for TWRP:
1.5.6 -- For Bases 1.03/1.11/1.13/1.16/1.27 installer for TWRP:
1.5.0 -- For Bases 1.03/1.11/1.13 installer for TWRP:
1.4.0 -- For Bases 1.03/1.11/1.13 installer for TWRP:
1.3.0 -- For Bases 1.03/1.11/1.13 installer for TWRP:
1.2.0 -- For Bases 1.03/1.11/1.13 installer for TWRP:
1.1.0 -- For Bases 1.03/1.11 installer for TWRP:
1.0.0 -- For Bases 1.03/? installer for TWRP:

If you need to change settings, use LeeDroid tweaks or EXKM, or check 2nd post for sysfs path using init.d scripts.

If you appreciate this, don't forget to hit the Thanks button, Vote 5 stars on Thread, or consider to Donate. Donations here
Thank you!

Donators Hall of Fame
Much appreciation and many thanks go to...
@The Great Dane
@purple patch
@ dieter
@ali nz
@turbo jjjang

Src: https://github.com/tbalden/htc-kernel-ocean

Special thanks to AnyKernel installer developer: osm0sis
To @savoca (original) @flar2 (m9 version) @faux123 (additional patches) related to KCal
To @Captain_Throwback

Sharing policy:
As this is all GPL licensed kernel source, you can use it in your code, but don't forget about proper credit.

XDA:DevDB Information
tbalden's CleanSlate kernel for HTC U11, Kernel for the HTC U11

Source Code: https://github.com/tbalden/htc-kernel-ocean

Kernel Special Features: Fingerprint double tap sleep, Color Control, LED tweaks

Version Information
Status: Stable
Current Stable Version: 4.7.3
Stable Release Date: 2020-09-06

Created 2017-06-17
Last Updated 2020-09-07
Last edited:


Recognized Developer
Oct 22, 2010
Set up, changing default settings
For newbies, let's start with basics.
1. This is a custom kernel, no additional applications included, and as such, does not change the UI, or add any additional menus for tweaking.
1.1 rootless, no tweak app, keeping Ota update possible guide here: https://forum.xda-developers.com/showpost.php?p=74341460&postcount=1237
2. If you want to change the possible options of the kernel (see below the Sysfs endpoints for the broad list of possibilities), you can simply use the /sdcard/uci_user.cfg file to set 99% of the CleanSlate kernel options. Just copy/rename the preinstalled sample file uci_user.cfg_sample to uci_user.cfg, Edit in a text editor, save it, and it's set!

2.a: Use CleanSlate Kernel Configuration app (see post 1) - all CS features covered, using UCI interface, without rooting!!

2.b: Optionally if you have root, you can use also a Kernel tweak app. For this I suggest to use either one of the following: LeeDroid Tweaks by @LeeDroid, EXKM by @flar2
3. two small exceptions is
---- how you can set up Squeeze Control, without a kernel tweak app. Read the following post about this: Squeeze control setup
---- how you can switch between Full light mode and Low light modes. Read here: Low light mode switch
4. Clarification about Squeeze Control vs. Edge Sense/Edge Sense plus. If you plan to use Squeeze Control of the kernel, you need to know that you will need to leave free the Short squeeze gesture to be taken over by Squeeze control. If you plan NOT to use Squeeze Control, either do NOT set it up in system Settings, or disable it in the chosen kernel tweak application.
5. If the given kernel setting detailed below in Sysfs settings, you can still add them to EXKM with custom settings added in Advanced settings of EXKM and specifying the sysfs paths.

Exkm sysfs settings, for easy import. Credit to @p50kombi

Release 3.7.0 - 17 dec 2017
- K.AdAway feature - adblocking easy, no-root, no-system mod, no magisk needed

Release 3.6.0/1/2 - 14 dec 2017
- Oreo update
- Color Control with CS Config App

Release 2.6.8 - 13 dec 2017
Release 2.6.6 - 11 dec 2017
- WireGuard alpha support
- minor fixes
- bundling zip with Configuration/Companion apps

Release configuration app 1.0.0 - 3 Dec 2017

Release 2.6.5 - 25 nov 2017
Notification whitelist fix with companion app
Release 2.6.4 - 24 Nov 2017
- notification revamp with companion app
- Kad interrupt with two finger gesture

Release 2.6.3 - 20 Nov 2017
- Screen off when phone put Face Down (default ON, optional)

Release 2.6.2 - 19 Nov 2017
- option to Flashlight notify only face down (default on)
--- /sys/class/leds/indicator/flash_only_face_down 1/0 (1 default)
- option to do Notif Vibration booster only in pocket -- do in proximity and NOT face down
--- /sys/fpf/boost_only_in_pocket 1/0 (1 default)
- adding logic to delay in-pocket blocked KAD and schedule KAD screen to the event of leaving proximity state. Will start KAD like if just triggered at that moment.
Keep your phone in your pocket, incoming notification won't start Ambient Display in the pocket/face-down/poach, but only when you pull it out.
--- /sys/fpf/kad_start_after_proximity_left 1/0 (1 default)

Release 2.6.1 - 18 Nov 2017
- critical UCI fixes

Release 2.6.0 - 15 Nov 2017
- CS companion app
- UCI configuration without rooting from internal memory (/sdcard/uci_user.cfg)
- many new features, configs, extras

Release 2.5.0 - 5 Nov 2017
- Smart Notif Control

Release 2.4.9 - 1 Nov 2017
- set bln_light_level to 20 (most dimmed setting) to fully turn off keys backlight (BLN will still work if you leave them on!). Thanks @jwong.hhf for bringing up the idea.
- fix issues with screen RGB calibration becoming too bright in some rare cases with Kernel Amibent Display
- fix issue with touches getting stuck in very rare cases when using Squeeze-To-Swipe and at the same time touching screen
- shorten KAD screen touch input readiness time, touch events will be working quicker after a three finger touch/squeeze event

Release 2.4.4 - 28 Oct 2017
- added vibration based alarm-clock screen-on detection to make sure alarm can work with KAD on.
- usb disconnect now should stop KAD correctly
- fixing Call problems with KAD (still Call needs to be with vibration to work with KAD!)
--- now if KAD is not active at the moment of call, the call should be okay even without.....
------ ....call vibration. Only issue remaining, active KAD screen will conflict with.....
------- .....calls without vibration.
- fix KAD on charger only mode + BLN on, and off the charger it was not blinking

Release 2.4.3 - 26 Oct 2017
- making grayscale to color restore instant (by emulation of small touchscreen events)
- adding KAD cancelling phone call detection based on vibration pattern (1000msec) - still no detection for calls without vibration.
---- without vibration for calls a call screen can conflict with KAD screen / input blocking
- fixing touch input issues with squeeze swipe / KAD touch wake, (should not stuck with active touch points)

Release 2.4.2 - 23 Oct 2017
KAD - three finger gesture / sysfs --> touch screen with 3 fingers, much safer for in-pocket situations than Fingerprint tap.
(FP input is now default blocked for this reason, and this 3 finger gesture is default on.)
------- /sys/fpf/kad_three_finger_gesture 1/0 (default 1) - interrupts KAD and wakes device
- add KAD setting: disable fingerprint input interruption / sysfs
------- /sys/fpf/kad_disable_fp_input (default 1) - blocking fingerprint tap input from waking fully on KAD screen. A fingerprint unlock still gets through
- faster color restore, almost instant (KAD kcal grayscale mask /squeeze peek kcal mask)
- fix touch input mess-up bug
Notifications Switch Control (new name for Low light switch :) ) :
- add very long volUp/Dn gesture to access LowLight/Vib with KAD mode

Release 2.4.1 - 23 Oct 2017
BLN/Notification LED fixes
KAD fixes

Release 2.4.0 - 21 Oct 2017
- Kernel Ambient Display
- notif booster voltage maxed up
- High light/vib switch binding with KAD

Release 2.3.1- 15 Oct 2017
Flashlight notification update:
- Battery optimizations, more deepsleep
- More consistent blinking (with additional alarmtimer based smp idle cpu wake for workqueue)
- Default delay between flashlight blinks is increased to 3 seconds, and the auto increasing of delay time is quicker, for less battery drain
- somewhat shortened blinking for battery saving

Release 2.3.0- 7 Oct 2017
- double VolUp+Down press for Full Light/Vib mode with
- Vibrating Notification Reminder feature
- WLAN non-vital wakelocks blocking
- Wakelock stats enabled with kernel debug fs

Release 2.2.1 - 29 Sep 2017
- fix too long buzz on long VolUp+Down press for Lowlight/vib mode

Release 2.2.0- 29 Sep 2017
- finalized Low light/low vib switch
- blueborne kernel patch

Release 2.1.1- 28 Sep 2017
- Low light switch
- Notification booster update/fixes

Release 2.1.0 - 27 Sep 2017
- Notification Booster feature for Vibration
- Squeeze Control - Squeeze2Swipe update! - revisiting the scrolling smoothness and additional goodies
- Adreno Boost v2.2 - merged from htc m10 cleanslate line
- Flashlight notification - in-kernel feature Updates, new parameters (haptic mode/dim mode/dim period)

Release 2.0.0 - 21 Sep 2017
- Update to htcdev sources base 1.28
Release 1.8.1 - 17 Sep 2017
- Flashlight notifications: more parameters, smaller concurrency fix

Release 1.8.0 - 15 Sep 2017
- New feature: flashlight notifiaction

Release 1.7.3 - 10 sep 2017
- Fingerprint Vib_strength -> is now tuning the Fingerprint unlock haptic feedback strength. Set it to 1 or 0 to have no vibration feedback
Release 1.7.2 - 7 sep 2017
- Bln Rgb led sync issue fix
Release 1.7.1 - 6 Sep 2017
- BLN/Notifiaction LED pulsating: more fluid transitions for blinking

Release 1.7.0 - 3 Sep 2017
- Squeeze2Swipe feature addition

Release 1.6.0 - 27 Aug 2017
- Squeeze2Peek/Keep feature addition
- fixing BLN bug accidental RGB led turning off rarely
- fixing squeeze_wake/sleep sysfs

Release 1.5.6 - 24 aug 2017
Stutter fix for 1.27 base

Release 1.5.5 - 21 aug 2017
Enhance squeeze2sleep/wake reliability

Release 1.5.4 - 19 aug 2017
Bugfix: squeeze to wake/sleep reliability fix,

Release 1.5.2 - 11 aug 2017
Bugfix: fixing squeeze power threshold setting bug, now it should work for all cases, if you set on Edge Sense settings to 1, Squeeze2Sleep/Wake should work now (Thanks @guidogsbn for reporting and providing so many log files, it helped a great deal!)

Release 1.5.1 - 10 aug 2017
- squeeze to sleep/ wake bound to activate when minimum squeeze power is set in stock Settings of EdgeSense
- fix some minor false positive with squeez functionality

Release 1.5.0 - 8 aug 2017
- squeeze to sleep/ wake
- fixes

Release 1.4.0
- Bln dim blink mode
- fixes

Release 1.3.0 - July 20
- BLN doubleblink notifications
- BLN parameters: number of blinks, speed, intensity

Release 1.2.0 - July 15
- Chromatic charging LED feature (ported my m10 code to u11 led driver)

Release 1.1.0 - June 21
- Button Light Notification
- Button Light Notification on charger triggered by notification vibration pattern

Release 1.0.0 - June 17
- Initial release
- Pulsating green notification LED

Sysfs paths for settings
sysfs: /sys/class/leds/indicator/
---- bln - 1/0 - BLN on/off
---- bln_no_charger - 1/0 - BLN on when not on charger
or only on charger based on vib pattern
---- bln_rgb_pulse - 1/0 - pulsating Green led
---- bln_rgb_batt_colored - 1/0 - Chromatic charging LED on/off
---- bln_pulse_rgb_pattern - 0-4 (normal/1plus5/triple/triple down/triple up)
---- bln_dim_blink - 0/1 - pulse Buttons after normal BLN number blinking was done
------- bln_dim_number - 0 infinite / 1-50 - number of dim blinks if bln_dim_blink = 1
---- bln_rgb_light_level - 0-20 (the lower value the brighter) notification led light dimmer
---- bln_light_level - 0-20 (the lower value the brighter) key buttons light dimmer
Flashlight notification:
-- bln_flash_blink - 0/1
-- bln_flash_blink_number - 0 (infinite) 1-50
-- bln_flash_blink_wait_sec - 1-10 delay in seconds between blinks
---- bln_flash_wait_inc - 1/0 increase/not increase delay with time
------ bln_flash_wait_inc_max - maximum plus in seconds of the delay, increased with time 1-8
----- bln_flash_haptic_mode 1/0 - 1 = flash only when DND is off (vibration notifications will trigger the blinking) ( default value: 1 )
----- bln_flash_dim_mode 2/1/0 - 2 = in dim mode do NOT flash at all, 1 = in dim mode flash half the brightness of the full flashing, 0 = no dimming ( default value: 1 )
----- bln_flash_dim_use_period 1/0 - 1 = switch to dim flash mode in a given period, 0 = no restriction for dimming, if you set it, it will be flashing dim regardless of current time ( default value: 1 )
--------- bln_flash_dim_period_start_hour 0-23 - start hour for dimmed flashing (default 22 (10PM))
--------- bln_flash_dim_period_end_hour 0-23 - end hour for dimmed flashing (default 6 (6AM))
notification booster:
--- /sys/fpf/notification_booster : 0 off, 1-100 value by which voltage will be multiplied (default 2) (maximum voltage ~3300mV)
vib. notification reminder:
/sys/class/leds/indicator/bln_vib_notification 1/0 (default 0 OFF)
/sys/class/leds/indicator/bln_vib_notification_slowness 5-30 (default 15, periodicity bound with flashlight notif)
/sys/class/leds/indicator/bln_vib_notification_length 1-500 (how many milliseconds to vibrate on each reminder, default 250)

Squeeze to wake sleep, to disable
/sys/fpf/squeeze_wake 0 and
/sys/fpf/squeeze_sleep 0
/sys/fpf/squeeze_peek : peek on/off 1/0
/sys/fpf/squeeze_peek_halfseconds : peek time 2-6 (default 4 -> 2 seconds peek time)
/sys/fpf/squeezee_max_power_level : 0-9 the maximum level of squeeze power that you can set in Edge Sense settings,
---------------------- where in-kernel Squeeze functionality will be enable. Set this level or below to enable it.
/sys/fpf/squeeze_swipe 1/0 (on - off)
/sys/fpf/squeeze_swipe_vibration 1/0 (on - off)

Fingerprint doubletap sleep / configurable Home button functionality
-- /sys/fpf/fpf -- Value 1 -> work simple HOME input button (configurable), Value 2 (default) - work as doubletap sleep without 3rd party apps, Value 0 - off, stock behavior
-- /sys/fpf/vib_strength -- set it to 0 to have no vibration, set about 20 for normal
-- /sys/fpf/fpf_dt_wait_period -- Values: min 0 max 9 , (default value without tweak app setting is 2 -> 90msec, 0 = 72msec... 9 = 146msec wait before press is interpreted as single press)

/sys/fpf/kad_on 1/0 (1) kad on or off at all? (This is overridden if you use High light/vibration mode (by double pressing volUp/Dn while screen is off))
/sys/fpf/kad_only_on_charger 1/0 (0) Should KAD happen only if phone is on charger?
/sys/fpf/kad_disable_touch_input 1/0 (1) Should touch input be disabled when AmbientDisplay is going on? Still tapping/pressing fingerprint or a short squeeze or pressing volume will keep screen on.
/sys/fpf/kad_repeat_period_sec 4-20 (8) time between firt repetition, and if multiplication set, this will be added newly to lengthen delay upon each repetition.
/sys/fpf/kad_repeat_times 1-10 (4) How many times to repeat the display
/sys/fpf/kad_halfseconds 5-20 (10) How long the display should show
/sys/fpf/kad_repeat_multiply_period 1/0 (1) Should the repeat period lengthened upon each repetition?
/sys/fpf/kad_kcal 1/0 (1) Should the grayscale high contrast coloring be applied when AmbientDisplay comes on?
/sys/fpf/squeeze_peek_kcal 1/0 (0) Should grayscale coloring be applied when squeeze peek (short squeeze gesture) happens?
/sys/fpf/kad_three_finger_gesture 1/0 (default 1) - interrupts KAD and wakes device with a three-finger touch gesture
/sys/fpf/kad_disable_fp_input (default 1) - blocking fingerprint tap input from waking fully on KAD screen. A fingerprint unlock still gets through

Smart Notif Control:
-- Default trim: 6 minutes
sysfs /sys/fpf/smart_trim_inactive_minutes 0 = off, 1... minutes
-- Default stop: 1 hour
sysfs /sys/fpf/smart_stop_inactive_minutes 0 = off, 1... minutes
-- Default hibernate: 4 hours
sysfs /sys/fpf/smart_hibernate_inactive_minutes 0 = off, 1... minutes
/sys/fpf/smart_silent_mode_stop=1 --. Use DND silent mode to switch to smart stop mode
/sys/fpf/smart_silent_mode_hibernate=0 - use DND silent mode to switch to smart hibernate mode

/sys/fpf/unlock_vib_strength configuration to enable setting of Unlock FP vibration strength (0-90)
/sys/fpf/kad_kcal_cont /sys/fpf/kad_kcal_val -- UCI: kad_kcal_cont and kad_kcal_val - set kcal filter greyscale values Contrast/Magic value
/sys/fpf/block_power_key_in_pocket (0 default / 1) off/on
/sys/fpf/phone_ring_in_silent_mode (0 default /1) off/on
/sys/class/leds/indicator/flash_only_face_down 1/0 (1 default)
--- /sys/fpf/boost_only_in_pocket 1/0 (1 default)
--- /sys/fpf/kad_start_after_proximity_left 1/0 (1 default)
/sys/fpf/face_down_screen_off (default 1 on, 0 = off)
Last edited:


Recognized Developer
Oct 22, 2010
Confirmed working on Sprint, running Magisk/Venom.
Thank you!
Thanks for the feedback. Going to add to details

Good times, missed pulsating LED and KCAL control from HTC 10)
Great to have this new device, easy decision to upgrade and do some kernel stuff again.
Led driver was replaced with something much more cryptic to program, so it's going to be a challenge to deliver all led stuff on the u11

nice tbalden, happy you're developing too :)

any idea if you're going to implement EAS?
The idea of this kernel is to leave the core intact unless there's some really good reason to change it, like it was with the HTC m10 where the gpu is too much throttled by default. So far I see no need for changes like that to the core.

To tell the truth, HTC did a very good job again this year, so it takes some time to figure out what user experience feature is worth adding at all...
And that's a good thing IMHO :)


Recognized Developer
Oct 22, 2010
So here we stand now... A few things done, a few things left, but now this demo video shows a little something.
Button light notification turns on when phone is charging and notification vibration is enabled. Detecting event from vibration pattern and charge state :)
So you don't have to turn on phone to check if there's any new notification while it's on charger


Top Liked Posts