[One (M7) Original Android Development] flar2:
Kernel for Google Play Edition and Sense-based ROMs

FAST • STABLE • FULL-FEATURED

This version works on every HTC One variant except Sprint and Verizon.

The Sprint HTC One version is here: http://xdaforums.com/showthread.php?t=2295596

The Verizon HTC One version is here: http://xdaforums.com/showthread.php?t=2600691

Google+ Community

Please consider a donation to support ongoing development

Thanks to those who have donated!​

Special thanks to @jonas2295 for the ElementalX logo

App to customize Wake Gestures:

Wake Gestures

____________________________

DOWNLOADS

Sense Android 5.0.2

ElementalX-m7-22.4-Sense

Google Play Edition Android 5.1

ElementalX-m7-22.4-GPE

Google Play Edition Android 5.0.1

ElementalX-m7-19.3-GPE

Sense 6 Android 4.4.3

ElementalX-m7-18.0-Sense

Google Play Edition Android 4.4.3/4.4.4

ElementalX-m7-15.1-GPE

Sense 6 Android 4.4.2

ElementalX-m7-14.12-Sense

Sense 5.5 and Sense 6 Android 4.4.2

ElementalX-m7-14.10

Google Play Edition Android 4.4.2

ElementalX-m7-11.7

Sense 5.5 Android 4.4

ElementalX-m7-10.10.1

Google Play Edition Android 4.4

ElementalX-m7-9.1

Sense 5.5 Android 4.3

ElementalX-m7-8.4

Sense 5 Android 4.3

ElementalX-m7-5.6

Google Play Edition Android 4.3

ElementalX-m7-4.4

Google Play Edition and Sense 5 Android 4.2.2

ElementalX-m7-3.12.1

Sense 5 Android 4.1.2

ElementalX-m7-1.1

INSTALLATION

1. Install zip from recovery

2. Follow the instructions, if you don't know what to do, use the preselected options

3. Reboot

For installation, it seems a lot of people have finicky phones when it comes to flashing stuff with aroma.

If the installer gets stuck at 0% then you need to reboot to bootloader and do fastboot erase cache

If the installer reboots at 10%, you need to do a nandroid backup of /system partition and restore it. I think a dirty flash would also work.

After you install it, if you get a black screen or stuck at the HTC logo, no need to worry. Just hold down the power button untill the capacitive buttons start flashing and the phone restarts. The kernel installed correctly.

As always, with overclocking, not all phones can handle all frequencies. If it doesn't boot, or randomly reboots, or freezes, your first course of action should be to reinstall with a lower frequency.

* Standard disclaimer:
* Your warranty is now void. Use at your own risk.
* In other words: It is your choice to use this software,
* I am not responsible for any damage or problems you may have!

Previous versions:

ElementalX-m7-14.1

ElementalX-m7-14.0

ElementalX-m7-13.5.1

ElementalX-m7-11.4

ElementalX-m7-12.0

ElementalX-m7-8.3

ElementalX-m7-11.3

ElementalX-m7-10.8

ElementalX-m7-8.2

ElementalX-m7-11.0

ElementalX-m7-10.5

ElementalX-m7-10.4

ElementalX-m7-8.1

ElementalX-m7-9.0.1

ElementalX-m7-10.3

ElementalX-m7-10.2

ElementalX-m7-10.1

ElementalX-m7-10.0

ElementalX-m7-8.0.1

ElementalX-m7-6.1.2

ElementalX-m7-5.4

ElementalX-m7-5.2

ElementalX-m7-3.11

ElementalX-m7-4.2

ElementalX-m7-5.1

ElementalX-m7-3.4

ElementalX-m7-3.3

ElementalX-m7-3.0

ElementalX-m7-2.6

ElementalX-m7-2.3

ElementalX-m7-2.2

ElementalX-m7-2.1

ElementalX-m7-1.0.1

ElementalX-m7-0.11

ElementalX-m7-0.10

ElementalX-m7-0.9

ElementalX-m7-0.8.1

ElementalX-m7-0.6

ElementalX-m7-0.5

ElementalX-m7-0.4

ElementalX-m7-0.3

Special thanks:

[MENTION=3088420]tbalden[/MENTION] for l2m and bln and cam fix on sense 4.3

[MENTION=402300]amarullz[/MENTION] for installer

[MENTION=4156828]backfromthestorm[/MENTION] for fstrim

[MENTION=3857343]crpalmer[/MENTION] for kernel based thermal control

[MENTION=1951402]mkasick[/MENTION] Fix for empty app-mounted directories

[MENTION=2262596]jonas2295[/MENTION] for elementalx logo

[MENTION=3332811]faux123[/MENTION] for simple GPU governor and color control

NOTES:

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!)

The settings can be changed by editing /etc/elementalx.conf and rebooting. Advanced users can apply settings on the fly by running /etc/init.d/99elementalx as root.

There is no need to edit /etc/init.d/99elementalx. All settings are configured in /etc/elementalx.conf.

If settings are not sticking, make sure the file permissions for /etc/init.d/99elementalx are set to execute. Every time the settings are applied, a log file is created at /data/local/tmp/elementalx-kernel.log. Problems can be diagnosed by looking at the log file.

Please 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.log. This file shows the date and time and all settings that have been applied. Use this to verify and troubleshoot configuration options. Also shows your PVS bin.

Kernel Tuner/TricksterMod/Venom Tweaks, etc

You don't need these apps because the ElementalX installer sets everything up automatically, but if you want to check or change settings, you can use these apps. Just be aware that some of them (e.g. Kernel Tuner) are set by default to apply settings on boot, which can interfere with the settings you chose in the ElementalX installer.

Note: on the most recent versions, the fauxclock app interferes with GPU overclocking unless you disable pnpmgr (not recommended)

Overclocking

Overclocking (or underclocking) is optional. The installer lets you choose a maximum between 1134MHz (underclocked) and 2160MHz (overclocked). You can set the maximum frequency individually for each CPU core in the installer. Whatever frequencies you chose in the installer will be set at boot for each CPU. Not all devices can handle overclocking. The stock maximum CPU frequency is 1.7GHz. I recommend a mild overclock, like 1836MHz. Clocking higher creates heat and wastes battery for very little performance gain.

CPU voltages

The installer allows you to choose from several undervolting options. These automatically undervolt the lowest frequency (384MHz) where the CPU spends most of its time. The voltages for other frequencies are assigned based on the PVS bin of your phone. CPU voltages are fully customisable with apps such Kernel Tuner or Trickster Mod, but I recommend leaving these other voltages as-is unless you are prepared to do a lot of testing. Be careful, lowering voltages can cause instability. Generally, having reboots while the phone is asleep is a sign that your minimum voltage is too low. The minimum voltage allowed is 700mV.

Be careful with undervolting. If you have bluetooth or sound issues, try increasing the minimum voltage.

Minimum CPU frequency

The minimum CPU frequency in this kernel is 384MHz. This chip was not designed to operate below 384MHz and I am respecting Qualcomm's design decision to have the CPU idle on pll8 at 384MHz. There is a way to achieve lower frequencies using the high frequency pll, however, this is likely to cause instability and inefficient operation (battery drain, ui stuttering)

GPU frequencies

You can choose stock GPU frequency of 400MHz or overclock. If overclocked, you can choose from a range of frequencies up to 585MHz. Overclock frequencies can be changed on the fly, but you can't use the stock frequency. Conversely, if you choose stock GPU, the overclocking frequencies will not be available. To change between stock and overclocking mode, you need to reinstall. The same voltages are used no matter if the GPU is overclocked or not.

GPU Governor

The default GPU govenror is ondemand. It works well and is recommended for best balance between performance and batter life. The simple governor is also available, but ramps up the GPU frequency much quicker than ondemand, so may impact battery life. The governor can be set in /etc/elementalx.conf

Thermal Control

I've added kernel based thermal control and throttling. HTC's thermald is very aggressive and throttles the CPU frequency pretty much anytime you use all four processors. This kernel based implementation allow better performance while still protecting your phone from overheating. There are three levels of thermal control, which can be chosen in the installer or changed in /etc/elementalx.conf. The default option is recommended. With the run cool option, your CPU will run about 5C cooler than default while under heavy load. With the run hot option, the CPU will run about 5C warmer than default under heavy load.

MPDecision settings

There are three mpdecision settings available: battery saving, stock and performance. I think they are self explanatory. These can be changed in /etc/elementalx.conf

Max screen off frequency

This is optional and must be selected in the installer. I recommend enabling it. This limits the max cpu frequency while the screen is off. The default max screen off frequency is 702MHz, which is a good balance between limiting the voltage/frequency and the time required to complete tasks while the screen is off. You can adjust this with applications such as Venom Tweaks.

I/O Schedulers

The default i/o scheduler is ROW. Other available schedulers are ROW, CFQ, FIOPS, SIO, NOOP and deadline.

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.

Wake Gestures

This is a new feature similar to the Motion Launch Gestures on the HTC One m8. Requires one of the following Xposed modules:

Sense 6 Toolbox: http://sensetoolbox.com/6/download (most options for HTC)

Wake Gestures: http://xdaforums.com/xposed/modules/app-wake-gestures-v1-0-t2768266

Set /sys/android_touch/wake_gestures to 1 to enable input events for wake gesture actions. Set to 0 to use traditional sweep2wake or doubletap2wake (wakes up the phone and turns on the screen only).

Note that if you enable wake_gestures, nothing will happen if you don't install one of the Xposed modules.

Sweep2wake

Sweep2wake allows you to turn on your phone by swiping your finger across the screen. There are four sweep actions that will work

Gesture........Value

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)

/sys/android_touch/sweep2wake

DoubleTap2Wake

DoubleTap2Wake (DT2W) allows you to wake the device by double tapping in the bottom inch or so of the screen, above the capacitive buttons. You can edit /etc/elementalx.conf to change the setting on boot.

/sys/android_touch/doubletap2wake

0=disabled

1=enable doubletap2wake (bottom of screen only)

2=enable doubletap2wake (full screen)

Logo2Wake

Logo2Wake (L2W) allows you to sleep or wake the device by long pressing the HTC logo. You have to press just slightly above the HTC logo. The screen will automatically turn on or off with a long press. You can edit /etc/elementalx.conf to change the setting on boot.

/sys/android_touch/logo2wake

0=disabled

1=enable logo2wake

Pocket Detection

Pocket detection protects against accidental wakes while S2W, DT2W or L2W are enabled and the phone is in your pocket. Pocket detection uses the proximity sensor. A few people have a problem with their proximity sensor that makes DT2W not work, so I've made an option to disable pocket detection. You can edit /etc/elementalx.conf to change the setting on boot.

/sys/android_touch/pocket_detect

0=disabled

1=enable pocket detection

Logo2Menu

Enabling Logot2Menu (L2M) allows you to use the HTC logo as a menu button. You must press just slightly above the HTC logo. You can edit /etc/elementalx.conf to change the setting on boot.

/sys/android_touch/logo2menu

0=disabled

1=enable logo2menu

Button Light Notification

With Button Light Notification (BLN), the capacitive buttons will blink on and off when you have a new notification. As soon as the screen comes on, BLN is canceled and the lights will no longer blink until you have another notification. Please note that if you have your screen set to turn on when a message arrives, you will not see the buttons blinking because once the screen comes on, the button light notification is canceled. You can edit /etc/elementalx.conf to change the setting on boot.

/sys/class/leds/button-backlight/blink_buttons

0 = disabled

1 = BLN enabled

NTFS and exFAT support

This is for anyone who wants to use OTG to connect a USB stick or portable harddrive formatted with Microsoft's NTFS and exFAT filesystems. You will need Stickmount or a similar app, HTC Sense does not automatically detect these filesystems.

Other stuff

This kernel supports many game pads and controllers, including PS3 controllers and some X-Box controllers. It has full OTG support. A refresh rate of 60Hz for HDMI output allows you to play games on the big screen without choppiness. CIFS support is built into the kernel. Color control is also supported.

Source:

Android 5.0.1

Android 4.1.2

Android 4.2.2

Android 4.3 GPE

Android 4.3 Sense

Android 4.4 GPE

Android 4.4.2 Sense

Android 4.4.3 GPE

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

XDA:DevDB Information

ElementalX |OC|UV|GPU OC|S2W|L2W|DT2W|L2M|THERMAL|BLN, Kernel for the HTC One (m7)

Contributors

flar2

Source Code: https://github.com/flar2/m7-Sense

Kernel Special Features:

Version Information

Status: Stable

Current Stable Version: 22.4

Stable Release Date: 2016-11-26

Created 2013-08-01

Last Updated 2017-03-29