[EOL] [OP5] [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,104
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 5. 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 :)


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 12)
  • 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: 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 #2: 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

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

AnyKernel (7.1.x): https://github.com/nathanchance/AnyKernel2-archive/commits/op5-flash-7.1.x
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:

nathanchance

Senior Recognized Developer / Contributor
Jul 22, 2015
13,760
50,104
29
Mesa, AZ
nathanchance.dev
Some initial notes:

1. I have been working on this non-stop since I got the phone yesterday; it's been very stable as I have not made any drastic changes.

2. I have included a few normal features; I am open to additional suggestions (though please read the entire OP before doing so).

3. If you flash the custom version. please let me know if it works without issue so I can add it to the list. If it doesn't, please follow the bug reporting policy in the OP.

I have been up for almost 24 hours at this point so I hope I didn't miss anything but I plan on addressing any issues tomorrow/Sunday if any come up! I do also encourage you to participate in beta testing via Telegram, especially with all the custom ROMs.
 

str8str

Senior Member
Apr 1, 2013
3,906
1,046
Kitchener Ontario
Some initial notes:

1. I have been working on this non-stop since I got the phone yesterday; it's been very stable as I have not made any drastic changes.

2. I have included a few normal features; I am open to additional suggestions (though please read the entire OP before doing so).

3. If you flash the custom version. please let me know if it works without issue so I can add it to the list. If it doesn't, please follow the bug reporting policy in the OP.

I have been up for almost 24 hours at this point so I hope I didn't miss anything but I plan on addressing any issues tomorrow/Sunday if any come up! I do also encourage you to participate in beta testing via Telegram, especially with all the custom ROMs.
Wow, nice to see you here been a long time
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 115
    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 5. 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 :)


    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 12)
    • 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: 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 #2: 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

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

    AnyKernel (7.1.x): https://github.com/nathanchance/AnyKernel2-archive/commits/op5-flash-7.1.x
    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.
    72
    Update!

    ALRIGHT, after head bashing and teeth gnashing, I finally have a unified kernel branch for OxygenOS and custom ROMs! This is unique in the OnePlus scene (at least from what I have seen) because kernel developers traditionally have two branches: one for OOS and one for custom ROMs. I can't take full credit for the initial idea, @neobuddy89 made the comment on Nougat he would like to do this. I decided to act on it though now that Lineage has started seeding out 8.1.0 builds. What this ultimately means for you guys is the kernel should perform almost identically between both OOS and custom ROMs. Previously, there may be patches missing between the two. This took a LOT of effort for a few reasons:

    1. I needed to improve AnyKernel2 to support two different module paths since I've seen both with ROMs now: /system/lib/modules (as it has traditionally ben) and /system/vendor/lib/modules (which is what Google recommends). @osm0sis was incredibly supportive of getting the changes into AK2 upstream, I cannot sing enough praises of working with him (give his thread a like if you haven't already, custom kernels wouldn't be as compatible as they are without his tool).

    2. I had to distill Lineage's changes from OnePlus's. On Nougat, merging in the latest CAF tag into OnePlus's source was pretty much impossible, they destroyed the power stack with Dash Charging. Merging the latest CAF tag is a good idea for several reasons (like security and bug fixes) so to get around this, Lineage took the latest CAF tag for our chipset and added the OnePlus specific drivers that were needed to separate folders/files. On Oreo, merging the latest CAF into OnePlus's source has been relatively painless (a few conflicts here and there but nothing as bad as before). However, rather than rebase their changes (or even assess if the way they did the source on Nougat was necessary anymore) on OnePlus's Oreo source, they just took the latest Oreo tag, added the Nougat versions of the drivers, then updated those drivers to the Oreo versions. It's created some interesting incompatibilities, specifically with NFC.

    3. Finally, I had to make sure everything was good with a few other big ROMs. I am a part of Dirty Unicorns so I obviously had to make that compatible. Codename: Phoenix has become very popular in the past couple of weeks so I wanted to make sure everything was working with that. @siankatabg has been a pleasure to work with, he's even building Flash inline, which is great! Validus and GZOSP are also known to be compatible and @martinusbe is another great developer who doesn't get enough credit.

    All in all, I have a great, solid kernel at the end and it will make keeping it up to date much easier :)

    A couple of side notes:

    - I just started my university semester on Monday. I have not been performing my best during the past few semesters so I will really need to focus. I will still be releasing semi-regular updates but they will most likely not contain much more than CAF and linux-stable updates, unless something really piques my interest).

    - I am going to try and keep the supported custom ROMs section up to date this cycle. Please tell me if you notice any issues so I can either fix them or declare a ROM incompatible. Generally, ROMs that follow Lineage in terms of device support will be supported. Any major deviation that would require a third build just for them means incompatible.

    - If anyone has any questions on how I did the branch unification, let me know, I'm happy to answer questions.

    Typical disclaimer: 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!

    Downloads

    OOS: http://nchancellor.net/downloads/kernels/op5/8.0.0/oos/stable/
    Custom: 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.0.0
    68
    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).
    64
    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
    60
    Update!

    Each update point deserves their own description so wall of text inc. :p

    I am really proud of this update as I should have squared away all outstanding custom ROM bugs.

    • Linux 4.4.112: As I know I have gained several users over the past couple of weeks, if you are not familiar with it, I take linux-stable from kernel.org. It's pretty much what determines my release cycle. Latest stable will always be delivered within 24 hours of its release upstream though I usually do like I am not and make it as close as possible.
    • Disable NFC wakelock on custom ROMs: For those of you who don't know, on almost every ROM sans OmniROM, the pn544 NFC driver in combination with the AOSP NFC HAL caused the phone to stay awake permanently. This is 99.99% a userspace issue but not having deep sleep is unacceptable imo. A few users of NFC didn't squawk when I made this change in beta so the extra deep sleep will be most welcome!
    • Fix DCI-P3 not persisting across screen on/off on custom ROMs: Custom ROMs use Lineage's LiveDisplay driver, which I had modified to allow for OnePlus's night mode to still worked. Turns out I goofed this a little bit so DCI-P3 was turning off and not getting turned back on when you turned the display off then on...
    • Sync with Open Beta 4: Nothing much to say here, should work perfectly fine on stable 5.0.1

    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!

    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.1.0