/* Features */
Supports OnePlus 7, OnePlus 7 Pro, OnePlus 7T and OnePlus 7T Pro
Fully rebased kernel without unnecessary OnePlus' code
Latest CAF msm-4.14 kernel fully merged
Using zswap + vnswap to replace zram
- Ditched conventional zram swap approach for more efficient memory operations
- Backported zsmalloc memory allocator from mainline
- Backported zswap compressed page cache from mainline
- Samsung's Galaxy S9 memory modifications merged for better swapping efficiency tuned for Android
Use CONFIG_HZ = 300
Optimized power configuration
BBR as the default TCP network congestion control
vDSO 32 patches to improve 32-bit performance
vmalloc backported from mainline to improve memory allocation performance
Latest Linux 4.14 subversion merged
DM-verity fully disabled (you can remount /vendor to R/W properly)
Additional power savings applied to the display panel
RTL8152/8153 USB LAN adapter support
Built with -O3 speed optimizations
Built with latest GCC
Entropy hook on storage removed
Latest mainline f2fs support with GC fixes
CFQ I/O scheduler backported from mainline
Systemless installation (the kernel doesn't touch /system or /vendor)
Modules support disabled for lighter kernel
Removed RTB(interrupt) logging entirely
A whole lot more...
/* Details */
- Fully rebased kernel without unnecessary OnePlus' code -
This kernel is not based on stock OxygenOS kernel source provided by OnePlus. Instead, it’s based on the latest and greatest Qualcomm has to offer. Only the necessary parts from the OnePlus kernel has been cherry-picked, such as OnePlus 7 specific device drivers.
This brings 2 major changes: less debugging code and an overall lighter kernel.
There are miscellaneous changes made by OnePlus that are supposed to maximize utilization of system memory. But seeing how it’s implemented(heavily relying on zram and a physical writeback swapfile), I decided to remove it entirely.
Users are recommended to disable the “RAM Boost” feature from Settings > System > RAM Boost.
Due to the completely different base, the memory management with this kernel will be drastically different from other kernels.
- Latest CAF msm-4.14 kernel fully merged -
This kernel is also constantly merging the latest Qualcomm Android 4.14 kernel. This tag contains more up-to-date changes from Qualcomm than the regular Snapdragon 855 tag(sm8150).
- Use CONFIG_HZ = 300 -
This changes the context switching interval from 10ms to 3.33ms. Pixel used this for years and Google recommends other vendors to do the same for less jitter.
This is even more important on displays with higher refresh rates.
- Optimized power configuration -
Stock OnePlus configuration forces display-related processes to use the Gold cluster(formerly known as big cores) exclusively.
This configuration brings a huge power regression since it makes every frame dispatch to wake up and use Gold cores.
This kernel resets this profile to use the configuration Google recommends, which is to use the Silver cluster(formerly known as LITTLE cores) exclusively instead. No performance penalty was noticed with this change while massively improving battery life.
- BBR as the default TCP network congestion control -
BBR is a (relatively)new TCP congestion control developed by Google, and it’s regarded as one of the best things you could do to your network configuration. You can find its benefits easily just by Googling BBR. I’ve been personally running BBR for months on various Linux machines including the server running arter97.com and it’s been great.
Now that our Android kernel is running v4.14, I’ve enabled BBR and backported other BBR changes from mainline.
/* Notice */
5G variant is unsupported.
Only OxygenOS is supported, but it is likely that the kernel will work with other ROMs. Though you may encounter minor issues.
Feel free to tip me which commits are needed to fix other ROMs.
/* f2fs */
OnePlus 7T and OnePlus 7T Pro users cannot use f2fs without involving heavy and risky repartitioning operations due to Dynamic Partitions.
This kernel fully supports f2fs for /data and I encourage everyone to use f2fs with my kernel for better performance.
See here as to why you might want f2fs.
TWRP is not integrated to the kernel.
Please use a TWRP installer to install TWRP on top of my kernel.
To use f2fs, simply format /data to f2fs with TWRP.
Afterwards, flash f2fs-optimize.zip from http://arter97.com/browse/f2fs/optimize
There’s no need to flash separate zip files for replacing f2fs-tools or fstab.
/* Disclaimer */
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards,
thermonuclear war, or you getting fired because the alarm app failed. Please
do some research if you have any concerns about features included in this kernel
before flashing it! YOU are choosing to make these modifications, and if
you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
/* Thanks to */
nathanchance - for android-linux-stable
/* Instructions */
1. Read the above. Please.
2. Flash the zip file from your existing TWRP recovery.
2.1. FK Kernel Manager also works for installation. EXKM is unsupported and reported to brick the device due to installation failures.
/* Downloads and links */
r30 and up only supports Android 10
arter97 kernel for OnePlus 7, Kernel for the OnePlus 7 Pro
Source Code: https://github.com/arter97/android_k...oneplus_sm8150
Kernel Special Features:
Last Updated 2019-11-30