(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.
* .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.
* .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
• 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:
adb sideload <drag n drop kernel zip here>
.If you get "Signature verification failed", change recovery.
3. Flash dtbo with
fastboot flash dtbo dtbo.img
* .This is an AnyKernel3 zip, so you won't need to
* .flash Magisk again if you have it installed.
Kernel source ("main" branch): https://github.com/FraSharp/kernel_oneplus_sm8250
@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.
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