[EOL] [OP5T] [OOS/CUSTOM 8.1.0] [4.4.140] [CLANG 7.0] Flash Kernel v4.29

Status
Not open for further replies.
Search This thread

nathanchance

Senior Recognized Developer / Contributor
Jul 22, 2015
13,760
50,106
29
Mesa, AZ
nathanchance.dev
UsFSxNO.png

Introduction

As of July 11th, 2018, this kernel has been discontinued as I have sold the device. Since I don't recommend using a kernel that is not constantly updating, I suggest looking at RenderZenith if you are on OxygenOS or Singularity if you are on a custom ROM.

Hello everyone, this is my personal kernel for the OnePlus 5T. While I am not a super star kernel developer, I do know my way around it. My philosophy on kernels is pretty simple:
  • Follow stable Linux always. Updates will be delivered within 24 hours of their release to kernel.org.
  • Stable kernel rules work best (only add small things when possible).
  • Security and stability are paramount. Vulnerabilities are patched as soon as they are disclosed.
  • Features will be added only as needed (I have a list of things in the FAQ I will NOT add, even if requested).
Hopefully you enjoy :)

Couple of quick notes for this thread: I do not currently own a OnePlus 5T (I own a OnePlus 5) but I have a couple of reliable testers and the tree is unified so there should be no issues. Since the builds are unified, the zip name and kernel version will show OP5.


Important thread information!

  1. I refuse to acknowledge/respond to bug reports that do not include clear steps to reproduce, a logcat, and a console ramoops (if random rebooting) or a dmesg (any other issues). Follow this guide to do this.
  2. Keep things civil, I do NOT tolerate flaming of any kind.
  3. OT is allowed.

Features

NOTE: This list fluctuates with versions, it will not always been 100% up to date

Here are the major features of the kernel (feel free to explore Github)
  • Up to date with OOS (5.1.3 and Open Beta 10)
  • Custom branch compatible with most 8.1.0 ROMs (see below)
  • Up to date with the latest stable Linux version (4.4.140)
  • Up to date with the latest CAF tag for Oreo (LA.UM.6.2.r1-09300-sdm660.0)
  • Mainline patches from Linux, focusing on bug fixes/security
  • Mainline CFQ scheduler improvements
  • Kernel hardening from CopperheadOS
  • Several subsystems converted to use power efficient workqueues
  • The following user facing features:
    • Accidental touch protection on hardware keys
    • Backlight dimmer
    • KCAL color control
    • Maple I/O scheduler
    • Sweep2sleep
    • Sound control
    • Wakelock control
  • Latest WireGuard snapshot (0.0.20180708)
  • Westwood as the default TCP algorithm
  • Built with a self compiled Clang 7.0 toolchain with a local initialization sanitizer (build script here, previously built with the latest Google Clang 6.0 toolchain here)
  • Hides bootloader unlock from SafetyNet (can still fail through other means)
  • Disables dm-verity
  • Does NOT modify decryption status
  • Flashed with AnyKernel2 (thanks to @osm0sis)

Downloads

Primary: https://github.com/nathanchance/op5/releases

NOTE #1: FOR THIS DEVICE, ONLY 3.x AND ABOVE ARE COMPATIBLE, MEANING NO NOUGAT SUPPORT!!

NOTE #2: The newer builds of 3.x and 4.x are unified! The zip will dynamically detect if you are on OxygenOS or a custom ROM and flash the correct kernel image.

NOTE #3: 3.x is for OOS 5.x 8.0, 4.x is for OOS 5.x 8.1


Installation

Through TWRP:

If you are on stock:

  • If you are on the stock kernel: flash the kernel zip and reboot
  • If you are on a custom kernel: flash the stock boot image matching your build number, flash the kernel zip, and reboot. I would also recommend dirty flashing the latest OOS zip as well.
If you are on a custom ROM:

  • If you are on the kernel that came with your ROM: flash the kernel zip and reboot
  • If you are on a custom kernel: dirty flash your ROM zip, flash the kernel zip, and reboot
Upgrading from one Flash version to the other:

Just flash the kernel zip and reboot

Through Franco Kernel Manager (requires root):

Getting back to stock if necessary (only needed if coming from another kernel):

  1. Grab the latest stock boot image from the OTA zip.
  2. Click on "Manual flasher", select the boot image, and select "Just Flash".
  3. Reinstall Magisk through Magisk Manager (Install -> Direct Install).

If on stock or upgrading from another Flash release:

  1. Download the zip (and optionally, the md5) from the link above
  2. Tap on "Manual flasher"
  3. Navigate to Download
  4. Tap on the zip, select Auto-flash, and choose one of the options.
  5. Reboot and enjoy!

Changelog

Latest release post!

GitHub serves as the ultimate changelog, links are at the bottom of this post


Frequently asked questions
1.1 Q: I am having an issue, can you help me?
1.1 A: I am not an amazing kernel developer but I will certainly try my best. First, start by reading the release posts, as I may make note of a particular issue. Also search the thread to see if I have discussed it before. If you see nothing, please provide me with a dmesg/last_kmsg and logcat, your ROM/kernel version, and a detailed description of the issue, following this guide. If I can't reproduce reliably, I'm not going to fix the issue.

1.2 Q: What ROMs are compatible with the custom builds?
1.2 A: As of March 14th, 2018, I have confirmed the following ROMs are 100% compatible with Flash:
  • LineageOS
  • Dirty Unicorns
  • Codename: Phoenix
  • GZOSP/Validus
  • OmniROM
  • AICP

If you are using a ROM with no issues, let me know and I'll add it here! If you are having issues, following the above steps and I'll attempt to fix whatever incompatibility there is. If I can't do it without breaking LineageOS/Dirty Unicorns, you're out of luck.

1.3 Q: Can you add xyz feature?
1.3 A: If you link me the commits or tell me what kernel you had the feature in, I can take a look at them. I will not go digging super hard for commits and I will ignore requests that don't include this information. I won't promise that I will merge every request but I will always take it into consideration. I will NOT add the following:
  • Overclocking or underclocking of CPU or GPU
  • Undervolting
  • Any governors other than interactive
  • Any schedulers other than cfq and maple
  • Anything that compromises performance

1.4 Q: How do I control the kernel?
1.4 A: I want to be very clear: the kernel does NOT need to be tuned to be useful. Most of the improvements are under the hood and don't require any user intervention to take advantage of them. In fact, if you don't know what you are doing, you could degrade the experience.

To control the user visible features of the kernel listed above, I recommend using either @franciscofranco's Kernel Manager for Franco Kernel (which has Flash Kernel support for downloading and automatically flashing the latest kernel zip along with some nice, user friendly ways for tuning the kernel) or @flar2's EX Kernel Manager.

1.5 Q: OMFG MY BATTERY SUXXXX PLS FIX!!!
1.5 A: The kernel doesn't drain any battery, use an app like BetterBatteryStats to figure out what app is screwing with your phone.

1.6 Q: I am not getting notifications on OOS, what is the cause?
1.6 A: This could be for a couple of reasons. If you haven't already, disable advanced optimizations in Settings > Battery > Battery optimization > Three menu dots. Another reason may be that I ship a compiled Wi-Fi module. I do this for two reasons: I want to have the latest fixes and I enable CONFIG_MODULE_SIG, which checks the signature of a module before loading it for security reasons. This could introduce some incompatibility with OOS, which is something I have no control over.


Thanks to:
The various other developers for their patches (specifically @zx2c4 for WireGuard and @joshuous for fixing the notification delay on Wi-Fi)
@osm0sis for AnyKernel2
@franciscofranco for adding Flash Kernel support to Kernel Manager for Franco Kernel
@adinkwok for being a bro
@phantom146 for the thread banner
All of you guys for viewing the thread


A note about donations

Quite a few people have asked to donate to me in the past and I have turned them down. I am not in this for the money, this is my hobby, something I truly enjoy. If you truly want to donate to something (it is not expected in the slightest), I recommend an entity like the Open Source Initiative, the Free Software Foundation, XDA, or any one of the people I have thanked in the OP. Additionally, you are free to copy any and all of my work; the only thing I request is that you not ask for donations as well (though I can't really enforce this lol). Thank you.


Kernel source links

8.0.0 (OxygenOS - 2.x): https://github.com/nathanchance/op5/commits/8.0.0-oos
8.0.0 (OxygenOS - 3.x) and 8.1.0 (custom ROMs - 3.x): https://github.com/nathanchance/op5/commits/8.x-unified

AnyKernel (8.x): https://github.com/nathanchance/AnyKernel2-archive/commits/op5-flash-8.x

DISCLAIMER: I openly welcome off topic in my threads. Mods, please do not clean off topic discussion and users, do not complain about off topic discussion here. I may direct you to another thread if it is so suited but I won't have the discussion cleaned. Thank you.
 
Last edited:

andrizmitnick

Senior Member
Jan 26, 2013
229
153
i try the non OOS version, the 8.0 kernel doesn't work at all, it get reboots to fastboot bootloader. and the 8.1 kernel is working fine, but i haven't test it intensively yet.
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 102
    UsFSxNO.png

    Introduction

    As of July 11th, 2018, this kernel has been discontinued as I have sold the device. Since I don't recommend using a kernel that is not constantly updating, I suggest looking at RenderZenith if you are on OxygenOS or Singularity if you are on a custom ROM.

    Hello everyone, this is my personal kernel for the OnePlus 5T. While I am not a super star kernel developer, I do know my way around it. My philosophy on kernels is pretty simple:
    • Follow stable Linux always. Updates will be delivered within 24 hours of their release to kernel.org.
    • Stable kernel rules work best (only add small things when possible).
    • Security and stability are paramount. Vulnerabilities are patched as soon as they are disclosed.
    • Features will be added only as needed (I have a list of things in the FAQ I will NOT add, even if requested).
    Hopefully you enjoy :)

    Couple of quick notes for this thread: I do not currently own a OnePlus 5T (I own a OnePlus 5) but I have a couple of reliable testers and the tree is unified so there should be no issues. Since the builds are unified, the zip name and kernel version will show OP5.


    Important thread information!

    1. I refuse to acknowledge/respond to bug reports that do not include clear steps to reproduce, a logcat, and a console ramoops (if random rebooting) or a dmesg (any other issues). Follow this guide to do this.
    2. Keep things civil, I do NOT tolerate flaming of any kind.
    3. OT is allowed.

    Features

    NOTE: This list fluctuates with versions, it will not always been 100% up to date

    Here are the major features of the kernel (feel free to explore Github)
    • Up to date with OOS (5.1.3 and Open Beta 10)
    • Custom branch compatible with most 8.1.0 ROMs (see below)
    • Up to date with the latest stable Linux version (4.4.140)
    • Up to date with the latest CAF tag for Oreo (LA.UM.6.2.r1-09300-sdm660.0)
    • Mainline patches from Linux, focusing on bug fixes/security
    • Mainline CFQ scheduler improvements
    • Kernel hardening from CopperheadOS
    • Several subsystems converted to use power efficient workqueues
    • The following user facing features:
      • Accidental touch protection on hardware keys
      • Backlight dimmer
      • KCAL color control
      • Maple I/O scheduler
      • Sweep2sleep
      • Sound control
      • Wakelock control
    • Latest WireGuard snapshot (0.0.20180708)
    • Westwood as the default TCP algorithm
    • Built with a self compiled Clang 7.0 toolchain with a local initialization sanitizer (build script here, previously built with the latest Google Clang 6.0 toolchain here)
    • Hides bootloader unlock from SafetyNet (can still fail through other means)
    • Disables dm-verity
    • Does NOT modify decryption status
    • Flashed with AnyKernel2 (thanks to @osm0sis)

    Downloads

    Primary: https://github.com/nathanchance/op5/releases

    NOTE #1: FOR THIS DEVICE, ONLY 3.x AND ABOVE ARE COMPATIBLE, MEANING NO NOUGAT SUPPORT!!

    NOTE #2: The newer builds of 3.x and 4.x are unified! The zip will dynamically detect if you are on OxygenOS or a custom ROM and flash the correct kernel image.

    NOTE #3: 3.x is for OOS 5.x 8.0, 4.x is for OOS 5.x 8.1


    Installation

    Through TWRP:

    If you are on stock:

    • If you are on the stock kernel: flash the kernel zip and reboot
    • If you are on a custom kernel: flash the stock boot image matching your build number, flash the kernel zip, and reboot. I would also recommend dirty flashing the latest OOS zip as well.
    If you are on a custom ROM:

    • If you are on the kernel that came with your ROM: flash the kernel zip and reboot
    • If you are on a custom kernel: dirty flash your ROM zip, flash the kernel zip, and reboot
    Upgrading from one Flash version to the other:

    Just flash the kernel zip and reboot

    Through Franco Kernel Manager (requires root):

    Getting back to stock if necessary (only needed if coming from another kernel):

    1. Grab the latest stock boot image from the OTA zip.
    2. Click on "Manual flasher", select the boot image, and select "Just Flash".
    3. Reinstall Magisk through Magisk Manager (Install -> Direct Install).

    If on stock or upgrading from another Flash release:

    1. Download the zip (and optionally, the md5) from the link above
    2. Tap on "Manual flasher"
    3. Navigate to Download
    4. Tap on the zip, select Auto-flash, and choose one of the options.
    5. Reboot and enjoy!

    Changelog

    Latest release post!

    GitHub serves as the ultimate changelog, links are at the bottom of this post


    Frequently asked questions
    1.1 Q: I am having an issue, can you help me?
    1.1 A: I am not an amazing kernel developer but I will certainly try my best. First, start by reading the release posts, as I may make note of a particular issue. Also search the thread to see if I have discussed it before. If you see nothing, please provide me with a dmesg/last_kmsg and logcat, your ROM/kernel version, and a detailed description of the issue, following this guide. If I can't reproduce reliably, I'm not going to fix the issue.

    1.2 Q: What ROMs are compatible with the custom builds?
    1.2 A: As of March 14th, 2018, I have confirmed the following ROMs are 100% compatible with Flash:
    • LineageOS
    • Dirty Unicorns
    • Codename: Phoenix
    • GZOSP/Validus
    • OmniROM
    • AICP

    If you are using a ROM with no issues, let me know and I'll add it here! If you are having issues, following the above steps and I'll attempt to fix whatever incompatibility there is. If I can't do it without breaking LineageOS/Dirty Unicorns, you're out of luck.

    1.3 Q: Can you add xyz feature?
    1.3 A: If you link me the commits or tell me what kernel you had the feature in, I can take a look at them. I will not go digging super hard for commits and I will ignore requests that don't include this information. I won't promise that I will merge every request but I will always take it into consideration. I will NOT add the following:
    • Overclocking or underclocking of CPU or GPU
    • Undervolting
    • Any governors other than interactive
    • Any schedulers other than cfq and maple
    • Anything that compromises performance

    1.4 Q: How do I control the kernel?
    1.4 A: I want to be very clear: the kernel does NOT need to be tuned to be useful. Most of the improvements are under the hood and don't require any user intervention to take advantage of them. In fact, if you don't know what you are doing, you could degrade the experience.

    To control the user visible features of the kernel listed above, I recommend using either @franciscofranco's Kernel Manager for Franco Kernel (which has Flash Kernel support for downloading and automatically flashing the latest kernel zip along with some nice, user friendly ways for tuning the kernel) or @flar2's EX Kernel Manager.

    1.5 Q: OMFG MY BATTERY SUXXXX PLS FIX!!!
    1.5 A: The kernel doesn't drain any battery, use an app like BetterBatteryStats to figure out what app is screwing with your phone.

    1.6 Q: I am not getting notifications on OOS, what is the cause?
    1.6 A: This could be for a couple of reasons. If you haven't already, disable advanced optimizations in Settings > Battery > Battery optimization > Three menu dots. Another reason may be that I ship a compiled Wi-Fi module. I do this for two reasons: I want to have the latest fixes and I enable CONFIG_MODULE_SIG, which checks the signature of a module before loading it for security reasons. This could introduce some incompatibility with OOS, which is something I have no control over.


    Thanks to:
    The various other developers for their patches (specifically @zx2c4 for WireGuard and @joshuous for fixing the notification delay on Wi-Fi)
    @osm0sis for AnyKernel2
    @franciscofranco for adding Flash Kernel support to Kernel Manager for Franco Kernel
    @adinkwok for being a bro
    @phantom146 for the thread banner
    All of you guys for viewing the thread


    A note about donations

    Quite a few people have asked to donate to me in the past and I have turned them down. I am not in this for the money, this is my hobby, something I truly enjoy. If you truly want to donate to something (it is not expected in the slightest), I recommend an entity like the Open Source Initiative, the Free Software Foundation, XDA, or any one of the people I have thanked in the OP. Additionally, you are free to copy any and all of my work; the only thing I request is that you not ask for donations as well (though I can't really enforce this lol). Thank you.


    Kernel source links

    8.0.0 (OxygenOS - 2.x): https://github.com/nathanchance/op5/commits/8.0.0-oos
    8.0.0 (OxygenOS - 3.x) and 8.1.0 (custom ROMs - 3.x): https://github.com/nathanchance/op5/commits/8.x-unified

    AnyKernel (8.x): https://github.com/nathanchance/AnyKernel2-archive/commits/op5-flash-8.x

    DISCLAIMER: I openly welcome off topic in my threads. Mods, please do not clean off topic discussion and users, do not complain about off topic discussion here. I may direct you to another thread if it is so suited but I won't have the discussion cleaned. Thank you.
    57
    It is with a heavy heart that I announce that I have sold my OnePlus 5; as a result, I will be dropping support for it. The thread will be closed but the Telegram group will remain open if you just want to hang out. For replacement kernels, I recommend RenderZenith for OxygenOS and Singularity for custom ROMs. Those guys do a good job and you'll be in good hands. I grew a lot as a developer on this device and I am going to miss it a lot but unfortunately, life comes first. I will always be around to ask questions and my source will be on GitHub if anyone wants to fork and continue it (I do ask you don't keep the Flash name, just mention me in the thread for credit).
    43
    Update!

    Thanks to the brilliant debugging of @joshuous, he narrowed down the config option that induces the notification delay. Please go thank one of his posts in the RenderZenith thread, I probably never would have figured this out myself.

    It appears that OnePlus has modified the qcacld-3.0 source and made a corresponding change to the WCNSS_qcom_cfg.ini file that configures the Wi-Fi driver. By us not having access to their Wi-Fi source yet including that option, we get notification delays.

    Commit for reference: https://github.com/EAS-Project/AnyKernel2/commit/ce662605bef9432f0d9dc9efc28556b23f6e221a

    You may notice some custom ROMs now having this issue since I pushed some options to Dirty Unicorns that included this change (commit). I have pushed the commit that fixes the issue to our Gerrit (source) so it is up to the ROMs that picked the change to also pick the fix. While ROMs pick it up, I am going to temporarily work around it within the source itself as a hack then revert it later.

    Remember any and all bug reports need to include logs and clear steps to reproduce (see the info in the OP). You should also know what version it started with. If you want to be a tester and get builds before they are released here or just hangout, feel free to stop by Telegram!

    Short changelog

    • Fix notification delays on OxygenOS thanks to @joshuous

    Downloads

    Primary: http://nchancellor.net/downloads/kernels/op5/8.x/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/op5/commits/8.x-unified
    AnyKernel: https://github.com/nathanchance/AnyKernel2/commits/op5-flash-8.x
    42
    Update!

    This release is fully compatible with OOS Open Beta 4 and brings along an updated NFC driver for custom ROMs. I will continue to do maintenance builds with the 3.x series for OOS stable, upgrading the Linux version and CAF tag but nothing much more. In theory, this release should be backwards compatible but if it isn't, please go back to the 3.x series. Additionally, if NFC is broken on your custom ROM, they need to update to use this commit. Please use the 3.x series until they integrate that change. Enjoy!

    Remember any and all bug reports need to include logs and clear steps to reproduce (see the info in the OP). You should also know what version it started with. If you want to be a tester and get builds before they are released here or just hangout, feel free to stop by Telegram!

    Short changelog

    • Rebased onto the latest 8.1 branch from OnePlus
    • Changed NFC driver for custom ROMs

    Downloads

    Primary: http://nchancellor.net/downloads/kernels/op5/8.x/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/op5/commits/8.1.0-unified
    AnyKernel: https://github.com/nathanchance/AnyKernel2/commits/op5-flash-8.x
    40
    Update!

    Rather large update but has been through the ringer. One of the biggest things with this update is the addition of the hardening patches released by CopperheadOS. The kernel is more protected and secure against things like buffer overflows and uninitialized variables. Additionally, I have changed to the Pixel 2's Wi-Fi stack, in the hopes of it being a little more stable and making the notification delay not as bad. We'll see how that goes. Enjoy!

    Remember any and all bug reports need to include logs and clear steps to reproduce (see the info in the OP). You should also know what version it started with. If you want to be a tester and get builds before they are released here or just hangout, feel free to stop by Telegram!

    Short changelog

    • Merge in OOS 5.0.2 and Open Beta updates
    • Linux 4.4.114
    • Hardening patches from CopperheadOS
    • Switch to Pixel 2's Wi-Fi stack
    • Compile kernel with self compiled Clang for a local initialization sanitizer

    Downloads

    OOS (8.0.0): http://nchancellor.net/downloads/kernels/op5/8.0.0/oos/stable/
    Custom (8.1.0): http://nchancellor.net/downloads/kernels/op5/8.1.0/custom/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/op5/commits/8.x-unified
    AnyKernel: https://github.com/nathanchance/AnyKernel2/commits/op5-flash-8.x