3.4.2 (19/05/2016)

- Linux kernel 3.4.112


3.4.1 (24/03/2016)

- Linux kernel 3.4.111


3.4.0 (02/11/2015)

- Linux kernel 3.4.110


3.3.0 (23/09/2015)

- Linux kernel 3.4.109


3.2.6 (16/08/2015)

- Merge Android 5.1.1_r0.14 changes


3.2.5 (21/06/2015)

- Linux kernel 3.4.108


3.2.0 (21/05/2015)

- Merge Android 5.1.1 changes


3.1.5 (20/04/2015)

- Linux kernel 3.4.107

- Double tap to wake: add option to temporarily disable after power key pressed. Auto enabled again after device resumed. Enable this feature using the command:

echo 1 > /sys/devices/virtual/input/lge_touch/dt_wake_pwr_disable


3.1.0 (15/04/2015)

- Merge Android-5.1.0_r0.9 changes


3.0.5 (22/03/2015)

- cpufreq: new per CPU tunable util_threshold (default 25)

- Dynamic hotplug: Change algorithm. If CPUs have different util_threshold, the CPU with the greater one will be chosen

- ondemand: new tunable down_threshold. If load below this threshold lowest frequency will be user.


3.0.2 (18/02/2015)

- Linux kernel 3.4.106


3.0.1 (11/12/2014)

- Merge latest changes from Android source (5.0.1) 


3.0.0 (02/12/2014)

- Linux kernel 3.4.105

- Fix initramfs issues (mpdfake, initscripts) due to SELinux. Semaphore init script uses Chainfire's supolicy tool (included in latests SuperSU) to patch sepolicy and add new rules.


3.0.0b (18/11/2014)

- Lollipop release

- Merged latest lollipop branch

- Linux 3.4.104


2.4.0 (19/08/2014)

- Linux kernel 3.4.103

- ondemand: a small fix in check load condition (thanks to moddingg33k)

- tick-sched: Remove unnecessary statistics calculation required by mpdecision (thanks to moddingg33k)

- tick-sched: A couple of fixes from mainline


2.3.3 (19/07/2014)

- Linux kernel 3.4.99


2.3.0 (27/06/2014)

- Linux kernel 3.4.95

- ondemand: Change the calculation of next frequency to utilize lower frequencies more (the governor will be more sensitive to lower loads).

- ondemand: Change default touch load to 65 to keep the touch frequency to 1134MHz (because of the change in calculation)

Please note that you have to change the touch load to 65 in Semaphore Manager until the app update. 


2.2.5 (15/06/2014)

- Linux kernel 3.4.93

- ondemand: Be friendly towards latency-sensitive bursty workloads (backport 2 patches that intended for 3.16)


2.2.2 (06/06/2014)

- Merge latest changes from Android KK 4.4.3 kernel source.

- Added 2 more tunables to dyn_hotplug to control timer for up and down CPUs: up_timer_cnt (default 2 = 1sec) and down_timer_cnt ( default 10 = 5sec)

- Small improvement to dyn_hotplug.

- Introduce a new 405MHz frequency to be used as minimum in case of flickering issues on some devices. This freq uses an HFPLL instead of the PLL_8 (which is used by 384MHz freq) and uses a higher L2 freq. Please note that a little bit more power consumption is expected (but with a small performance increase). Thanks @domg73 (XDA) for reporting and testing.


2.1.5 (27/05/2014)

- Linux kernel 3.4.91

- Fixes for camera from CAF (thanks to ihancioglu)


2.1.1 (16/04/2014)

- Linux kernel 3.4.87


2.1.0 (06/04/2014)

- Linux kernel 3.4.86

- cpufreq: A small optimization on target freq selection

- config: Remove slub debug


2.0.9 (13/03/2014)

- Linux kernel 3.4.83

- msm: camera: Fix to avoid crashes (unfortunately it does not resolve all issues)


2.0.5 (30/01/2014)

- Linux kernel 3.4.78

- input: lge_touch_core: Fix double tap to wake unresponsive touch screen issue

- cpufreq: interactive: Enable input boost by default


2.0.2 (23/01/2014)

- Linux kernel 3.4.77

- Reworked double tap to wake functionality


2.0.0 (08/01/2014)

- Linux kernel 3.4.76

- lge_touch_core: Implement Double Tap to Wake functionality

- Interactive governor: latest updates from CAF

- lge_touch_core: Remove debug messages

- nefilter: xt_qtaguid: Remove debug messages, fixes from CAF

- sync: Fixes from CAF

- ledtrig-thermal: Fix issue that suspend procedure was blocked during boot (screen remain off)

- touchwake: Fix possible race condition

- Possible fix of kernel panic during update of gamma values


About Double Tap to Wake.

Implemented from scratch and hints from show-p1984 and LG G pad kernels (thanks).


The basic idea is known: touchscreen remains _always_ powered to handle input events

and wake up the device with a double tap.

User have to double tap on the _center_ of the screen (to limit accidentally wake ups).

Double tap is disabled by default. To enable it run the command bellow as su:


echo 1 > /sys/devices/virtual/input/lge_touch/dt_wake_enabled


If you run the above command during screen off, the command will remain pending until

the next power on. Then it will be actually executed.


Touchwake functionality is still implemented and it should be disabled if double tap to wake

is enabled.



1.8.8 (22/12/2013)

- Linux kernel 3.4.75

- dyn_hotplug: Activate the driver 1min after boot (because during init scripts execution all CPUs should be online to get initial settings. Fixes issue where a CPU governor could be set with default performance governor. Thanks to ihancioglu for reporting and reproducing the issue).

- cpufreq: set initial utilization to zero on device CPU addition


1.8.7 (13/12/2013)

- Linux kernel 3.4.74

- Gamma control: apply new settings without the need of screen power off/on cycle (thanks to rmcc)

- fix sysfs scaling_min_freq file permissions

- config: Add CONFIG_NETFILTER_XT_TARGET_TCPMSS support (forgotten upstream update)  


1.8.5 (07/12/2013)

- Merge upstream changes from KitKat 4.4.1 kernel

- Linux kernel 3.4.72


1.8.0 (21/11/2013)

- KitKat support

- Linux kernel 3.4.70


1.7.6 (04/11/2013)

- Linux kernel 3.4.68

- touchwake: Fix issue when disabling driver during screen off and wakelock was active (thanks @ihancioglu for his report)

- ondemand: a small cleanup in code (thanks @jugster) 


1.7.4 (23/10/2013)

- Linux kernel 3.4.67

- Fix logger loading issue in some custom ROMs

- ondemand: A small optimization in input event (thanks to skkip)


1.7.1 (03/10/2013)

- Linux kernel 3.4.64

- mach-msm: dyn_hotplug: On early suspend use min_online value of 1 (make use of C3 power state on CPU0 when the screen is off)

- mach-msm: dyn_hotplug: Use cpumask_next_zero to find the next offline CPU (thanks to Skkip)

- Possible fix from CAF for a cpuidle bug

- video: lm3530_bl: Introduce new tunables to control LED driver (LCD backlight)

lm3530_min_br: sets the minimum brightness level (2-114)

lm3530_max_br: sets the maximum brightness level (2-114)

lm3530_br_mode: sets the linear (default 1) or exponential (0) brightness mapping mode.

The sysfs path is /sys/devices/i2c-0/0-0038/

Please note that the exponential brightness mode uses a very low LCD brightness on a low external light. You may need to increase the min_br for better results. 


1.6.5 (17/09/2013)

- Linux kernel 3.4.62

- mach-msm: dyn_hotplug: Schedule driver's work only on CPU0

- mach-msm: dyn_hotplug: Offline the CPU with the lowest current frequency (thanks to Skkip)

- cpufreq: Fixes from Code Aurora

- cpufreq: conservative/interactive: Update the CPU utilization in policy for dynamic hotplug driver (should fix issues with hotplug)

- networking: Include Westwood TCP congestion control algorithm (CuBIC still the default)


1.6.0 (06/09/2013)

- Any Kernel Updater installation method, modified to inject all Semaphore changes on the fly to the current initramfs (thanks to Koush)

- Touchwake changes to avoid conflicts with TouchControl app (thanks to bponury) 

- ondemand change to handle input only from touchscreen (CAF)

 - Added a tiny service 'mpdfake' in initramfs, coded in C to consume PowerHAL messaged to missing mpdecision (fixes error messages in logcat)


1.5.7 (30/08/2013)

- Revert touchwake changes introduced in 1.5.6


1.5.6 (30/08/2013)

- Linux kernel 3.4.60

- Rework touchwake code for compatibility with TouchControl (thanks @bponury)

- mach-msm: board-mako-display: Use default values for LCD color temperature (should fix stock issue with 'fastboot boot' command. Thanks @mskip for reporting)

- mach-msm: subsystem_restart: Fix CPU detection (should fix issue that the subsystem_restart could not detect the CPU and panic_handler could not restart subsystems properly)


1.5.5 (23/08/2013)

- Linux kernel 3.4.59

- Fix compatibility issues with CM in initramfs

- Fix initramfs files ownership to root


1.5.3 (06/08/2013)

- Linux kernel 3.4.56

- dyn_hotplug: Add max_online tunable to control maximum number of online CPUs

- dyn_hotplug: Add checks when store tunables

- dyn_hotplug: code cleanup

- freezer: Fix deadlock issue (by Colin Cross)


1.5.2 (31/07/2013)

- Linux kernel 3.4.55

- mach-msm: acpuclock-krait: Fix PVS bin information

- Add service in init.rc about SuperSU daemon (recommended by Chainfire)

- Add CM10.2 support for su (untested)


1.5.1 (29/07/2013)

- Add gamma control

- Merge freezer changes

- Enable O2 optimizations 

- Remove some debug options


1.5.0 (26/07/2013)

- Rebased on JB 4.3 (JWR66V) kernel. It should be used only on stock JWR66V

Unmerged features (compared to 1.4.1):

- gamma control

- ROW scheduler

- O3 optimizations 


1.4.1 (25/07/2013)

- Fix conflict of hotplug driver with cpufreq statistics

- Fix issue that may cause crash when enable hotplug driver


1.4.0 (22/07/2013)

- Linux kernel 3.4.54

- Dropped mpdecision (and related driver for exporting statistics to userspace)

- Introduce dyn_hotplug driver to automatically online/offline CPUs according to load. Parameters:

  /sys/module/dyn_hotplug/parameters/enabled, valid values 0,1,Y,N,y,n. Default Y (enabled)

  /sys/module/dyn_hotplug/parameters/up_threshold, over this threshold the driver will put one more CPU online

  /sys/module/dyn_hotplug/parameters/min_online, minimum number of CPUs that will be always online. Default 2.

- Introduced new ondemand tunables to support touch boost:

  touch_load: the simulated load when there is touch in the screen (default 75)

  touch_load_threshold: over this load will be applied the touch_load (default 10)

  touch_load_duration: the duration of the simulated load in msec (default 1100)

- cpufreq: ondemand: Default sampling rate to 20000

- leds: ledtrig-thermal: Rework code

- leds: Default led triggers to "none"

- built with Linaro 201306 (gcc 4.8.2)

- an update to framebuffer to fix some visual glitches (thanks to CM team, thracemerin) 


1.3.0 (18/06/2013)

- Linux kernel 3.4.49

- cpufreq: ondemand: Drop early demand

- config: remove unused media tuner option


1.2.0 (02/06/2013)

- cpufreq: ondemand: Fix issue that could cause performance issue

- cpufreq: ondemand: freq_next should be proportional to cpuinfo.max_freq

- cpufreq: Remove unused code due to new calculation method of frequency target

- msm: cpufreq: Break out early if target frequency is the same as the current

- Use SLAB allocator instead of SLUB

- Enable O3 optimizations 

- Build with Linaro 4.8.1 201305


1.1.0 (27/05/2013)

- Linux kernel 3.4.47

- cpufreq: ondemand: Calculate the next frequency proportional to current load

- cpufreq: ondemand: Default up_threshold to 95, sampling_rate to 30000

- freezer: updates from linux-next to help suspend/resume operation. 

- block: couple of fixes from Code Aurora


1.0.0 (23/05/2013)

- Linux kernel 3.4.46

- msm: mako: Change CPU regulators min_uV to 700mV (thanks to sirxdroid, thracemerin)

- ledtrig-thermal: Do not update LED brightness when there is no actual change.

- msm: acpuclock-krait: Cleanup code, fix a typo in message

- cpufreq: ondemand: Increase DOWN_DIFFERENTIAL to avoid oscillations between max - min freq

- config: little cleanup


Please reset your undervolt settings before flash the new version


0.9.5 (17/05/2012)

- Rename undervolting parameters upper_uV and upper_khz_thres to higher_uV and higher_khz_thres respectively.

- acpuclock-krait: small improvements

- LED thermal trigger: Check temp every 5s when LED is off, every 2s when LED is on

- Noop as default scheduler



0.9.0 (15/05/2013)

- Add undervolting support 

- msm: acpuclock-8064: Add support for 8064v1.1 FASTER PVS bin (updated voltage table)

- msm: acpuclock-krait: improvements and fixes from Code Aurora

- msm: acpuclock-krait: small improvements

- msm: Makefile: remove some acpuclock redundant files.


0.8.0 (12/05/2013)

- Linux kernel 3.4.45

- interactive: many updates from Code Aurora

- leds: thermal trigger: increase low threshold to 52℃


0.7.5 (08/05/2013)

- Linux kernel 3.4.44

- leds: Switch off LED when thermal trigger deactivated

- Change some compile flags (hopefully little bit better performance)

- Remove many ugly debug messages in WiFi driver, and a message in charger driver.


0.7.0 (06/05/2013)

- leds: Do not remove trigger when brightness = LED_OFF (fixes conflicts between LED trigges and notification lights)

- touchwake: Introduce new LED trigger (name touchwake) that switch on LED when the touchwake is active.

- leds: Add LED trigger for thermal sensor (switch on LEDs when temperature >= 47, with brightness proportional to the temperature)

- mako: Use default triggers: Blue - touchwake, Red - thermal, Green - battery full

- more clean ups to config (remove tracers, KALLSYMS)


0.6.0 (01/05/2013)

- Linux kernel 3.4.43

- Fix issues with logger module



0.5.5 (30/04/2013)

- video: msm: Expose gamma table to sysfs* (thanks to faux123, franciscofranco for ideas)

- android: logger: Compiled as module** (disable by default)

- Clean up configuration (excluded swap support, ext2, ext3, some debug options)

- touchwake: clean code, remove debug information

- msm: acpuclock: Lower max L2 speed to 1134MHz (fix from Code aurora)

- built with Linaro gcc 4.7 201304


* You may tune gamma through sysfs using the following path:





You have to pass 9 values for each file (r, g, b). For example:

echo "64 68 118 1 0 0 48 32 1" > /sys/devices/virtual/misc/gamma_control/gamma_r


For your convinience, franciscofranco uses the terminology below for array's positions

"greys, mids, black, XX, contrast, brightness, saturation, white, XX"

So, he leaves positions 4 and 9 with hardcoded values. (You may also leave them untouched)


** In order to enable logger until next Semaphore Manager version:

Copy the /lib/modules/logger.ko file to /data/local/

Then give the file permissions (as root):

chmod 640 /data/local/logger.ko



0.5.0 (26/04/2013)

- Linux kernel 3.4.42

- touchwake: Fix reboot issues

- touchwake: small improvements

- touchscreen: Show accuracy filter and jitter filter parameters in sysfs (you may tune them from Semaphore Manager)

- change vibrator sysfs permissions (now vibrator works in SAI options)


0.4.0 (22/04/2013)

- Add ROW scheduler and make it default (thanks to Tatyana Brokhman)

- block: a couple of fixes from code aurora

- wifi: upstream fix.

- Fix compatibility issues with CM10.1 

- drivers: msm_fb: Apply kcal values when screen on


0.3.0 (20/04/2013)

- Linux kernel 3.4.41

- ondemand: default sampling_rate 20000, up_threshold 85

- init scripts support (/etc/init.d/ directory must exists, busybox required)

- drivers: touchwake support - EXPERIMENTAL (thanks to Ezekeel for initial implementation) 


echo 1 > /sys/devices/virtual/misc/touchwake/enabled

Delay in ms:

echo xxxxx > /sys/devices/virtual/misc/touchwake/delay


0.2.0 (15/04/2013)

- android: logger: fixes from 3.9 kernel

- android: lowmemorykiller: updates from 3.9

- android: binder, timed_output: minor fixes from 3.9

- block: Added SIO scheduler (and cleaned some code)

- cpufreq: ondemand: early demand feature (more info here)

      enable it:

      echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/early_demand

      You may also control the threshold:

      echo XX > /sys/devices/system/cpu/cpufreq/ondemand/grad_up_threshold (default 50)

- cpufreq: ondemand: fixes that have beed applied in Linux 3.9

- cpufreq: included conservative governor

- cpufreq: conservative: fixes that have been applied in Linux 3.9

- removed some debug options from configuration

- Compiled with gcc 4.7



0.1.0 (13/04/2012)

- Linux kernel 3.4.40

- enabled O2 optimizations

Footej Camera

Footej Camera

The most simple yet powerful camera app to capture your best moments!

Get it on Google Play 

Drive Syncrypt app

Semaphore Manager

Use Drive Syncrypt to keep in sync your phone files with Google Drive.

Get it on Google Play 

Semaphore Manager app

Semaphore Manager

Semaphore Manager app helps you to easily full control all Semaphore kernel features.

Get it on Google Play