• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!
  • Fill out your device list and let everyone know which phones you have!    Edit Your Device Inventory

[EOL] [TAIMEN/WALLEYE] [9.0.0] [4.4.163] [CLANG 7.0] Flash Kernel 3.19

Search This thread

nathanchance

Senior Recognized Developer / Contributor
Jul 22, 2015
13,751
49,974
26
Mesa, AZ
nathanchance.dev
UsFSxNO.png

Introduction

NOTE: This kernel is currently not being updated. I recommend using Sultan's kernel instead.

Hello everyone, this is my personal kernel for the Pixel 2 (walleye) and Pixel 2 XL (taimen). I only own the latter but the kernel is fully unified. 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
Here are the major features of the kernel (feel free to explore Github)
  • Up to date with the November security update (android-9.0.0_r0.37) [see device specific notes below]
  • Up to date with the latest stable Linux version (4.4.162)
  • Patches from Code Aurora Forum targeting GPU, touchscreen/video, storage, and sound
  • Kernel hardening from CopperheadOS
  • Mainline Linux patches for CFQ and media memory allocation
  • Latest energy aware scheduling patches from kernel/common's android-4.14 branch
  • Several subsystems converted to use power efficient workqueues
  • Westwood as the default congestion algorithm
  • Optimized input and wake boosting and other optimization from Sultanxda
  • The following user facing features:
    • KCAL color control
    • Minimum/maximum backlight control
    • Vibration control
    • Wake gestures (thanks to @flar2)
    • Wakelock control
  • Latest WireGuard snapshot (0.0.20181018)
  • Built with a self compiled Clang 7.0 toolchain with a local initialization sanitizer (previously built with the latest Google Clang 6.0 toolchain here)
  • Hides bootloader unlock from SafetyNet (can still fail through other means)
  • Available to flash with AnyKernel2 (thanks to @osm0sis) [zip will automatically detect when Magisk is installed and patch the kernel so reflashing Magisk becomes unnecessary]


Downloads

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

It is called Wahoo as that is the unified name for the Pixel 2 (walleye) and Pixel 2 XL (taimen) [link 1 and link 2].


Installation

NOTE: These sets of steps should work for both initial installations and upgrades. All sane kernels on this device are just replacing the kernel image and maybe adding some cmdline parameters, which this kernel won't care about. If there are ANY issues after flashing this kernel over another, be sure to flash the stock boot image for your ROM, TWRP + Magisk if you want them, then the kernel before reporting any issues.

Through TWRP:

See their instructions for further information, you can install the kernel with TWRP temporarily booted or permanently installed.

  1. Boot into TWRP.
  2. Flash the zip (flashing Magisk is not necessary if you already have it installed).
  3. Reboot and enjoy!
Through FK Kernel Manager (requires root):

  1. Download the zip (and optionally, the md5) from my server
  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!

Commits


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: Can you add xyz feature?
1.2 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 schedutil
  • Any schedulers other than cfq and maple
  • Anything that compromises performance

1.3 Q: How do I control the kernel?
1.3 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 FK Kernel Manager (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.4 Q: OMFG MY BATTERY SUXXXX PLS FIX!!!
1.4 A: The kernel doesn't drain any battery, use an app like BetterBatteryStats to figure out what app is screwing with your phone.


Thanks to:
The various other developers for their patches (specifically @zx2c4 for WireGuard)
@osm0sis for AnyKernel2
@franciscofranco for adding Flash Kernel support to FK Kernel Manager
@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: https://github.com/nathanchance/wahoo/tree/oreo-dr1
8.1.0/9.0.0 Preview (2.00-2.28): https://github.com/nathanchance/wahoo/tree/oreo-mr1
8.1.0/9.0.0 Preview (2.29+): https://github.com/nathanchance/wahoo/tree/oreo-m2
9.0.0 (3.00-3.06): https://github.com/nathanchance/wahoo/tree/pie
9.0.0 (3.07+): https://github.com/nathanchance/wahoo/tree/pie-r2



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,751
49,974
26
Mesa, AZ
nathanchance.dev
Device specific nuances

  • Due to the way Google has structured security on the Pixel 2 and Pixel 2 XL, TWRP and the boot images may fail to boot when the security updates are out of sync (ROM is on one, kernel/TWRP is on another). I cannot control this. You are responsible for knowing when to flash a new update. If you are boot looping, flash back to the previous boot image.
  • Some of you may be wondering what this dtbo image is. It is short for device tree blob overlay, which allows Google to unify the kernel for the Pixel 2 and Pixel 2 XL. You are required to flash this along with the boot image to maintain full compatibility. This is automatically done with the zip so you do not need to worry about anything.
 
Last edited:

CyberpodS2

Senior Member
Mar 27, 2012
2,814
1,239
NE Pennsylvania Boonies
Ok @nathanchance since off topic is allowed please allow me to use the freedom to say cheers to you! Reading your OP reminded me of why I got into Android. Friendly atmosphere, off topic allowed, not in it for fame or donations and a sense of community contribution. That's what it's all about. :good:
Could not have said it better. Glad you're here with @nathanchance!!
 
  • Like
Reactions: nathanchance

nathanchance

Senior Recognized Developer / Contributor
Jul 22, 2015
13,751
49,974
26
Mesa, AZ
nathanchance.dev
Thank you. Worked great.

Quick question, if I now format user data can I run unencrypted?

No idea what will happen. As noted in the OP, I don't touch any sort of encryption status. The way things are done on Oreo is vastly different from anything before.

Can someone hook me up with an md5?

I'll start providing these as additional files, sorry I forgot this time around!

And thanks for the warm welcome everyone, glad to see so many familiar faces! :cowboy:

Sent from my Pixel 2 XL using XDA Labs
 

Top Liked Posts

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

    Introduction

    NOTE: This kernel is currently not being updated. I recommend using Sultan's kernel instead.

    Hello everyone, this is my personal kernel for the Pixel 2 (walleye) and Pixel 2 XL (taimen). I only own the latter but the kernel is fully unified. 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
    Here are the major features of the kernel (feel free to explore Github)
    • Up to date with the November security update (android-9.0.0_r0.37) [see device specific notes below]
    • Up to date with the latest stable Linux version (4.4.162)
    • Patches from Code Aurora Forum targeting GPU, touchscreen/video, storage, and sound
    • Kernel hardening from CopperheadOS
    • Mainline Linux patches for CFQ and media memory allocation
    • Latest energy aware scheduling patches from kernel/common's android-4.14 branch
    • Several subsystems converted to use power efficient workqueues
    • Westwood as the default congestion algorithm
    • Optimized input and wake boosting and other optimization from Sultanxda
    • The following user facing features:
      • KCAL color control
      • Minimum/maximum backlight control
      • Vibration control
      • Wake gestures (thanks to @flar2)
      • Wakelock control
    • Latest WireGuard snapshot (0.0.20181018)
    • Built with a self compiled Clang 7.0 toolchain with a local initialization sanitizer (previously built with the latest Google Clang 6.0 toolchain here)
    • Hides bootloader unlock from SafetyNet (can still fail through other means)
    • Available to flash with AnyKernel2 (thanks to @osm0sis) [zip will automatically detect when Magisk is installed and patch the kernel so reflashing Magisk becomes unnecessary]


    Downloads

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

    It is called Wahoo as that is the unified name for the Pixel 2 (walleye) and Pixel 2 XL (taimen) [link 1 and link 2].


    Installation

    NOTE: These sets of steps should work for both initial installations and upgrades. All sane kernels on this device are just replacing the kernel image and maybe adding some cmdline parameters, which this kernel won't care about. If there are ANY issues after flashing this kernel over another, be sure to flash the stock boot image for your ROM, TWRP + Magisk if you want them, then the kernel before reporting any issues.

    Through TWRP:

    See their instructions for further information, you can install the kernel with TWRP temporarily booted or permanently installed.

    1. Boot into TWRP.
    2. Flash the zip (flashing Magisk is not necessary if you already have it installed).
    3. Reboot and enjoy!
    Through FK Kernel Manager (requires root):

    1. Download the zip (and optionally, the md5) from my server
    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!

    Commits


    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: Can you add xyz feature?
    1.2 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 schedutil
    • Any schedulers other than cfq and maple
    • Anything that compromises performance

    1.3 Q: How do I control the kernel?
    1.3 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 FK Kernel Manager (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.4 Q: OMFG MY BATTERY SUXXXX PLS FIX!!!
    1.4 A: The kernel doesn't drain any battery, use an app like BetterBatteryStats to figure out what app is screwing with your phone.


    Thanks to:
    The various other developers for their patches (specifically @zx2c4 for WireGuard)
    @osm0sis for AnyKernel2
    @franciscofranco for adding Flash Kernel support to FK Kernel Manager
    @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: https://github.com/nathanchance/wahoo/tree/oreo-dr1
    8.1.0/9.0.0 Preview (2.00-2.28): https://github.com/nathanchance/wahoo/tree/oreo-mr1
    8.1.0/9.0.0 Preview (2.29+): https://github.com/nathanchance/wahoo/tree/oreo-m2
    9.0.0 (3.00-3.06): https://github.com/nathanchance/wahoo/tree/pie
    9.0.0 (3.07+): https://github.com/nathanchance/wahoo/tree/pie-r2



    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.
    78
    Update to 3.19!

    This will be the last build of Flash indefinitely. I am stepping back from Android as I have become exhausted with all of the work of staying up to date. I recently started a new job, which has consumed most of my free time, and I have been contributing to ClangBuiltLinux, a collaborative effort to get Clang support streamlined upstream. I got 85 patches into Linux 4.20 (97 total since the beginning of September) and I've contributed quite a bit to the continuous integration setup (not bragging or anything, just showing where my time has gone). I am not saying I will never be back but for right now, I will not be pushing any more builds.

    I am leaving the thread and Telegram group open for everyone to hang out in. I definitely recommend using @Sultanxda's kernel if you want something that is more up to date. He is obviously extremely talented and you'll be in good hands (maybe he'll start merging linux-stable? :p) I'm not leaving the scene by any means, I'm always happy to answer questions. Enjoy and cheers!


    Short changelog

    • Linux 4.4.163
    • Add some EAS commits from the Pixel 3 and msm-4.9 sources
    • Add kernel/common's mainline ZRAM backport with zstd algorithm
    • Some other Qualcomm commits


    Downloads

    Primary: https://nathanchance.me/downloads/kernels/wahoo/9/stable/

    Mirror: https://github.com/nathanchance/fk-zips

    Remember it can be auto-flashed with FK Kernel Manager!


    Commits

    Kernel: https://github.com/nathanchance/wahoo/commits/pie-r2

    AnyKernel2: https://github.com/nathanchance/AnyKernel2/commits/wahoo-flash-9
    60
    Update!

    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

    • Linux 4.4.130
    • Upstream Qualcomm patches
    • sdcardfs updates from kernel/common

    Downloads

    Primary: http://nchancellor.net/downloads/kernels/taimen/8.1.0/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/wahoo/commits/oreo-m2
    57
    Update!

    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

    • Linux 4.4.129
    • Bring back EAS 1.5 as I believe I have eliminated all regressions
    • Backend crypto algorithm updates
    • Update Clang toolchain

    Downloads

    Primary: http://nchancellor.net/downloads/kernels/taimen/8.1.0/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/wahoo/commits/oreo-m2
    55
    Update!

    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

    • Linux 4.4.124
    • Upstream CAF patches

    Downloads

    Primary: http://nchancellor.net/downloads/kernels/taimen/8.1.0/stable/
    Mirror: https://github.com/nathanchance/fk-zips

    Commits

    Kernel: https://github.com/nathanchance/wahoo/commits/oreo-mr1