[Xperia SP Android Development] Tomoms:
Light and stable, Helium is here.

Disclaimer

:

use this kernel at your own risk. Flashing it the wrong way may brick your device. I'm not responsible for any software/hardware damage.

Q&A thread

here.

Features:

v63 (November 20th, 2020)

built with -O3 optimizations & latest GCC 10 cross-compiler

minor configuration cleanup

old releases:

v62 (September 6th, 2020)

rebased on top of Adrian's latest sources

support for Android Q/LineageOS 17.1

dropped support for previous Android releases

built with the latest GCC 10

minor tweaks and kernel bug fixes

v61 (September 9th, 2019)

rebased on top of Adrian's latest source

built with the newest GCC 8 toolchain from Linaro

many debugging options have been disabled (this might free some RAM)

memory management backports from Linux 3.8

some misc. improvements and fixes

installer updated to AnyKernel3, excellent (IMO) default setup

v60 (December 4th, 2018)

Android Pie support

built with GCC 8.2

many source updates and security fixes

a few ZRAM tweaks

v59 (September 30th)

many f2fs backports

important fixes and improvements for the maple I/O scheduler

minor misc. updates & fixes

v58.1 (September 1st)

fixed 2nd CPU policy bug

v58 (August 30th)

built using the GNU gold linker

a few small performance improvements

impulse is the default CPU governor

bricked hotplug forces both cores to be online when the screen is on

CPU and memory bandwidth overclocking

rebased on top of Adrian's latest sources

v57 (May 28th)

cpufreq stack backported from Linux 3.10

minor misc. updates/fixes

v56.4 (May 7th)

built with an updated GCC 7.3 Linaro toolchain

some updates for sdcardfs

up-to-date with Adrian's kernel

minor miscellaneous fixes

v56.3 (April 25th)

some security fixes

some generic tweaks, improvements, optimizations and updates

v56.2 (April 6th)

a must-read: post #2

f2fs driver backported from Linux 3.10

build with an updated compiler & a few additional optimizations

v56.1 (April 4th)

a must-read: post #2

added support for the 20180331 and future builds of LineageOS 15.1

built with QUVNTNM-TC (GCC 7-based toolchain) (thanks to @sudokamikaze)

minor updates, fixes and improvements

v56 (4th March)

fixed installation on LineageOS 15.1

tweaked interactive cpufreq governor

zen-tune tweaks for the task scheduler

faster boot

sdcardfs & f2fs improvements

several security fixes

v55 (31st January)

AutoSMP hotplug is back, and it should be stable now!

workqueue stack backported from Linux 3.10

random number generator driver backported from Linux 4.1

a few updates & improvements for some libraries

improved kgsl performance (more info here)

v54.2 (24th December)

built with more compiler optimizations

fix for I/O errors

minor adjustments for memory management and maple I/O scheduler

v54.1 (21st December)

directIO patches (they should improve filesystem speeds)

fixes for some CVEs

additional GCC optimizations

added a toggle for CRC checks

patches by Nvidia to improve battery life

v54 (4th December)

built with -O3 optimizations

new installer: BootBridge by Adrian + AnyKernel2 by osm0sis

cpu_input_boost duration set to 100 ms by default

Efficient unaligned memory access enabled

lmk/memory management updates & fixes

UKSM removed, legacy KSM restored

random number generator improvements

many miscellaneous updates and fixes (CVEs and such)

v53 (6th November)

do not flash on Oreo 11062017

task scheduler backports, PELT scheduler enabled

random number generator backported from Linux 3.16

f2fs updates

cpu_input_boost added (replaces CAF CPU boost)

UKSM v0.1.2.3 optimized for ARM devices & enabled by default

maple I/O scheduler tweaks, enabled by default

AutoSMP hotplug removed, added bricked hotplug

lower GPU idle frequency

minor miscellaneous updates and fixes

v52 (24th October)

once again, the kernel has been re-built from scratch

built with GCC 5 and proper optimizations for Krait CPUs

I/O schedulers: added maple

TCP congestion control algorithms: westwood set as default

hundreds of updates and backports, mostly related to the kernel's task scheduler

memutils optimizations for Krait CPUs

power-efficient workqueues

Gentle Fair Sleepers tunable

v51 (9th October)

built from scratch on top of Adrian's kernel for Oreo with the following changes:

compiled with gcc-5-based UBER Toolchain

optimizations for Krait CPUs (thanks to the Linaro team)

memutils optimizations for Krait CPUs

CPU governors: intellidemand

CPU hotplugs: AutoSMP (enabled by default)

I/O schedulers: maple (enabled by default)

CAF's cpu-boost removed, replaced by Sultanxda's cpu_input_boost

power-efficient workqueues

Gentle Fair Sleepers tunable

miscellaneous source updates

v50 (21st September)

f2fs stability fixes

v49 (16th September)

f2fs updates

voltage adjustments

v48.1 (13th September)

built with GCC 5

fixes for SoDs

v48 (11th September)

CPU voltage control removed (unstable and broken)

CPU frequency table cleaned and polished

added cpu_input_boost by Sultanxda (it replaces the default cpu-boost driver)

random number generator driver backported from Linux 3.16

v47 (15th August)

further improved CPU L2 frequency table

SONY logo bug fixed

minor improvements and fixes

CPU voltage control

f2fs updated to Linux 3.4-4.4-rc1

v46.1 (7th August)

built with an updated GCC 7 UBER Toolchain and different optimizations

impulse CPU governor

source updates/improvements

v46 (20th July)

completely renewed code base!

up-to-date with Adrian's kernel: fully compatible with the latest light effects

CPU hotplugs: AutoSMP

I/O schedulers: maple, fiops, row, bfq, cfq, noop, deadline, test

Gentle Fair Sleepers/Arch Power toggles

all TCP scheduling algorithms are available (westwood is enabled by default)

power-efficient workqueues

PELT task scheduling enabled

CPU overclocking and underclocking

GPU overclocking

hundreds of source updates and backports (related to: f2fs, kernel/sched/, workqueues, locking, timekeeping...)

async fsync is supported on both ext4 and f2fs

v45.2 (28th June)

security fixes

v45.1 (12th June)

security fixes and backports

v45 (4th June)

real CPU underclocking (137,1 MHz)

security fixes and backports

follow these instructions carefully:

init.d script editing

v44.1 (30th May)

source updates

built with updated UBER GCC 7 Toolchain

less freezes?

v44 (May 26th)

backported Codel network scheduling algorithm

lots of rcu and kernel/sched/ backports

built with an ad-hoc set of optimization flags

random number generator driver backported from Linux 3.19

v43 (May 22nd)

state_notifier updated with support for PM suspension

lots of source updates

cache dropping and laptop mode enabled by default

v42.3 (19th May)

source updates

v42.2 (7th May)

a few security fixes

v42.1 (6th May)

built with updated and optimized GCC 7 UBER toolchain

sdcardfs updates

v42 (5th May)

build with GCC 7 and the UBER Toolchain

source updates

v41 (2nd May)

cpu-boost updates

added cpu_power driver

new CPU governor: umbrella_core

source updates

fsync toggle

some optimization flags removed

v40 (1st May)

built with updated UBER 6.x toolchain

source updates

new PM suspension method

v39.1 (18th April)

f2fs updates

v39 (9th April)

sdcardfs support.

Must read

: about sdcardfs

readded zzmoove CPU governor

v38.1 (8th April)

if AFH shows "No mirror found", click here: Helium v38.1 on Google Drive

built with my optimized GCC 6.3 UBER toolchain

tweaked CPU L2 frequency table

new i/o scheduler: maple

v38 (6th April)

Makefile optimizations

lots of kernel backports and fixes

v37.3 (3rd April)

source updates

download link: Helium v37.3

v37.2 (21st March)

re-added msm_limiter

source updates

v37 (12th March)

source rolled back to pre-v30.1 status (minus some updates & fixes added by me)

added some of the most important features of v31 and v34

all the latest updates from Adrian

built with Linaro GCC 6.3.1 toolchain

v36 (28th February)

built with Linaro GCC 6.3 toolchain

source updates

v35 (11th February)

built with updated UBER Toolchain & different optimization flags

source updates and code cleanup (leftovers from the removal of CPUQuiet))

v34.2 (28th January)

build with updated and optimized toolchain

v34.1 (20th January)

source updates

v34 (15th January)

FauxSound updated to v3.8 (ported from the msm8974 version)

Powersuspend removed

alucard and intelliplug hotplugs have been updated

v32.1, v32.2, v33 (11th January)

v32.1 is waste

v32.2 is good but it's the same of v31 + optimizations

v33 should be same as v32 but with good performance

v32 (10th January)

built with updated & optimized UBER Toolchain and proper GCC flags

major improvements to: state notifier, MSM hotplug,

minor source updates and optimizations

new CPU governor: elementalx

async fsync enabled for f2fs

v31 (31st December)

built with updated and optimized UBER Toolchain

gcc flags have been reworked

v30.3 (21st December)

built with updated UBER Toolchain (for gcc 6.2)

source updates

v30.2 (12th December)

source updates

v30.1 (8th December)

source updates (fix for tethering issue in 7.1.1)

built with updated UBER toolchain

v30 (28th November)

built with up-to-date UBER GCC 6 toolchain and more optimization flags

new installer, based on the old anykernel, now completely fixed and with lots of improvements - big thanks to @Andreus94

source updates + GCC 6 warnings have been fixed

new CPU govs: HYPER, darkness, ondemandplus

tweaked some I/O scheds

CPU boots at 1728 MHz even on old ROM's

v29 (16th November)

source updates: drivers/cpufreq/ backported from Linux 3.10

source updates: kernel/workqueue backported from Linux 3.10

source updates: drivers/char/random backported from Linux 3.16

CPU governors: all removed, only impulse plus the stock ones are present

CPU hotplugs: updated bricked_hotlpug and AutoSMP, added Thunderplug

suspension drivers: added State Notifier

build with updated UBER Toolchain and full -O2 optimizations

CPU hotplugs: removed CPUQuiet by Nvidia

installer: switched to the kernel injector

msm_limiter: massive driver update

source updates: updates to UKSM, kernel/sched/ and tons of other smaller updates

v28.2 (1st November)

Linux 3.4.113

v28.1 (29th October)

cpu input boost enabled by default

source updates

v28 (23rd October)

improved AnyKernel installation template

f2fs up-to-date with upstream

added cpu_input_boost by Sultanxda

GPU power saving tweaks

GPU undervolting

source updates and cleanups

v27 (17th October)

download here

CPU L2/bus overclock

exFAT driver updated

GPU now idles at 128 MHz

v26 (1st October)

load-based cpu boost

big code cleanup

v25.5 (22nd September)

source fixes and optimizations

v25.4 (10th September)

dynamic fsync removed (it was unstable and unneeded))

v25.3 (7th September)

built with GCC 6.2 + updated & optimized UBER Toolchain

source updates

v25.2 (31st August)

rebuilt using Adrian current defconfig

optimizations for non-rotational storage devices

switched to gzip compression (faster and doesn't cause problems)

v25.1 (23rd August)

source updates

v25 (16th August)

readded 400 MHz frequency for GPU

UKSM auto or manual handling

source updates

v24 (12th August)

built with updated and optimized UBER Toolchain

added quickwakeup

memcopy optimizations for Cortex-A15

source updates

v23.2, 23.3, 23.4 (29th July, 3rd August, 4th August)

source updates

v23.1 (25th July)

source updates

v23 (21st July)

many source updates

CPUQuiet governors added: userspace, balanced, runnable_threads

CPU boost disabled

CPU overclock disabled at boot (no more overheating when Optimizing apps)

v22.1 (14th July)

LMK commit revert (fix for the bad RAM management of v22)

v22 (13th July)

built with updated UBER Toolchain

lots of source updates

CPUQuiet (by Nvidia): a sort of hotplug that helps us to save power

sysfs interface to control the Gentle Fair Sleepers, Arch Power and the CRC check

2 new CPU govs: zzmoove v1.0b8 and Barry Allen

improved Kcal calibration

added asynchronous fsync and dynamic fsync

UKSM v0.1.2.3 optimized for ARM arch

entropy tweaks

thanks to: faux123, neobuddy89, airlessproject, Nvidia, franciscofranco, ZaneZam, Yank555.lu, BrateloSlava, dorimanx

v21.1 (4th July)

Adrian's fix for reboot from recovery

various fixes related to msm_limiter and the installation script

v21 (2nd July)

built with an updated UBER Toolchain

many kernel source updates

USB fast charge replaced with USB fast charge v2

the script_persist thing has been fixed (I think it had never worked until now)

v20.2 (29th June)

kernel source updates

v20.1 (28th June)

up-to-date with CM's kernel

v20 (22nd June)

built with an updated UBER toolchain

switched from Anykernel by @nosedive to the injector by @Adrian DC (fixes never-ending "unpacking kernel")

2D GPU overclock

v19.1 (14th June)

up-to-date with our CM kernel

avoid overwriting your custom init.d script: more details here

v19

built with updated and optimized UBER toolchain

improved GPU OC

AutoSMP CPU hotplug

disabled CRC check (speeds up I/O)

a few small tweaks

v18.2 & v18.3

GPU OC improvements

up-to-date with Adrian's kernel

v18.1

improved GPU OC

v18

stable CPU OC up to 1998 MHz

improved GPU OC (we need to run benchmarks to confirm)

all of the latest source updates

v17

up-to-date with CM's sources

GPU OC (480 MHz)

v16

Do not enable CPU overclock!

built with updated and optimized UBER Toolchain

ZRAM bug fixed

v15.2

up-to-date with Adrian's kernel (today's commits bring a big f2fs update)

CPU overclock and underclock has been removed. I'll rewrite OC from scratch soon.

v15.1

up-to-date with Adrian's kernel source

v15

added alucard hotplug, adapted for a dual core CPU

up-to-date with Adrian's sources

v14.1

up-to-date with Adrian's source

v14

greatly improved CPU frequency table

Adrian's latest updates

v13

MultiROM support

AOSP ROMs should be supported

CPU overclock sleep of death fixed

v12.3

source updates

v12.2

built with GCC 6.1 & my custom UBER Toolchain, built with Cortex A15 optimizations

you can use your device as a USB keyboard (https://github.com/pelya/android-keyboard-gadget)

v12.1

up-to-date with Adrian's source

vfs cache pressure set to 100

v12

up-to-date with Adrian's work

important vfs fix by Linus Torvalds (fixes slow performance in a certain scenario - more details on github)

powersuspend controls some parameters of memory management

Nvidia CPU relaxation code (even though it seems that it's useless to us)

v11

built with GCC 6 and the very latest UBER Toolchain

interactive governor readded

up-to-date with Adrian's latest source

v10

Linux 3.4.112

reverted to GCC 5.3 (to fix camcorder)

slim CPU governor

power efficient workqueues implemented in other places

v9

built with a cleaner defconfig

v8

Build with GCC 6.0 and the latest UBER toolchain

Gentle Fair Sleepers are disabled

Network speed tweaks (see Github)

Optimized ARM RWSEM algorithm

all improvements listed amongst v7's features

CPU governor when booting from charging mode is set in a more elegant way

v7

beta 4 -

only for CM13 0423

power efficient workqueues implemented in even more places

modulelessness

updates to the zen I/O scheduler

beta 3

CPU underclock to 189MHz

power-efficient workqueues implemented in various places

new I/O scheduler: tripndroid

bricked hotplug update, intelliplug tweaks for our device

governors tweaked for our device

torch fixed!

bug fixes & some flags removed from Makefile

CM13 only (for now)

More info & download: v7 beta 3

v6.2

a small number of source updates

v6.1

source updates & Linux 3.4.111

build freshly from v5 to trash all the issues and lags

v6.0

loads of source updates, fixes etc.

new CPU governors: dancedance, xperience, lionheart, intellidemand2, interactive

optimized libs

v5.0

full changelog here: Helium v5 changelog

v4.7

source updates

not 100% stable according to Adrian (in my case, it's working well)

v4.6

CPU underclocking

v4.5

smoother (finally!)

no underclocking (it will be readded very soon)

v4.3

CPU underclock to 281 MHz

experimental Android M support

earlysuspend removed

fixed slow speed & long boot after booting from offline charger

if you have slower performance, stick to v4.2

v4.2

interactive governor (use it at your own risk, will probably cause reboots)

CPU 1458 MHz bug fixed

v4.0

Motorola memcpy enhancements for Krait CPUs

some source updates

[*]CPU 1458 MHz bug (only on certain devices)! Caution!

super smooth!

v3.4

a couple of source updates

yankactive (it's bugged and it will be removed) and smartmax CPU governors

memcpy optimizations and auto hotplug disabled for testing purposes

v3.3

latest source updates

NTFS read/write support

SELinux is enforcing

v3.2

latest touchscreen fixes by @AdrianDC

auto hotplug added

v3.1

incall touchscreen bug fixed (big thanks to @Adrian DC)

Motorola memcpy optimizations (faster copy to memory)

CPU frequency table finally fixed

msm_mpdecision fixed

dynamic fsync temporarily removed

other source updates

v3

CPU overclock up to 1,944 GHz

new CPU governor: impulse

greatly improved CPU-boost (now it has got more options & new features)

dynamic fsync v1.5

build with the latest UBER toolchain & GCC 5.2

v2.2

SELinux is permissive (for M)

source updates and f2fs updates (thanks to @Mrcl1450 and @Adrian DC)

clean frequency table

UKSM updated to v0.1.2.3

bricked hotplug

v2.1

all the TCP congestion control algorithms are available

WLAN source updates

initial build for M

v2

FauxSound v3.6

debugging info removed from modules (now they're smaller)

CPU governors: interactive removed, bioshock, wheatley, ondemandplus, intellidemand2 added

I/O schedulers: added fifo, vr, zen

intellithermal

intelliplug

ZRAM for now removed (it caused kernel panics)

UKSM 0.1.2.1

v1

Linux 3.4.110 + other device-specific tweaks (thanks to @Mrcl1450 & @Adrian DC)

built with GCC 5.2.1 and UBER Toolchain + various optimization flags

CPU undervolting

sioplus I/O scheduler

ZRAM & zsmalloc backported from Linux 3.14

KSM (kernel samepage merging)

inbuilt frandom support

swap support

USB fast charging

Debugging

/proc/kmsg is a file that stores all the kernel messages from the very first seconds of the boot process. A copy of that file isn't always needed to fix a bug, but since I've explained how to get one I don't even remember how many times, I'll write here the needed steps:

1. open a terminal on your phone

2. run the following commands:

su
dmesg > /sdcard/helium.log

3. the log will be stored in helium.log.

If the issue caused a reboot, step number 2 changes:

su
cp /proc/last_kmsg /sdcard/helium.log

Downloads

Latest version: Helium kernel v63 for Android Q

All versions: Helium kernel on AndroidFileHost

Remember to always check the second post before installing, to see if there are warnings/known bugs!

Thanks to:

@Adrian DC

@daedroza

@Mrcl1450

@bbedward

@pec0ra

@DooMLoRD

@nosedive

@dorimanx

@faux123

@Sultanxda

@osm0sis

@GalaticStryder

@Andreus94

@neobuddy89

@nikhil18

@Unusual Man

@Onawt

and all the authors of the hundreds of github commits in Helium's repo!

XDA:DevDB Information

Helium kernel, Kernel for the Sony Xperia SP

Contributors

Tomoms

Source Code: http://github.com/Tomoms/helium_kernel/tree/lineage-16.0

Kernel Special Features:

Version Information

Status: Stable

Current Stable Version: 63.0

Stable Release Date: 2020-11-20

Created 2015-11-17

Last Updated 2020-11-20