[OnePlus 8T ROMs, Kernels, Recoveries, & Other Deve] FraSharp:
View attachment 5513439

(for anyone wondering, yes i took a completly random photo lmao)​

How often will you update this kernel?

I won't release updates often, but i will still update source and

you are free to compile it yourself.

/*

* .NOTE:

* .If you plan to do so, don't contact me for help ;)

*/

Is my ROM/device supported?

As long as it is OnePlus 8T or OnePlus 9R, and as long as your rom is based

on Android 12, then yes, it is supported.

/*

* .NOTE:

* .OnePlus 9R has not been tested, so I do not guarantee its full support.

* .The same thing goes for Android 11 ROMs (including AOSP one(s))

* .as i did test only on Android 12 AOSP ROM.

*/

Which toolchain did you use?

• Compiled with latest cutting-edge LLVM-Tools-14 (https://llvm.org/docs/ReleaseNotes.html), with LLVM_IAS (integrated assembler), with Clang compiler (refer to https://clang.llvm.org/) and with LD.LLD linker (LLVM linker, refer to https://lld.llvm.org/) to have increased performances and smaller zImage (aka kernel Image) size (which is around ~50MB, compared to the over ~100MB Image of other kernels.).

Toolchain link: https://github.com/ClangBuiltLinux/tc-build

Features

• Compiled with Full LTO (Link Time Optimization, https://llvm.org/docs/LinkTimeOptimization.html), which makes kernel Image bigger than with ThinLTO but also increase performances by a lot (https://docs.google.com/spreadsheets/u/0/d/1mhjyshujZz8jYI7dMoCe-yFbxymW-fWaC08vMhBbEmQ/htmlview).

• Compiled with CFI Clang (https://clang.llvm.org/docs/ControlFlowIntegrity.html) and with Shadow Call Stack (SCS, https://clang.llvm.org/docs/ShadowCallStack.html) to improve security by a lot, but with a little less performance and a little more overhead (around ~1% of overhead, https://source.android.com/devices/tech/debug/shadow-call-stack).

• Disabled STune (SchedTune) in favor or UClamp (UtilClamp) to achieve less jank (jitter) and less fps drops (refer to https://www.linuxplumbersconf.org/e...hments/328/552/UtilClamp_usage_on_Android.pdf).

• Disabled WALT in favor of PELT, even if benchmarks clearly say that WALT is better, i did not see any lag or latency issue (refer to https://www.slideshare.net/linaroorg/walt-vs-pelt-redux-sfo17307.

• Upstreamed F2FS (/data filesystem) to latest (5.16) available mainline port for linux 4.19 (https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable.git/tag/?h=5.16-rc1-4.19).

• Upstreamed EXT4 (/system, /vendor, /odm, /product filesystem) to latest commits found in linux mainline.

• Use EAS (Energy Aware Scheduler) along with Schedutil governor to improve battery backup and keep high performances.

• Improved cfq I/O scheduler to reduce jitter by a lot.

• Disabled some debugging and tracing features such as Coresight (https://developer.arm.com/ip-products/system-ip/coresight-debug-and-trace).

• Disabled most debugging functions treewide to achieve less overhead and a smoother experience (as debug prints logs in dmesg, there may ve high I/O Disk usage, leading to a notable performance lose): Android binder, mm, drivers, ion, techpack drivers...

• Built qcacld-3.0 (network driver) and most techpack drivers as user and disable useless debug.

• Compiled with LLVM-Polly up-to-date flags to tweak LLVM-Tools and so to get smaller Image and better performances (refer to https://polly.llvm.org/ and to https://polly.llvm.org/performance.html).

• Tweaked UDFPS (Under Display FingerPrint Scanner, aka FOD, Fingerprint On Display) to faster unlock experience (https://github.com/FraSharp/kernel_oneplus_sm8250/commit/6fbf5a20fc78f954818649eb9048a63077bc0f0f).

• Disabled many unused configs to reduce kernel Image.

• Compiled some kernel parts with -Ofast to increase performance on critical points, such as fingerprint and display (https://www.phoronix.com/scan.php?page=article&item=gcc_47_optimizations&num=2).

• Upstreamed kernel to latest ACK (Android Common Kernel, https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline) tag and to latest CAF (Code Aurora Forum, https://source.codeaurora.org/quic/la/kernel/msm-4.19) tag to address latest CVE and to improve kernel treewide.

• Built vdso32 to get better battery backup and better performances according to Google (refer to https://source.android.com/devices/architecture/kernel/config#vdso32-on-arm64)

• Fixed PD (Power Delivery) charging, you can now charge phone with your laptop now at a reasonably good speed (~1400 mAh, tested with OnePlus warp cable and MacBook Air).

• Disabled pstore (logging and debugging feature) as it doesn't work.

• WireGuard VPN tunnel support and upstreamed to latest commits from mainline (https://www.wireguard.com/).

• Upstreamed ZSTD and LZ4 compression algorithms to latest commits from mainline.

• Tweak scheduler to achieve less overhead and better latency (lower).

• Added USB-2.0 fast charge upto ~900mAh (https://github.com/FraSharp/kernel_oneplus_sm8250/commit/1669d653a321f8a491df02b42f5a472fa177db9e).

• Added better number generator, LRNG (Linux Random Number Generator) (https://www.chronox.de/lrng/doc/lrng.pdf).

Very cool, you put some random features, but how to install this?

First of all, make a backup!!! I don't want to be blamed if you lose your data.

1. Download kernel zip from the link in thread.

2. Now you have 2 ways to flash this:

.A) Use Franco Kernel Manager (https://play.google.com/store/apps/details?id=com.franco.kernel&hl=it&gl=US)

.Go to flasher and then press on "Manual Flasher" button, select kernel zip and press "flash and reboot".

.B) Use adb sideload from recovery: Press on apply update, adb sideload, and then execute this command within pc's terminal:

Spoiler content hidden.

.If you get "Signature verification failed", change recovery.

3. Flash dtbo with

Spoiler content hidden.

/*

* .NOTE:

* .This is an AnyKernel3 zip, so you won't need to

* .flash Magisk again if you have it installed.

*/

Source moment

Kernel source ("main" branch): https://github.com/FraSharp/kernel_oneplus_sm8250

Credits

@osm0sis - AnyKernel3 (https://github.com/osm0sis/AnyKernel3).

@franciscofranco - FKM (https://play.google.com/store/apps/details?id=com.franco.kernel&hl=it&gl=US).

@YumeMichi - Base kernel source (https://github.com/YumeMichi/kernel_oneplus_sm8250).

@Bicet - For providing me ROMs to test kernel on and to assist me for everything.

LLVM - LLVM Tools and Clang.

OnePlus - Stock kernel source code (https://github.com/OnePlusOSS/android_kernel_oneplus_sm8250/).

GitHub - For hosting kernel source.

@ Any other person who i picked commits from without them knowing xD.

Where to contact you?

I hope you won't need to contact me, but if you need,

you can do it by sending a message to @airfraa on Telegram.

and no i don't have a support group.

Donations?

Well, no. No donations to me. But if you feel the urge to donate to someone

you can donate to the Human Rights Campaign @ https://www.hrc.org/

And finally, download link

You can download kernel zip in GitHub releases at this link:

Kernel direct link -> https://github.com/FraSharp/kernel_oneplus_sm8250/releases/tag/schwa-gm

Releases link -> https://github.com/FraSharp/kernel_oneplus_sm8250/releases

Dtbo direct link -> https://github.com/FraSharp/kernel_oneplus_sm8250/releases/download/schwa-rc4/dtbo.img

CHANGELOG IS ALWAYS ON THE 2ND POST

Support group: https://t.me/schwakernel