Remove All Ads from XDA

[KERNEL] [Jan 28] [Sense][GPE] Hypernova_2.0.3-Mallow && Flar-Port_6.03.3-Mallow

3,835 posts
Thanks Meter: 2,443
Post Reply Email Thread

HTC One M8_WL Sense Kernel
(All Variants)

This kernel has been

Kernel Features
Latest Pre-Release optimized -O3 linaro 4.9.3 toolchain
Easy installation with Aroma installer - Special thanks to flar2
gboost for enhanced gaming performance
choose voltage profile in installer
full user voltage control
underclock CPU or GPU
i/o schedulers: FIOPS, SIO, CFQ, NOOP, ROW, deadline
optional sweep2sleep
Optional custom wake gestures (no motion required!)
Optional pocket detection (with custom wake gestures)
Option to disable volume button wakes camera (with custom wake gestures)
High Definition Audio capability
Optional USB fastcharge
Option to reduce vibration strength
Remove /system write protection
NTFS r/w, CIFS, exFAT support
Option to disable fsync
Option to disable magnetic cover
/dev/frandom support
Color control
DriveDroid support
Stereo call recording
Unified dtb's to make work with all variants (Thanks captain_throwback)

Kernel Features
FEATURES - Hypernova
Latest Pre-Release optimized -O3 linaro 4.9.3 toolchain
Everything from flar2's amazing kernel (Gboost removed in favor of interactive and hotplug cpu control. Not necessary with this setup)
Franco's mako_hotplug
*cpu-boost* (Removed currently)
Franco's enhanced interactive governor set to default (Tweaked settings thanks to Dan)
NTFS support
Many other enhancements not normally added to sense kernels that I've seen

1. Install zip from recovery
2. Follow the instructions, if you don't know what to do, use the pre-selected options
3. Wipe cache/dalvik cache
4. Reboot

It is recommended to disable or increase the screen timeout in TWRP recovery. If the screen timeout is enabled in TWRP, there may be a black screen after exiting the Aroma installer. This is nothing to worry about. Simply hold power and volume down and volume up buttons until it reboots. The installation will be fine. If things get stuck in aroma, simply do this reboot method and immediately hold down to get to bootloader mode, then select recovery and start from the beginning.

Donate to franciscofranco!
A lot of this is thanks to franciscofranco’s commits, so donate to him!

Donate to Flar2!
A lot of this is thanks to flar2’s commits, so donate to him!

Here’s mine if you would like to donate to me specifically


Sense 5.0.1 & 5.0.2

GPE 6.0

ElementalX Configuration File
Your choices in the Aroma installer are used to build a configuration file. The config file is located at /etc/elementalx.conf. You can edit this file to change kernel settings. Whatever is set in this file will take effect when the device is booted (unless other scripts or apps interfere!)

If settings are not sticking:[*]Make sure you have busybox installed correctly and updated to the latest version[*]Make sure the file permissions for /etc/init.d/99elementalx or 99msx are set to execute.[*]Check to see if any /etc/init.d scripts or apps (such as Kernel Tuner or TricksterMod) are interfering with your settings.

ElementalX Log File
Every boot, a log file is created at /data/local/tmp/elementalx-kernel.log or msx-kernel.log. This file shows the date and time and all settings that have been applied. Use this to verify and troubleshoot configuration options. Also, in this file is your devices PVS number. Please refer to the links down below as to what the heck the PVS means. Helps with troubleshooting OC/voltage related reboots device specific. Not all devices were created equal!

Overclocking is optional. The installer lets you choose the maximum frequency. Whatever frequencies you chose in the installer will be set at boot for each CPU. Not all devices can handle overclocking. I don't recommend overclocking, this device is fast enough. If you overclock, the CPU frequency will likely be throttled due to heat. I recommend the stock frequencies, as this device is plenty fast.

CPU voltages
The installer allows you to choose from several undervolting options: stock, -15mV, -30mV, or -45mV. This only undervolts the lowest frequency, which happens to be the frequency used the most, and this is safer. Be careful, lowering voltages can cause instability.

gboost enhances gaming performance by giving a slight boost to cpu frequencies when the graphics load is high (e.g. while gaming). It should have no effect on battery life during regular usage, so it's safe to leave it enabled all the time.

fsync can be disabled if you're looking for the last ounce of performance. I recommend leaving it enabled as there is a slight risk of data loss if your phone shuts off unexpectedly before filesystems are synced.

Installing a new ROM
If you install a new ROM, it will probably replace this with the stock kernel and will definitely overwrite /etc/init.d/99elementalx and /etc/elementalx.conf so you will lose your settings and certain features. So always reinstall the kernel after installing a ROM.

Sweep2sleep allows you to put your device to sleep by swiping right to left across the bottom of the screen where the back, home, recent buttons are. I find this useful since the stock motion gestures do not provide a good way to turn off the screen.


0= disabled
1= sweep2sleep right enabled
2= sweep2sleep left enabled
3= sweep2sleep left and right enabled

USB fastcharge
USB fastcharge is optional. This will allow you to charge at a faster rate when connected to a USB port. The default limit for USB ports is 500ma, this increases it to 1100ma. Be sure that the computer/laptop/whatever you are plugged into can handle it. Some will automatically cap it at 500ma. Please note that this does not force AC charge mode like previous implementations of force fastcharge. Your battery setting will still say USB mode. You can edit /etc/elementalx.conf to change the setting on boot.

Wake Gestures
There are three modes

Mode 1: Stock Motion Launch Gestures
For stock motion launch gestures, /sys/android_touch/wake_gestures, /sys/android_touch/sweep2wake and /sys/android_touch/doubletap2wake must all be set to 0. Enabling any of these overrides the stock gestures. Obviously Motion Launch Gestures must be enabled in the system settings.

Mode 2: Remove motion requirement
For this, you must set /sys/android_touch/wake_gestures to 1 and enable at least one gesture in /sys/android_touch/sweep2wake or /sys/android_touch/doubletap2wake and Motion Launch Gestures must be enabled in system settings. In this mode, when you sweep or doubletap, the appropriate input events are generated and acted upon the EasyAccessService (i.e., the system app that handles gesture actions).

Mode 3: Traditional S2W/DT2W
In this mode, wake gestures and actions are handled entirely by the kernel. The gestures will turn on the screen and that's it. For this, you must set /sys/android_touch/wake_gestures to 0 and enable at least one gesture in /sys/android_touch/sweep2wake or /sys/android_touch/doubletap2wake. It doesn't matter if Motion Launch Gestures is enabled or disabled in system settings, the gestures don't interact with it in this mode.

For modes 2 and 3, there are several options.
Sweep right......1
Sweep left........2
Sweep up.........4
Sweep down.....8

Add up the values for each gesture you want to enable and put the total in /sys/android_touch/sweep2wake. For example, to enable all gestures, the value is 15 (1+2+4+8). To enable sweep right, sweep left and sweep up, the value is 7 (1+2+4)

Set /sys/android_touch/doubletap2wake to 1 to enable DT2W, and set to 0 to disable it.

Pocket Detection
Set /sys/android_touch/pocket_detect to 1 to enable pocket detection, and set to 0 to disable it. Pocket detection is experimental right now, I'd say it's about 90% functional, but there is an occasional bug where it either doesn't work or works too well.

Vibration Strength
Haptic feedback can be enabled for the wake gestures in /sys/android_touch/vib_strength. This setting takes a number between 0 and 60. Default is 20, which is the same vibration as the stock gestures. Setting this to 0 disables haptic feedback.


.................................................. ........................................

XDA: DevDB Information
MassStashed-m8whl, Kernel for the HTC One (M8WHL)


Version Information for FlarPort
Status: Solid as ****
Current Stable Version: 6.03.3 & 4.04 & 3.04
Stable Release Date: 01-28-2016

Version Information for Hypernova (mako_hotplug)
Status: Solid as ****
Current Stable Version: 2.0.3
Stable Release Date: 01-28-2016

Created 06-20-2014
Last Updated 01-28-2016
The Following 26 Users Say Thank You to MassStash For This Useful Post: [ View ] Gift MassStash Ad-Free
12th September 2014, 09:46 PM |#2  
Zee Changelog
CHANGELOG (Cliff-Notes) Here's a GDoc for Latest

If this is first time flashing these updated packaged kernels, please dirty or full wipe flash the rom you’re on, let it boot to system, then reboot to twrp and flash one of these kernels. Also recommneded to flash ROM’s boot.img or just dirty flash if switching between these kernels.
Feb 27, 2015 - Lollipop
All compiled with latest linaro 4.9.3 prerelease toolchain and are all also packaged with anykernel method to allow for zImage and dt.img injection into rom’s stock boot.img, thus keeping ramdisk with any specific optimizations made for that exact rom. Also anykernel script now used to inject kernel settings script, formerly referred to as init script, into ramdisk to be loaded without need for init.d, and thus no need for setting selinux to permissive (Thanks Flar2).

May 30, 2015
Hypernova 1.5.1
GPE 5.1 & Sense 5.0.2
Add f2fs support …
Add support for M8TL
arm: crypto: Add optimized SHA-256/224 …
fs/namei.c: fix potential memory leak in path_lookupat …
sched/nohz: Fix rq->cpu_load[] calculations …
sched/fair: Let minimally loaded cpu balance the group …
input: touchboost: conservative samples every 10ms, no point in limit… …
ASoC: msm: Correct RTAC mutex lock …
cpuidle: remove cross-cpu IPI by new latency request. …
cpufreq: Break out early if freq equals to target_freq …
cpufreq: conservative: don't tear up sysfs and governor dirs to preve…
cpufreq: conservative: make the code a little bit prettier …
cpufreq: conservative: add input_boost_freq and input_boost_duration …
cpufreq: conservative: how did this end up here?
cpufreq: conservative: add sane input_boost and duration values …
cpufreq: conservative: notify the policy of the current load …
cpufreq: conservative: add micro idle accounting and touch boost support …
Update lz4 …
msm: slimbus: use interruptible wait to reduce system's load average …
ASoC: msm: audio-effects: Check for array index …
ARM: arch_timer: add support to configure and enable event stream …
ARM/ARM64: arch_timer: add macros for bits in control register …
tick: don't update idle time if cpu offline …
mako_hotplug: don't use PAGE_SIZE for snprintf …
mako_hotplug: don't offline cores if the load at that sample is above… …
arm: msm8974: enable Motorola's enhanced memory routines …
Update to dev branch of lz4 …
Update to vzw lolli dts …
Update dts for m8 to 5.0.1. DUG and WL still 4.4.4. …

GPE - 3.04
Flar’s ElementalX updates
Sense - 4.04
All previously commits in changelog ported to new 5.0.1 base
selinux: Report permissive mode in avc: denied messages
KCAL update
GPE - 1.4.3
Based on flar2’s GPE
Added all commit’s from sense hypernova to date (see directly below)
Sense - 1.4.3
All 5.0.1 updates from elementalx
SoC: msm: Add Buffer overflow check
KEYS: close race between key lookup and freeing
msm: pm: Notify secure code of L2 power mode from last core only
sched: Implement smarter wake-affine logic
Fix nr_exclusive tasks which lead to ... Avoid spurious wakeup IPIs
sched: Fix inaccurate accounting for real-time task
arm: lib: Fix makefile bug
msm: memutils: memcpy, memmove, copy_page optimization
selinux: conditionally reschedule in hashtab_insert while loading sel…
selinux: conditionally reschedule in mls_convert_context while loadin…
selinux: no recursive read_lock of policy_rwlock in security_genfs_sid()
selinux: fix a possible memory leak in cond_read_node()
selinux: simple cleanup for cond_read_node()
selinux: fix inode security list corruption
qseecom: Save appname in qseecom when loading app by kernel client
arm: arch_timer: add arch_counter_set_user_access
mako_hotplug: remove screen off frequency cap and other optimizations
sched, smp: Correctly deal with nested sleeps
smpboot: Add missing get_online_cpus() … in sysfs
cpufreq: let's remove cpu-boost for now
input: add a generic touch input notifier
EXPERIMENTAL: mako_hotplug: make cpu2 and cpu3 less nervous

Dec 17, 2014
Added some awesome updates to hotplug and interactive from franco

Dec 15, 2014
All compiled with latest linaro 4.9.3 prerelease toolchain and are all also packaged with anykernel method to allow for zImage and dt.img injection into rom’s stock boot.img, thus keeping ramdisk with any specific optimizations made for that exact rom.

Add all variant dtb’s from capt
Added high perf audio and set to default on
Add all variant dtb’s from capt
NTFS support
Couple lz4 compression updates
Based on flar2’s GPE
Added all commit’s from sense hypernova to date (see directly below)
Couple updates to mako_hotplug, cpu-boost, and interactive governor
Couple lz4 compression updates
Enhance power efficiency patches
Fix bad hashing of dentries
Add support to validate pixel extension calculations
New relation for freq selection

Nov 17, 2014
Port all commit’s from flar2’s 4.4.4 ElementalX kernel to make new 4.4.4 MassStashed Flar Port

Started with 4.4.4 Flar Port and then ported all commit’s I got from Franco’s One Plus One kernel to new 4.4.4 Hypernova kernel.
Added prima wlan module to compile with kernel from lypota, from htc source
Updates to wlan module
Updates to mako_hotplug
Added unified DTB from captain_throwback for vzw and gsm/intl support build in one zImage. Still need proper zip because I chose to use repack each with their specific ramdisk as opposed to using anyernel for now. Will look into anykernel at a later date for a one zip for all solution. Thank you captain for introducing me to anykernel method.
Added NTFS support

Oct 10, 2014
Enable compatibility with all M8 variants
wcd9320: Enable class AB mode, AKA high perf audio headset mode, be d…
high perf audio - fixed m8 incompatible
sound high perf - clean code
Update defconfig with version number
added high perfomance sound
wake_gestures: re-enable proximity sensor after phone call end and sc…
backlight_dimmer: give two dimmer options and create sysfs node
Revert "i2c: reduce remaining clocks"
i2c: reduce remaining clocks
Revert "Add backlight dimmer option"

Sep 15, 2014
Update aroma for brightness compatibility

Sep 14, 2014
Add backlight dimmer option
Sound Control: add line gain to cached and register lock …

Sep 12, 2014
kexec-hardboot: based on @Tasssadar
msm-sleeper: add ex_max_freq interface
Bump scripts for building with 2014.08 linaro 4.9.2

Aug 26, 2014
msm: Fix high load average from uninterruptible waits
GPU: start at 200MHz instead of 320MHz
Net/l2tp: don't fall back on UDP [get|set]sockopt
Update defconfig
MHL adapter fix from HTC
Charger updates from HTC

Aug 10, 2014
Update to Venom Int Ramdisk for packaging kernels to not break root and init.d on int based ROM

Aug 01, 2014
Update Stockish to 4.4.3 source
Update FlarPort to latest 1.0.0 ElementalX 4.4.3 | Most everything from 4.4.2 has been brought over

Jun 24, 2014
Fix touch in aroma installer - Gigantic thanks to badseed team for the fixed binary, and capt for bringing this to my attention

Jun 21, 2014 - MassStashedX_v0.19.1
Fix implicit declaration of function ‘wait_for_completion_io_timeout’… …
Switch baconMaker to elementalx_defconfig

Jun 20, 2014
Revert "cpuidle: Quickly notice prediction failure in general case" …
Revert "cpuidle: Get typical recent sleep interval" …
Revert "cpuidle: Fix finding state with min power_usage" …
Revert "cpuidle: remove the power_specified field in the driver" …
media-device: fix infoleak in ioctl media_enum_entities() …
futex: Make lookup_pi_state more robust …
futex: Always cleanup owner tid in unlock_pi …
futex: Validate atomic acquisition in futex_lock_pi_atomic() …
futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == u… …
futex: Add another early deadlock detection check …
futex: Prevent attaching to kernel threads …
Update cwmcusensor
Wake Gestures: fix dot view mode
stereo call recording support …
msm: kgsl: Fix nice level for higher priority GPU start thread …
arm: lz4: faster boot-up process. …
lz4: fix compression/decompression signedness mismatch …
lib/lz4: correct the LZ4 license …
crypto: add lz4 Cryptographic API …
lib: add lz4 compressor module …
arm: add support for LZ4-compressed kernel …
lib: add support for LZ4-compressed kernel …
decompressor: add LZ4 decompressor module …
DRIVERS: SLIMBUS: some more tweaks, which is double what we had befor… …
Wake Gestures: add proximity enabled flag
Wake Gestures: debugging messages
Wake Gestures: increase boot delay, add timeout to sweeps, fix irq en… …
Wake Gestures: add boot time delay for proper initialization of sensors
Wake Gestures: option to disable volume buttons launch camera in land… …

Jun 20, 2014
Wake Gestures: fix typo
Wake Gestures: more fixes for pocket detection, mcu initialization an… …
Wake Gestures: fix custom gestures in dot view mode
Wake Gestures: various improvements and fixes
DRIVERS: SLIMBUS: slimbus enhancements mkII …
Wake Gestures: Allow customization of the screen wake gestures on HTC… …
Downgrade CIFS …
GCC 4.9.1: fix compile warnings
GCC 4.9: fix compile warning …
cpufreq: interactive: fix compiling warnings …
Adjust some voltages
Set up underclocking and overclocking
Disable magnetic cover event
Change auto undervolting to use min freq only and adjust oc voltages …
Adjust min and max voltage limits …
msm: clock-krait-8974: User voltage control for msm-cpufreq device …
Add gboost
Bump overclocking voltages a bit
[qpnp-vibrator] sysfs interface from GPE source
Sound Control 3.x: adaptation for HTC One (M8) …
sound control: add register cache …
Sound Control: (OPTIONAL) add power amp registers access control as well …
Sound Control: (Optional) work around for Nexus 4/5 audio issues …
sound control: WCD9320: update speaker gain control for Z1 …

Jun 20, 2014
sound control 3.x: Initial GPL release for WCD9320 Audio Codec …
Sound Control: WCD9320: expose additional controls …
Add option to lower vibration
Overclocking: fix and add more steps
msm: cpufreq: Add API to allow limiting of min and max cpu frequencies …
msm-sleeper: limit max freq when screen is off
Show pvs in sysfs
Revert "sched: Micro-optimize the smart wake-affine logic" …
Revert "sync: don't block the flusher thread waiting on IO" …
Revert "FS: import F2FS" …
Revert "exFAT support" …
Revert "sched: add wait_for_completion_io[_timeout]" …
Revert "block: account iowait time when waiting for completion of IO … …
Disable HTC /system write protection …
Overclocking and undervolting options

Jun 10, 2014
Fastcharge for HTC One m8
LCD_KCAL Colour Control for m8
SELinux: Fix memory leak upon loading policy …

Jun 10, 2014
block: account iowait time when waiting for completion of IO request …
sched: add wait_for_completion_io[_timeout] …
deadline: Allow 0ms deadline latency, increase the read speed …
exFAT support …
Add fsync option
Add sweep2sleep …
FS: import F2FS …
ARM CPU Topology and cpu_power driver …
softirq: reduce latencies …
nohz: Reduce overhead under high-freq idling patterns …
ext4: fix memory leak in xattr …
cpuidle: Get typical recent sleep interval …
cpuidle: Quickly notice prediction failure in general case …
cpuidle: Quickly notice prediction failure for repeat mode …
cpuidle: move field disable from per-driver to per-cpu …
AIO: Don't plug the I/O queue in do_io_submit() …
Add SIO and FIOPS i/o schedulers …

Jun 09, 2014
warning: argument to 'sizeof' in 'memcpy' call is the same pointer ty… …
Add built crap and touch on cook script
warning: operation on 'ret' may be undefined [-Wsequence-point] …
dtb: binary to bring out dt.img …
Add cook my bacon script
Double flip a switch + setup ignores

May 08, 2014
initial switch flip
The Following 5 Users Say Thank You to MassStash For This Useful Post: [ View ] Gift MassStash Ad-Free
12th September 2014, 09:48 PM |#3  
Great info to actually read and know!
Hypernova version has all kinds of stuff that's been added from the good @franciscofranco, and the most important and amazing, IMHO, is the mako_hotplug_driver. With this, we have eliminated most governors, and now exclusively run interactive. We now also have some extra options with this interactive governor that we can set to customize the user experience smoothness, and battery life. Down below is how to work init.d scripts, which is suggested as a great set it and forget it method, but if you are trying to mess with things quickly and in user land with an app, you will have to use francos. Unfortunately, our phone is only supported by the paid version also, so looks like it's time to open the wallets and show your appreciation! Bought this personally as soon as I got the hotplug up and running. 100% worth it.

Advanced Interactive Governor Tweaks; Buttery smooth and insane battery life!

Here's some info on the pieces used from his kernel, and the app, and the guy himself it seems.

Information about the kernel

People generally change kernels for battery savings and to add features the stock one doesn't offer. 
Franco's kernel has several advantages over the stock one in terms of battery saving saving features, 
one of my favourite being the removal of MPdecision which in lay-mans terms changes the min and 
maximum speed the CPU can run at based upon live battery temperature checks. Franco's hot plug 
driver always keeps 2 cores online and always them to scale from 300mhz to 2.3ghz and based upon 
load conditions will online cores 3 and 4 if required. When you touch the screen the screen the CPU 
speed is boosted to approximately 1.5ghz for just over a quarter of a second and when load is reduced 
the CPU speed is able to lower quickly back to lower speeds thanks to his tuned interactive 
governor. Franco has created a governor for the GPU named interactive which works very much like 
how the CPU equivilant does. Franco has added some newer drivers for WiFi which also helps reduce 
idle battery drain while your on a busy WiFi network. Franco has also added an interface where you 
can boost microphone, speaker and headphone gain levels for audio enthusiasts as well as an 
interface to allow screen calibration and load pre set profiles to improve your experience with how 
your display looks! There's clock speed control, voltage control, governor control, hot plug control. 
You get the idea its full of cool features which can be controlled with the paid Franco.Kernel 
Application (see later in the thread)


Here are some lines I've found around the interwebs as a reference for myself for some time now. All of this is set, but hey, it never hurts to learn how it all works behind the scenes.

This is not a shell script, and cannot be run as one as-is; it's just a bunch of commands. UV should never be set with init.d in case they are unstable.

These are old values, some may be good, some may not. Please ask, or do some research on what is suggested for current cpu and phones.

# CPU Clock
echo 1228800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 537600 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq

# UV
echo "1450 1425 1400 1375 1350 1250 1225 1200 1050 900 850 800" > /sys/class/misc/customvoltage/mpu_voltages
echo "1375 1291 1140 950" > /sys/class/misc/customvoltage/iva_voltages
echo "1150 1050 950" > /sys/class/misc/customvoltage/core_voltages

# SR
echo 1 > /sys/kernel/debug/smartreflex/sr_mpu/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_iva/autocomp
echo 1 > /sys/kernel/debug/smartreflex/sr_core/autocomp # CORE no longer SR calibrated on FK

# Governor
echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 0 > /sys/devices/system/cpu/cpufreq/interactive/boost
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 729600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo 45000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 85 > /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 15000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
echo 80000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack

# I/O Scheduler
echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb

echo "deadline" > /sys/block/mmcblk0/queue/scheduler 
echo 500 > /sys/block/mmcblk0/queue/iosched/read_expire
echo 5000 > /sys/block/mmcblk0/queue/iosched/write_expire
echo 4 > /sys/block/mmcblk0/queue/iosched/writes_starved
echo 0 > /sys/block/mmcblk0/queue/iosched/front_merges
echo 1 > /sys/block/mmcblk0/queue/iosched/fifo_batch

echo "row" > /sys/block/mmcblk0/queue/scheduler
echo 100 > /sys/block/mmcblk0/queue/iosched/hp_read_quantum
echo 100 > /sys/block/mmcblk0/queue/iosched/rp_read_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_read_quantum
echo 2 > /sys/block/mmcblk0/queue/iosched/hp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/lp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_swrite_quantum
echo 1 > /sys/block/mmcblk0/queue/iosched/rp_write_quantum
echo 10 > /sys/block/mmcblk0/queue/iosched/read_idle
echo 20 > /sys/block/mmcblk0/queue/iosched/read_idle_freq

echo "cfq" > /sys/block/mmcblk0/queue/scheduler
echo 8 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 93 > /sys/block/mmcblk0/queue/iosched/slice_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/slice_async
echo 2 > /sys/block/mmcblk0/queue/iosched/slice_async_rq
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/group_idle
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency

echo "bfq" > /sys/block/mmcblk0/queue/scheduler
echo 4 > /sys/block/mmcblk0/queue/iosched/quantum
echo 125 > /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 250 > /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 16384 > /sys/block/mmcblk0/queue/iosched/back_seek_max
echo 2 > /sys/block/mmcblk0/queue/iosched/back_seek_penalty
echo 7 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 > /sys/block/mmcblk0/queue/iosched/max_budget
echo 4 > /sys/block/mmcblk0/queue/iosched/max_budget_async_rq
echo 125 > /sys/block/mmcblk0/queue/iosched/timeout_sync
echo 39 > /sys/block/mmcblk0/queue/iosched/timeout_async
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
echo 20 > /sys/block/mmcblk0/queue/iosched/raising_coeff
echo 256 > /sys/block/mmcblk0/queue/iosched/raising_max_time
echo 7000 > /sys/block/mmcblk0/queue/iosched/raising_max_softrt_rate
echo 304 > /sys/block/mmcblk0/queue/iosched/raising_rt_max_time
echo 2000 > /sys/block/mmcblk0/queue/iosched/raising_min_idle_time
echo 500 > /sys/block/mmcblk0/queue/iosched/raising_min_inter_arr_async
echo "" > /sys/block/mmcblk0/queue/iosched/weights

echo 1 > /sys/class/backlight/s6e8aa0/acl_set

# TCP Congestion Avoidance Algorithm
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control;

# N7-specific

echo 500 > /sys/devices/system/cpu/cpu0/cpufreq/cpu_lp_max # LP core no longer used on FK

echo "1125 1100 1075 1050 1025 1000 975 950 925 900 875 850 825" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

echo 2 > /sys/class/misc/tegra_hotplug_control/cores_on_touch
echo 60 > /sys/class/misc/tegra_hotplug_control/first_level
echo 50 > /sys/class/misc/tegra_hotplug_control/second_level # No longer used in newer driver in FK
echo 25 > /sys/class/misc/tegra_hotplug_control/third_level # No longer used in newer driver in FK

echo 0 > /sys/devices/tegradc.0/smartdimmer/enable

Here's an awesome breakdown and research page for voltages most importantly pertaining to PVS values and overclocking.

download link:
PVS Research.xls (

best max frequency (sweet performance/power spot):

MSM8974AB 2.3ghz - 1.34ghz
MSM8974AC 2.5ghz - 1.57ghz
MSM8974v2 2.2ghz - 1.34ghz
APQ8064 1.7ghz - 1.24ghz
APQ8064T 1.9ghz - 1.35ghz

best screen-off frequency (this varies if you try higher pvs settings):

Snapdragon 801 2.3ghz MSM8974AB - One M8
MSM8974AB 2.3ghz PVS 0 - 300mhz
MSM8974AB 2.3ghz PVS 1 - 346mhz
MSM8974AB 2.3ghz PVS 2 - 422mhz
MSM8974AB 2.3ghz PVS 3 - 499mhz
MSM8974AB 2.3ghz PVS 4 - 576mhz
MSM8974AB 2.3ghz PVS 5 - 652mhz
MSM8974AB 2.3ghz PVS 6 - 499mhz
MSM8974AB 2.3ghz PVS 7 - 576mhz
MSM8974AB 2.3ghz PVS 8 - 652mhz
MSM8974AB 2.3ghz PVS 9 - 729mhz
MSM8974AB 2.3ghz PVS 10 - 806mhz
MSM8974AB 2.3ghz PVS 11 - 883mhz
MSM8974AB 2.3ghz PVS 12 - 960mhz
MSM8974AB 2.3ghz PVS 13 - 1036mhz
MSM8974AB 2.3ghz PVS 14 - 960mhz
MSM8974AB 2.3ghz PVS 15 - 1036mhz

Snapdragon 801 2.5ghz MSM8974AC - Galaxy S5
MSM8974AC 2.5ghz PVS 0 - 422mhz
MSM8974AC 2.5ghz PVS 1 - 499mhz
MSM8974AC 2.5ghz PVS 2 - 576mhz
MSM8974AC 2.5ghz PVS 3 - 652mhz
MSM8974AC 2.5ghz PVS 4 - 729mhz
MSM8974AC 2.5ghz PVS 5 - 806mhz
MSM8974AC 2.5ghz PVS 6 - 652mhz
MSM8974AC 2.5ghz PVS 7 - 729mhz
MSM8974AC 2.5ghz PVS 8 - 806mhz
MSM8974AC 2.5ghz PVS 9 - 883mhz
MSM8974AC 2.5ghz PVS 10 - 960mhz
MSM8974AC 2.5ghz PVS 11 - 1036mhz
MSM8974AC 2.5ghz PVS 12 - 1113mhz
MSM8974AC 2.5ghz PVS 13 - 1190mhz
MSM8974AC 2.5ghz PVS 14 - 1113mhz
MSM8974AC 2.5ghz PVS 15 - 1190mhz

Snapdragon 800v2 2.2ghz MSM8974v2
MSM8974v2 2.2ghz PVS 0 - 345mhz
MSM8974v2 2.2ghz PVS 1 - 499mhz
MSM8974v2 2.2ghz PVS 2 - 422mhz
MSM8974v2 2.2ghz PVS 3 - 499mhz
MSM8974v2 2.2ghz PVS 4 - 576mhz
MSM8974v2 2.2ghz PVS 5 - 499mhz
MSM8974v2 2.2ghz PVS 6 - 576mhz

Snapdragon 600 1.7ghz APQ8064 - One M7
APQ8064 1.7ghz PVS 0 - 594mhz
APQ8064 1.7ghz PVS 1 - 594mhz
APQ8064 1.7ghz PVS 2 - 702mhz
APQ8064 1.7ghz PVS 3 - 810mhz
APQ8064 1.7ghz PVS 4 - 702mhz
APQ8064 1.7ghz PVS 5 - 810mhz
APQ8064 1.7ghz PVS 6 - 702mhz

Snapdragon 600 1.9ghz APQ8064T - Galaxy S4
APQ8064T 1.9ghz PVS 0 - 702mhz
APQ8064T 1.9ghz PVS 1 - 702mhz
APQ8064T 1.9ghz PVS 2 - 702mhz
APQ8064T 1.9ghz PVS 3 - 810mhz
APQ8064T 1.9ghz PVS 4 - 702mhz
APQ8064T 1.9ghz PVS 5 - 702mhz
APQ8064T 1.9ghz PVS 6 - 702mhz

best min frequency:

lowest possible setting (300mhz in case of MSM8974)

i highly recommend to run those values (exept if you are actually playing demanding 3d games).
use trickster mod frequency lock feature to do so. you will experience amazing battery life.

how to get the maximum battery life:

if you have a MSM8974AB pvs 6 for example, try the following steps:
try the next higher pvs levels (pvs7). don't try AC pvs values on AB chips.
AB chips are binned for lower frequencies while AC are binned for higher frequencies (duh).
so if you have a AB chip, work your way up the AB pvs values until you have freezes or similar and move back.
if you have a AC chip, work your way up the AC pvs values etc...
if you found highest setting that does not cause any problems after intensive testing and usage:
congratulations, you did it. 

how to get the maximum frequency:

first try higher than stock maximum clock and see how it behaves.
if you don't reach your desired clockspeed, try the next lower pvs setting of your chip. yes, i said LOWER.
this gives the processor more voltage to reach higher overclocks.
i don't recommend it tho since we all want our phones to last as long as possible usually.

Thank you very much to @flar2 for all his work, and assisting people like me to port it to a device that otherwise would have no such love!

Gigantic thanks to @franciscofranco for his additions, fixes, and mako_hotplug!

Thank you to @Evolutionmods for helping me get this started, and for crucial fixes I would have no idea how to fix!

Thank you to @NineInchNails

These guys all have helped in very pivotal ways ,and I would not be at the understanding of android that I am today without them. Truly, thank you for being awesome helpful people!

Last but not least, thanks to these doods for helping test before release!

Good one on mpdecision among other good stuff

Governors and schedulers explained:

PVS explained:
The Following 5 Users Say Thank You to MassStash For This Useful Post: [ View ] Gift MassStash Ad-Free
12th September 2014, 09:57 PM |#4  
wileout's Avatar
Senior Member
Flag gallitzin
Thanks Meter: 765
First. And thanks for this. Been looking for a new kenel to try.
The Following User Says Thank You to wileout For This Useful Post: [ View ] Gift wileout Ad-Free
12th September 2014, 10:11 PM |#5  
ironbesterer's Avatar
Senior Member
Flag Chicago
Thanks Meter: 82
Thumbs up
What is a good app to use to modify CPU setting?

Also, is there a way that you could post recommended settings to use with this rom?

I'm glad to see another rom for this device. Thank you!
12th September 2014, 10:22 PM |#6  
Senior Member
Thanks Meter: 55
Originally Posted by ironbesterer

What is a good app to use to modify CPU setting?

Also, is there a way that you could post recommended settings to use with this rom?

I'm glad to see another rom for this device. Thank you!

Trickster Mod is pretty good.

I just flashed the kernel, so far so good. I've been waiting for a kernel like this to drop for VZW Sense. Currently I'm running stock speeds, -15mV undervolt, no throttle and Multicore Power Saving 1. I think its going to be good.
The Following User Says Thank You to changt34x For This Useful Post: [ View ] Gift changt34x Ad-Free
14th September 2014, 02:34 AM |#7  
dandan2980's Avatar
Senior Member
Thanks Meter: 1,338
Nice Scott, This is a very nice kernel. Here is a little hint too for you guys if you want total control over the CPU freq pick max frequency when you go thru the installer. Then after installation with file explorer go to system/bin and look for pnpmgr. Either just delete it or rename iwith a .bak at the end of it. Every time you flash the kernel this will be replaced back in system/bin.

What this does is allows the freq to stick on all 4 cores for example if you choose max freq in installer and use trickster to lower the freq you will notice that the other 3 cores will still go above what you have set the freq at. Another example is you will notice that your min freq will sometimes be higher than 300 MHz.

There is no ill side effects deleting this it just stops the Freq from doing what pnpmgr is telling it to do and allows you to tell it what to do.

So this is why I choose max delete pnpmgr and set the freq how ever I feel and don't worry about the freq changing on me.

Sorry for the long post MassStash
The Following User Says Thank You to dandan2980 For This Useful Post: [ View ] Gift dandan2980 Ad-Free
14th September 2014, 03:20 AM |#9  
jtommyj's Avatar
Senior Member
Thanks Meter: 343
Thanks !! Been looking for a Sense kernel I could use fauxsound on and this is it !! Thanks again !
14th September 2014, 03:46 AM |#10  
Chuckd610's Avatar
Senior Member
Philly, PA
Thanks Meter: 259
Not sure how this works, but since only 4.4.2 is posted, will it hurt anything if I flash this on my firmware updated VZW M8? just want to do some testing while I wait for 4.4.3 of this kernel. Thanks
14th September 2014, 05:39 AM |#11  
Lykarsis's Avatar
Senior Member
Flag Gahanna
Thanks Meter: 56
Donate to Me
Originally Posted by Chuckd610

Not sure how this works, but since only 4.4.2 is posted, will it hurt anything if I flash this on my firmware updated VZW M8? just want to do some testing while I wait for 4.4.3 of this kernel. Thanks

I can tell you that it really doesn't like ViperOne 2.4 which is a 4.4.3 base. Very slow and laggy, lots of reboots. Works great on ViperOne 1.8 which was a 4.4.2 base.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes