General [Stock][Kernel][Magisk] WireGuard Kernel Module for Moto E (2020) - Moto E (2020)

This is a patched stock kernel and Magisk module to enable Wireguard's "kernel module backend" feature on stock or GSI firmwares. The patched kernel is required for unofficial modules to be loadable and is an offical kernel with binary patches applied.
The boot image is not already prepatched with Magisk as some users may not want to use it. You can always extract the kernel module from the magisk module zip and insmod it by any means you like.
Kernel Patches:
module_sig_check - always pass - bypass CONFIG_MODULE_SIG and CONFIG_MODULE_SIG_FORCE
check_version - always return true - similar to CONFIG_MODULE_FORCE_LOAD
Spoiler: Resources Used
Build instructions
readme/MMI-QPG30.82-95.txt at master · MotorolaMobilityLLC/readme
Readme's for motorola builds. Contribute to MotorolaMobilityLLC/readme development by creating an account on GitHub.
github.com
Kernel Sources
Release MMI-QPG30.82-135 · MotorolaMobilityLLC/kernel-msm
ginna push for android 10
github.com
AOSP dtc
refs/heads/android10-release - platform/external/dtc - Git at Google
magiskboot - Unpacking and repacking boot image
GitHub - topjohnwu/Magisk: The Magic Mask for Android
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
vmlinux-to-elf - Format the kernel for analysis and recover symbols
GitHub - marin-m/vmlinux-to-elf: A tool to recover a fully analyzable .ELF from a raw kernel, through extracting the kernel symbol table (kallsyms)
A tool to recover a fully analyzable .ELF from a raw kernel, through extracting the kernel symbol table (kallsyms) - GitHub - marin-m/vmlinux-to-elf: A tool to recover a fully analyzable .ELF from ...
github.com
Ghidra - Static analysis and patching
Ghidra
Download:

Running a kernel module built for an older kernel like that seems to be the wrong approach. Whenever I build a kernel with the "kernel: module: Hack to force load prebuilt vendor modules" patch and load it with a recent vendor image, I get boot loops, so the kernels are probably too different to safely force load modules.
Everything works fine with a QPG30.82-135 boot and vendor though, and doesn't need the check_version patch.

Related

[KEXEC] [ARM64] Kexec-Hardboot Patch

Note:
Kernel Developers: I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM (MR) - it allows MR to boot any kernel without changing the boot partition. I realize that it is no small request, but the patch is not big, touches relatively stable parts of kernel and should not cause any problems outside its intended function.
The Patch:
You'll need to cherry pick a total of 5 commits (if anyone feels like squashing them to help me out, feel free to link me to it).
Cherry-pick against: http://github.com/multirom-nexus6p/android_kernel_huawei_angler.git on the branch 'mm2'.
Commit hashes in order:
2641ac7979c0b4ef7d8c33bae57404fea89ca0de
ff67f9fae243fea2b513b1721c8cff4584f229ba
58154995579253a2ee864b839aa4a9271afdb1c5
fb7e7c6212f59fce48f83235a99c244e2432b1f3
1fb02d265b4170e193018d513de11f9a47e5e775
Related defconfig options, and their explanations:
Code:
CONFIG_KEXEC=y # Enables the Kexec SysCall to allow loading the new 'secondary' kernel into memory
CONFIG_KEXEC_HARDBOOT=y # Enables the HardBoot flag, which allows 'cold-booting' a new kernel
# CONFIG_ATAGS_PROC is not set # Prevents potential atags related discrepancies, this must be either removed or commented out
CONFIG_PROC_DEVICETREE=y # Allows us to read out the kernel config, and tell that the kernel has all the necessary configs enabled (read out from /proc/config.gz)
User-space Kexec binary: here (you'll need to extract the zip, and it will be in 'multirom/kexec')
A quick guide to use Kexec: here
Authors:
- This patch was made by Mike Kasick for Samsung Epic 4G.
- Tassadar built on this patch, and partially rewrote it to support the Nexus 4, 5, and 6.
- Zhuowei Zhang rewrote the patch from scratch for arm64.
- Myself for maintaining MultiROM for the 6P, and managing the patch.
XDA:DevDB Information
[KEXEC] [ARM64] Kexec-Hardboot Patch, Kernel for the Huawei Nexus 6P
Contributors
npjohnson, 500 Internal Server Error
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: Version 1
Stable Release Date: 2016-06-11
Created 2016-06-12
Last Updated 2016-06-12
None of the above links working
The links of commits you have mentioned are not working.
shenoy13 said:
The links of commits you have mentioned are not working.
Click to expand...
Click to collapse
Been a long while, because the related MultiROM project is no longer maintained, but the links now work

[CLOSED]CRUEL KERNEL S10 V2.3

CRUEL KERNEL S10 V2.3
The development moved to this thread. From V3 kernel supports multiple devices.
Introduction
This kernel is based on BTA8 samsung sources. Only G973F device for now. It is possible to use it on BSKO, BSL4, BTA8 firmware. All sources are open on GitHub.
Continuous integration with GitHub Actions is set up. This means you can customize the kernel from browser and build the version suitable for you without leaving the browser (see сustomization section).
Features
Customizable build with config presets
Only part of samsung security features disabled (DEFEX, Process Authentification, root restrictions)
Switchable SELinux (by default it's locked in "always enforcing" mode in samsung sources)
Built-in in Magisk
Wireguard for VPN
CIFS for SMB
Iptables TTL and HL editing modules for bypassing tethering restrictions
Build commands (configuration presets) used for V2.3 kernel:
Code:
$ ./build mkimg name=CRUEL-V2.3-BTA8 +magisk +nohardening +wireguard +ttl +cifs
$ ./build mkimg name=CRUEL-V2.3-BTA8-CANARY +magisk+canary +nohardening +wireguard +ttl +cifs
Installation Instructions
First of all, TWRP Recovery + multidisabler should be installed in all cases. This is a preliminary step. Backup your existing kernel. You will be able to restore it in TWRP Recovery in case of any problems.
Dowload an *.img file and
With TWRP: Reboot to recovery. Install > Install Image > CruelKernel.img > BOOT.
With Heimdall: Reboot to Dowload mode.
Code:
sudo heimdall flash --BOOT CruelKernel.img
With FK Kernel Manager: Flasher > Manual Flasher.
ChangeLog
V1 is based on BSKO sources and was privately used. You can find V1 by the link.
V2 is based on BTA8 sources. nohardening, nohardening2, cifs configuration presets added.
V2.1 is for internal use only (testing release) +nohardening preset activated by default
V2.2
Canary Magisk updated to 20305 version
MALI_KUTF kernel driver removed (it's required only for kernel developers)
Pin code problem fix (thanks geiti94)
+nohardening (disable samsung protections)
V2.3
Canary Magisk updated to 20306 version
Small fixes for image format
Downloads
CruelKernel-G973F-BTA8-v2.3
CruelKernel-G973F-BTA8-v2.3-CANARY
Sources
How to customize the kernel build
It's possible to customize the kernel and build it from the browser. First of all, create and account on GitHub. Next, fork this repository. Switch to the "Actions" tab and activate GitHub Actions. At this step you've got your own copy of the sources and you can build it with GitHub Actions. You need to open github actions configuration file (.github/workflows/main.yml) and edit it from the browser. For example, to alter the kernel configuration you need to edit lines:
Code:
- name: Kernel Configure
run: |
./build config name=CRUEL-V2-BTA8
+magisk
+ttl
+wireguard
+cifs
You can change the name of the kernel by replacing name=CRUEL-V2-BTA8 with, for example, name=my_own_kernel. You can remove wireguard from the kernel if you don't need it by changing "+" to "-" or by removing the "+wireguard" line and "" on the previous line.
Available configuration presets can be found at kernel/configs folder. Only the *.conf files prefixed with "cruel" are meaningful. For example:
magisk - integrates magisk into the kernel. This allows to have root without booting from recovery. Enabled by default.
magisk+canary - integrates canary magisk into the kernel.
ttl - adds iptables filters for altering ttl values of network packets. This helps to bypass tethering blocking in mobile networks.
wireguard - adds wireguard VPN module to the kernel.
cifs - adds CIFS (SMB) support.
nohardening - removes Samsung kernel self-protection mechanisms. Potentially can increase the kernel performance. You can enable this config if you face rooting or some other kind of restrictions. Other kernels usually use settings from this config by default. It's safe to enable this config, it just makes your system less secure.
nohardening2 - removes Android kernel self-protection mechanisms. Potentially can increase the kernel performance. Don't use it if you don't know what you are doing. Almost completely disables kernel self-protection. Very insecure.
nodebug - remove debugging information from the kernel.
300hz - increases kernel clock rate from 250hz to 300hz. Potentially can decrease response time. Disabled by default, untested.
1000hz - increases kernel clock rate from 250hz to 1000hz. Potentially can decrease response time. Disabled by default, untested.
For example, you can alter default configuration to something like:
Code:
- name: Kernel Configure
run: |
./build config name=CruelCanary
+magisk+canary
+wireguard
+nohardening
After editing the configuration in the browser, save it and commit. Next, you need to switch to the "Actions" tab. At this step you will find that GitHub starts to build the kernel. You need to wait about 25-30 mins while github builds the kernel. If the build is successfully finished, you will find your boot.img in the Artifacts section. Download it, unzip and flash.
To keep your version of the sources in sync with main tree (following updates), please look at this tutorial.
Support
This thread. Feature requests accepted.
Telegram (testing and intermediate releases).
GitHub Pull Requests if you want to contribute.
Credits
Samsung for kernel sources
topjohnwu for Magisk
geiti94 for showing that it's possible to built-in Magisk into the kernel. Initially I experimented with ASIG kernel, but ASIG+Magisk on ASIG firmware just stucks on boot with an SELinux initialization problem. At that time I doubted that built-in Magisk will work.
geiti94 for his help and advices
franciscofranco for FK Kernel Manager
XDA:DevDB Information
CRUEL KERNEL S10 , Kernel for the Samsung Galaxy S10
Contributors
evdenis, evdenis
Source Code: https://github.com/CruelKernel/exynos9820-beyond1lte
Kernel Special Features:
Version Information
Status: No Longer Updated
Current Stable Version: v2.3
Stable Release Date: 2020-02-12
Created 2020-02-10
Last Updated 2020-03-16
Reserved
How to build the kernel locally on your PC
This instruction assumes that you are using Linux. Install: mkbootimg, heimdall (if you want to flash the kernel with it).
Next:
Code:
$ git clone https://github.com/CruelKernel/exynos9820-beyond1lte
$ cd exynos9820-beyond1lte
# List available branches
$ git branch -a | grep remotes | grep cruel | cut -d '/' -f 3
# Switch to the branch you need
$ git checkout samsung-g973f-bta8-cruel
# Install compilers
$ git submodule update --init --recursive
# Compile (install mkbootimg first)
$ ./build mkimg name=CustomCruel +magisk+canary +wireguard +ttl +cifs +nohardening
# You will find your kernel in boot.img file after compilation.
$ ls -lah ./boot.img
# You can automatically flash the kernel with heimdall
# if you connect your phone to the PC and execute:
$ ./build :flash
# Or in a single command (compilation with flashing).
# ./build flash name=CustomCruel +magisk+canary +wireguard +ttl +cifs +nohardening
Boots phone but after entering pin goes to black screen then right back to the pin screen.g973f
gillim74 said:
Boots phone but after entering pin goes to black screen then right back to the pin screen.g973f
Click to expand...
Click to collapse
What ROM are you using? I tested it mostly on samsung BTA8 firmware.
evdenis said:
What ROM are you using? I tested it mostly on samsung BTA8 firmware.
Click to expand...
Click to collapse
Ambassadi same firmware but i think i know what it is.i never uodated the bootloader.i will try that first
gillim74 said:
Ambassadi same firmware but i think i know what it is.i never uodated the bootloader.i will try that first
Click to expand...
Click to collapse
If your phone was able to boot to pin screen, then I doubt the problem is in bootloader. Could you try V1 kernel https://github.com/CruelKernel/exynos9820-beyond1lte/releases/tag/v1.0
If it will work, then probably V2 will also work with +nohardening option. V1 compiled with this option, V2 without it. I will rebuild V2 then.
evdenis said:
If your phone was able to boot to pin screen, then I doubt the problem is in bootloader. Could you try V1 kernel https://github.com/CruelKernel/exynos9820-beyond1lte/releases/tag/v1.0
If it will work, then probably V2 will also work with +nohardening option. V1 compiled with this option, V2 without it. I will rebuild V2 then.
Click to expand...
Click to collapse
Same thing with version 1.could it be the twrp im using?
gillim74 said:
Same thing with version 1.could it be the twrp im using?
Click to expand...
Click to collapse
No, it's definitely not related to twrp. Well, I don't know what is an exact problem here, but some guys told me they were able to flash the kernel on ambassadi with data wipe or immediately after flashing the rom itself.
It would be very nice if people will just write if the kernel works or not on their roms. This will be a huge help for me.
evdenis said:
No, it's definitely not related to twrp. Well, I don't know what is an exact problem here, but some guys told me they were able to flash the kernel on ambassadi with data wipe or immediately after flashing the rom itself.
Click to expand...
Click to collapse
Data wipe or format data
gillim74 said:
Data wipe or format data
Click to expand...
Click to collapse
Data wipe should be enough. I will test compatability with Ambassadi today-tomorrow and will provide more detailed feedback. Thanks!
hello installation successfully the nikel kernel market for now
evdenis said:
Data wipe should be enough. I will test compatability with Ambassadi today-tomorrow and will provide more detailed feedback. Thanks!
Click to expand...
Click to collapse
Worked with data wipe
evdenis said:
It would be very nice if people will just write if the kernel works or not on their roms. This will be a huge help for me.
Click to expand...
Click to collapse
write me on telegram so i can say you why all get the pin code problem so you can fix it
Does this work with BSL7? Or know of kernel that will. Need my su permission to work
Paulturn84 said:
Does this work with BSL7? Or know of kernel that will. Need my su permission to work
Click to expand...
Click to collapse
Hi, no it will not work on BSL7. This kernel is for S10 (G973F) device. This device has only BSL6 firmware. BSL7 is for other devices. Try to look at nemesis kernel.
Is it possible to build magisk rooted kernel for pie (9) roms? Or it's only for Q like LOS 17?
vomad said:
Is it possible to build magisk rooted kernel for pie (9) roms? Or it's only for Q like LOS 17?
Click to expand...
Click to collapse
Download: https://cruelkernel.org/release/special/CruelKernel-G973F-ASJG-v1.1-LOS.img
This version is based on Android 9 (ASJG) sources and should work on ASIG firmwares. I've included some patches from ivanmeler LOS tree specifically for LOS. Features: Magisk v20.3, wireguard, ttl modules and cifs. Not tested
will he s10+ every be supported with this kernel?

[KERNEL][2020-12-01] CRUEL KERNEL S10/Note10 V3.9

Introduction
Based on samsung sources and android common tree. Supported devices: G970F/N, G973F/N, G975F/N G977B/N, N970F, N975F, N971N, N976B/N. All sources are open on GitHub.
Continuous integration with GitHub Actions set up. This means you can customize the kernel from browser and build the version suitable for you without leaving the browser (see сustomization section).
Features
Customizable build with config presets
Only part of samsung security features disabled (DEFEX, Process Authentification, root restrictions)
Switchable SELinux (by default it's locked in "always enforcing" mode in samsung sources)
Built-in in Magisk v21.1
Various toolchains (cruel,arm,samsung,proton,arter97...) supported
Wireguard for VPN
CIFS for SMB
Iptables TTL and HL editing modules for bypassing tethering restrictions
NTFS module for OTG usb drives
Moro sound module
Boeffla WakeLock Blocker
sdfat driver for vfat and exfat filesystems
reiser4 filesystem added. reiser4progs (https://github.com/CruelKernel/reiser4progs/releases)
DEX cable vendor lock for WQHD resolution removed
ZIP installer with XZ compression
ZIP installer with automatic os_patch_level patching
Build commands (configuration presets) used for V3.9 kernel:
Code:
$ ./cruelbuild pack model=<MODEL> name=CRUEL-V3.9 +magisk +nohardening +force_dex_wqhd +ttl +cifs +ntfs +sdfat +nodebug +noaudit +noksm +nomodules +wireguard +usb_serial +sched_powersave +sched_performance +morosound +boeffla_wl_blocker +fake_config +dtb
Where model can be one of G970F/N, G973F/N, G975F/N G977B/N, N970F, N975F, N971N, N976B/N.
Installation Instructions
First of all, TWRP Recovery + multidisabler should be installed in all cases. This is a preliminary step. Backup your existing kernel. You will be able to restore it in TWRP Recovery in case of any problems. Download an *.zip file. Reboot to TWRP. Install > Install ZIP > Flash CruelKernel.zip. Reboot to system.
ChangeLog
V3 - Support for G970F, G975F, G977B, N970F, N975F, N976B models.
V3.1 - Boeffla wl blocker, BTB5 sources for N10 models.
V3.2 - Magisk update v20.4, wireguard update, sdfat for VFAT, exFAT, ntfs module.
V3.3 - CTC9 sources. The camera will work only on CTC9 based firmwares.
V3.4 - CTE9/CTF1 sources. Small fixes, overall improvements, more customization configs for building on github.
V3.7 - Various toolchains added (arm, arter97, samsung, proton, system, default)
V3.8 - DTI1 sources added for N971N, N976N.
DTH7 sources added for G977N model.
Some debugging flags disabled. performance config fixed (-O3).
Cruel toolchain added (gcc 10.2 with PGO/LTO and inlining params from gcc 9 branch)
simple_lmk added (github.com/kerneltoast/simple_lmk)
V3.9 - G977N, G973N models added.
G970F/N, G975F/N, G973F/N updated to DTJA.
N976B, N970F, N975F updated to DTJ4.
Magisk updated to v21.1 version.
Vendor lock for dp cable for DEX removed (thanks, fart1-git).
Zip installer implemented.
Automted os_patch_level level patching in installer (https://github.com/CruelKernel/clone_header).
Downloads
OS Patch Level: 2020-11
V3.9 Download folder
Sources
If you like the work and want to help me with hosting: https://www.paypal.me/evdenis Hitting star button on GitHub and thanks button on XDA really helps to stay motivated.
Instructions here could be outdated a bit, one can find the latest version in project's readme at github.
How to customize the kernel build
It's possible to customize the kernel and build it from the browser. First of all, create and account on GitHub. Next, fork this repository. Switch to the "Actions" tab and activate GitHub Actions. At this step you've got your own copy of the sources and you can build it with GitHub Actions. You need to open github actions configuration file (.github/workflows/main.yml) and edit it from the browser. For example, to alter the kernel configuration you need to edit lines:
Code:
- name: Kernel Configure
run: |
./build config
model=G973F
name="CRUEL-V3.3"
+magisk
+nohardening
+ttl
+wireguard
+cifs
+sdfat
+ntfs
+tcp_cibuc
+morosound
+boeffla_wl_blocker
First of all, you need to change G973F model to the model of your phone. Supported models: G970F/N, G973F/N, G975F/N G977B/N, N970F, N975F, N971N, N976B/N.
You can change the name of the kernel by replacing name="CRUEL-V3" with, for example, name="my_own_kernel". You can remove wireguard from the kernel if you don't need it by changing "+" to "-" or by removing the "+wireguard" line and "" on the previous line. OS patch date can be changed with os_patch_level=2020-02 argument, the default current date is in build.mkbootimg.G973F file.
Available configuration presets can be found at kernel/configs folder. Only the *.conf files prefixed with "cruel" are meaningful. For example:
+magisk - integrates magisk into the kernel. This allows to have root without booting from recovery. Enabled by default.
magisk+canary - integrates canary magisk into the kernel.
bfq - enable bfq I/O scheduler in the kernel.
sched_... - enable various (conservative, ondemand, powersave, userspace, performance) CPU schedulers in the kernel.
ttl - adds iptables filters for altering ttl values of network packets. This helps to bypass tethering blocking in mobile networks.
wireguard - adds wireguard VPN module to the kernel.
cifs - adds CIFS (SMB) support.
tcp_cubic - use CUBIC as default TCP congestion control.
tcp_westwood - use WestWood as default TCP congestion control.
sdfat - use sdfat for exFAT and VFAT filesystems.
ntfs - enable ntfs filesystem support (read only).
boeffla_wl_blocker - enable boeffla wakelock blocker module.
morosound - enable moro sound control module.
+nohardening - removes Samsung kernel self-protection mechanisms. Potentially can increase the kernel performance. Enabled by default. Disable this if you want to make your system more secure.
nohardening2 - removes Android kernel self-protection mechanisms. Potentially can increase the kernel performance. Don't use it if you don't know what you are doing. Almost completely disables kernel self-protection. Very insecure.
nodebug - remove debugging information from the kernel.
noksm - disable Kernel Samepage Merging (KSM).
nomodules - disable loadable modules support.
noaudit - disable kernel auditing subsystem.
300hz - increases kernel clock rate from 250hz to 300hz. Potentially can improve ui responsiveness.
1000hz - increases kernel clock rate from 250hz to 1000hz. Potentially can improve ui responsiveness.
For example, you can alter default configuration to something like:
Code:
- name: Kernel Configure
run: |
./build config
os_patch_level=2020-12
model=G975F
name="OwnKernel"
+magisk+canary
+wireguard
+nohardening
+1000hz
After editing the configuration in the browser, save it and commit. Next, you need to switch to the "Actions" tab. At this step you will find that GitHub starts to build the kernel. You need to wait about 25-30 mins while github builds the kernel. If the build is successfully finished, you will find your boot.img in the Artifacts section. Download it, unzip and flash.
To keep your version of the sources in sync with main tree, please look at one of these tutorials:
How can I keep my fork in sync without adding a separate remote?
How do I update a GitHub forked repository?
Support
This thread. Feature requests accepted.
Telegram (testing and intermediate releases).
GitHub Pull Requests if you want to contribute.
Credits
Samsung for kernel sources
fart1-git for disabling DEX cable vendor lock
corsicanu for default blocklist of wakelocks for boeffla_wl_blocker driver
Nico (@NicoMax2012) for porting moro sound module
bamsbamx for porting boeffla_wakelock_blocker
thehacker911 for general improvements and advices
ExtremeGrief for overall improvements, porting maple scheduler
geiti94 for his advices
topjohnwu for Magisk
franciscofranco for FK Kernel Manager
and testers.
I'm sorry if I missed someone, just write me and I will update the list.
XDA:DevDB Information
[KERNEL] CRUEL KERNEL S10/Note10, Kernel for the Samsung Galaxy S10
Contributors
evdenis, evdenis
Source Code: https://github.com/CruelKernel/samsung-exynos9820
Kernel Special Features:
Version Information
Status: Testing
Current Stable Version: v3.9
Stable Release Date: 2020-12-01
Created 2020-03-08
Last Updated 2020-12-01
How to build the kernel locally on your PC
This instructions assumes you are using Linux. Install mkbootimg (AIK tool) from osm0sis, heimdall (if you want to flash the kernel automatically).
Next:
Code:
# Install prerequisites
# If you use ubuntu or ubuntu based distro then you need to install these tools:
$ sudo apt-get install build-essential libncurses-dev libtinfo5 bc bison flex libssl-dev libelf-dev
# If you use Fedora:
$ sudo dnf group install "Development Tools"
$ sudo dnf install ncurses-devel ncurses-compat-libs bc bison flex elfutils-libelf-devel openssl-devel
# Install mkbootimg
$ wget https://github.com/osm0sis/mkbootimg/archive/master.zip
$ unzip master.zip
$ cd mkbootimg-master
$ sed -i -e 's/-Werror//g' Makefile
$ make
$ sudo mv mkbootimg /usr/local/bin/mkbootimg
# Get the sources
$ git clone https://github.com/CruelKernel/samsung-exynos9820
$ cd samsung-exynos9820
# List available branches
$ git branch -a | grep remotes | grep cruel | cut -d '/' -f 3
# Switch to the branch you need
$ git checkout cruel-v3
# Install compilers
$ git submodule update --init --recursive
# Compile
$ ./build mkimg name=CustomCruel model=G973F +magisk+canary +wireguard +ttl +cifs +nohardening
# You will find your kernel in boot.img file after compilation.
$ ls -lah ./boot.img
# You can automatically flash the kernel with heimdall
# if you connect your phone to the PC and execute:
$ ./build :flash
# Or in a single command (compilation with flashing)
# ./build flash name=CustomCruel model=G973F +magisk+canary +wireguard +ttl +cifs +nohardening
Pin problem
The problem is not in sources. It's due to os_patch_level mismatch with you current kernel (and/or twrp). CruelKernel uses common security patch date to be in sync with the official twrp and samsung firmwares. You can check the default os_patch_level in build.mkbootimg.* files. However, this date can be lower than other kernels use. When you flash a kernel with an earlier patch date on top of the previous one with a higher date, android activates rollback protection mechanism and you face the pin problem. It's impossible to use a "universal" os_patch_level because different users use different custom kernels and different firmwares. CruelKernel uses the common date by default in order to suite most of users.
How can you solve the problem? 5 ways:
You can restore your previous kernel and the pin problem will gone
You can check the os_patch_level date of your previous kernel here https://cruelkernel.org/tools/bootimg/ and patch cruel kernel image to the same date. If your previous kernel is nemesis, patch cruel to 2099-12 date.
You can reboot to TWRP, navigate to data/system and delete 3 files those names starts with 'lock'. Reboot. Login, set a new pin. To fix samsung account login, reinstall the app
You can rebuild cruel kernel with os_patch_level that suites you. To do it, you need to add the line os_patch_level="<your date>" to the main.yml cruel configuration. See the next section if you want to rebuild the kernel.
You can do the full wipe during cruel kernel flashing
Good job!
Thanks Dev! Does this kernel work also with LineageOS and AOSP roms?
evdenis said:
...
After that you need to add the line os_patch_level="<your date>" to the main.yml cruel configuration and rebuild it. See the customization section if you want to rebuild the kernel.
Click to expand...
Click to collapse
Did you checked it if it works for you? For me the oneliner didnt work in main.yml. I must edit the build.mkbootimg.G975F file and rebuild. Then i got no pin problems cause the OPL was now changed.
hanspampel said:
Did you checked it if it works for you? For me the oneliner didnt work in main.yml. I must edit the build.mkbootimg.G975F file and rebuild. Then i got no pin problems cause the OPL was now changed.
Click to expand...
Click to collapse
Yes, I checked that it works. Here you did't use os_patch_level setting and the date is 2020-02. Next, you updated os_patch_level and you can see the date changed if you unfold "Show information about build" section in build log. In the third commit you removed the os_patch_level and cancelled the build, so the date reverted to default one 2020-02. And in finial commit the date was changed in build.mkbootimg.G975F file. If you doubt the date changed, you can check the build settings either in "Show information about build" section in build log or in "Kernel Configuration Info" file next to the kernel image in "Artifacts". Thanks!
Valentino911 said:
Thanks Dev! Does this kernel work also with LineageOS and AOSP roms?
Click to expand...
Click to collapse
As for now, it compatible only with Samsung based firmwares. Works on native samsung firmwares, BeyondROM, on Ambasadii it's better to use Nemesis kernel (you will face pin problem if you try to install cruel). The kernel doesn't work on LOS.
Anybody want gcam for exynos.. u can see tgis video it for android Q one ui 2.0 for s10plus exynos
I have a question . The hadest rum was established, respectively the hadest kernel. I install the cruel kernel, but after the reboot the kernel of the hadest returns. Why? The first time I encounter this phenomenon, How to solve the problem?
Before rebooting the cruel core, the necessary functions work. After a reboot, the hades kernel returns.
@evdenis
I got problems with your latest sources (3.0 and 3.1). It doesnt boot to recovery with an app. This works for a few commits earlier(last week or so). Now its not working. And the OSPL in main.yml doesnt work for me too. Doesnt pass the restart pin. But thats not a problem, changed it in the other side.
Cant test your compiled versions, pin problem, i was on nemesis kernel, so i have to compile it myself.
Another problem ive saw, the device doesnt shut down. It only reboots. Compiled with 3.0 and 3.1 sources. With the older source a week ago, it works.
Edit: So tried your released v3.1 and changed the OSPL manually for PIN Fix, seems to work(recovery and shutdown). Maybe something went wrong on my side till compiling. Have no clue atm.
hanspampel said:
Another problem ive saw, the device doesnt shut down. It only reboots. Compiled with 3.0 and 3.1 sources. With the older source a week ago, it works.
Edit: So tried your released v3.1 and changed the OSPL manually for PIN Fix, seems to work(recovery and shutdown). Maybe something went wrong on my side till compiling. Have no clue atm.
Click to expand...
Click to collapse
This could be due to enabling non-default configuration presets, like +nodebug or +nohardening2.
elchinemil said:
I have a question . The hadest rum was established, respectively the hadest kernel. I install the cruel kernel, but after the reboot the kernel of the hadest returns. Why? The first time I encounter this phenomenon, How to solve the problem?
Before rebooting the cruel core, the necessary functions work. After a reboot, the hades kernel returns.
Click to expand...
Click to collapse
Hades rom uses very good kernel. Technically, I don't see any reason to change it on hades rom, unless you really want to experiment with, for example, +1000hz or +bfq scheduler.
The reason the previous kernel restores back could be again due to patch level mismatch.
I will update installation method in the next version to dynamically repack kernel during installation procedure. Hope, this will solve os_patch_level problem (pin issue) once and for all.
nice kernel
Thanks for this wonderful kernel! It is an honour for me to be able to participate in this!
G975N
Working in 975N or not
hamidru said:
Working in 975N or not
Click to expand...
Click to collapse
If it works om F/FD devices. It will work on N devices
hamidru said:
Working in 975N or not
Click to expand...
Click to collapse
If it's an exynos device ... no reason to this

Development [Kernel][14.06.2023][Android 13.0.0]Kirisakura 1.1.0_Raviantah for Pixel 6/Pro aka "RAVIOLE"

Kirisakura-Kernel for the Pixel 6/Pro
Hello everyone,
To keep it short: Here is Kirisakura - Kernel for the Google Pixel 6 Pro aka Raven and the Pixel 6 aka Oriole, together Raviole.
I would appreciate if everybody that flashes the kernel, reads at least once through this opening post and the following ones.
The kernel aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security, stability and performance!
This includes Linux-Stable, F2FS-Stable and kernel/common!
If that got you curious, have a read about linux-stable and why it is important here. The stable-process is not the same for every subsystem, but the general idea, rule of thumb and benefits are applicable for other subsystems as well.
The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.
A big part of improvements originate from @arter97´s, @kdrag0n´s and @Sultanxda´s work. Many others contributed in some way or another to this kernel.
A big thanks to all of them at this place!
Now lets continue with a list of features in the next paragraph!
Features:
Main Features:
- Based on latest A13 kernel sources from Google, Kernel is made for Android 13
- Linux-Stable-Upstream included to 5.10.183
- Compiled with prebuilt Google clang 17.0.2
- Backport entire RCU subsystem to Linux 6.0
- Lazy RCU which should result in power-savings while the device is lightly-loaded or idling, more information here
- Backport Maple tree from Linux 6.1
- improve preallocations from maple tree (affects especially android)
- reduce necessity to rewalk the maple tree
- Per VMA-locks in conjunction with Maple Tree RCU-Mode (improve app launch time, this feature in general benefits greatly from lazy rcu!)
- further improve maple tree/per-vma locks introduced in an earlier release
- make TEO-Cpuidle util-aware (improves latency, performance and decreases energy consumption for certain workloads, more information here)
- FHD Support for Pixel 6 Pro (display is able to run at 1080p), more info here and here
- merged kernel/common (improvements to android-common-kernel straight from google)
- MM subsystem reworked (more info and some patchsets linked in this post)
- Multi-gen LRU backported/reworked and enabled (more info here, here as well and here) to improve mm and reduce cpu cycles, latest V15 state
- improvements to uclamp, prevent capacity inversion (reduce missed frames)
- greatly speed up camera launch time!
- Utilize an additional kswapd thread to increase throughput for memory reclaim
- pelt multiplier tied into powerhal to speed up scheduler during interaction (more info here)
- prevent frequency spikes caused by small transient tasks when the device is idle(more info here)
- tie mechanism to prevent frequency spikes caused by small tasks also into powerhal
- scheduler improvements for RT (realtime) tasks
- introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads, more information here)
- improve camera performance by tuning the powerhal during recording
- bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions
- improve app launches via powerhal
- improve trusty driver performance which connects to fingerprintscanner-hal by using high perf wq during fp unlock
- restrict maximum CPU-Freqs during screen off/ idle to 1.1GHZ for all clusters to save power
- introduce unfair f2fs rwsems to prevent writer starvation and improve IO perf under heavy load
- fuse: give wakeup hints to scheduler to speed up compress/decompress in internal storage (details)
- enable RCU_BOOST (details here), also fix RCU_BOOST behaviour
- F2FS-Stable updated
- merge and enable f2fs block_age-based extent cache (improve the accuracy for data temperature classification, reduce the garbage collection overhead after long-term data updates)
- TCP backports from mainline
- SSG IO scheduler for reduced overhead and less CPU cycles (more lightweight and android optimized)
- Scheduler updates from linux-main
- use improved energy model for exynos cpu cooling/thermal control
- allow GPU to scale down to 150mhz, but boost to higher value in case of interaction via powerhal
- affine IRQS to CPU 7 during camera usage for improved performance as it tends to overload the little cores
- use bbr as default TCP congestion algorithm (fasted algo according to this excellent research from @kdrag0n found here )
- include bbrv2 from google, more info here
- Enable support for TTL spoofing
- Include LRNG, see here and here for more info, bump to v45 with 3.0.0
- important patches from kernel/common for 5.10 (here are more details)
- CleanSlate Features from @tbalden, big applause here! (s2s, notification booster, battery saver, flashlight notifications. Please note: cleanslate features that work otherwise with rooted devices like kadaway (adblocking) are not implemented on this kernel since I´m running rooted)
- dirty pipe exploit fixed
- supports direct usb access for hi-res playback over USB-C DACs
- improve ZRAM usage
- reduce overhead
- improve performance and efficiency by properly wiring up pixel_sched with teo util awareness (thanks @ada12 for spotting this!)
- update to cpuset/cgroup subsystem (speeds up camera launches, device unlocks etc as cpusets are switched on those conditions, patches reduce overhead in those conditions)
- flashing the kernel will preserve root
Various Optimizations:
- update several drivers to use power efficient workingqueues (for example wlan driver)
- kernfs: use buffer from the stack space
- printk: use buffer from the stack space
- kthread: use buffer from the stack space
- bpf: avoid dynamic memory allocation for small value buffers
- binder: Reserve caches for small, high-frequency memory allocations
- kernfs: use kmem_cache pool for struct kernfs_open_node/file
- cgroup: use kmem_cache pool for struct cgrp_cset_link
- f2fs: reduce timeout for uncongestion
- f2fs: Demote GC thread to idle scheduler class
- f2fs: set ioprio of GC kthread to idle
- mm: vmstat: use power efficient workingqueues
Wakelock Blocker:
- advanced wakelock blocker with the ability to block any wakelocks (dangerous, use with caution)
- please read [URL="https://arstechnica.com/gadgets/2018/08/p-is-for-power-how-google-tests-tracks-and-improves-android-battery-life/"]this for further info
AK3 Helper Module:
- restrict little cluster to 1,19ghz mid cluster to 1,19ghz and big cluster to 1,1ghz during screen off, to reduce battery usage for example during music playback
- only use little cores during screen off/device suspend
- tie pelt multiplier into the powerhal (more info here)
- prevent frequency spikes caused by small transient tasks during idle operation (more info here)
- boost scheduler using the pelt multiplier during fingerprint unlock operation
- setup and control PMU limiter via powerhal (more info here)
- dynamically adjust target load for memory interface during interaction
- boost memory interface controller during interaction (decreased missed frames, improved soc efficiency according to google docs)
DOWNLOAD:
Download is always located in this folder:
4.2.0, 4.3.0, 4.4.0, 4.4.1, 4.4.2 are attached to the release posts linked below as AFH is wonky at the moment.
Downloads for : -Android- Generic Device/Other | AndroidFileHost.com | Download GApps, Roms, Kernels, Themes, Firmware and more. Free file hosting for all Android developers.
Download GApps, Roms, Kernels, Themes, Firmware, and more. Free file hosting for all Android developers.
www.androidfilehost.com
Changelog:
Android 12.0.0
1.0.0 Initial Release
1.0.2 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85910621
1.0.5 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85924419
1.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-85976139
1.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86109665
1.5.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86259863
1.7.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86390563
1.8.4 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86541727
Android 12.1.0 Stable (March feature drop and more recent)
2.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86617873
2.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86637233
2.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86695911
2.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86821331
2.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86834981
Android 12.1.0 Stable (June feature drop and more recent)
3.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86992705
3.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86996237
3.0.17 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87127695
Android 13.0.0 Stable (not QPR beta!)
4.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87290247
4.1.6 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87399635
4.2.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87524609
4.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87697425
4.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87823333
4.4.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87944879
4.4.2 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-88118201
Raviantha 1.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-88316223
Raviantah 1.0.2 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-88399941
Raviantah 1.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-88645115
Android 12L QPR Beta - Deprecated
Spoiler
Build for Android 12 QPR Beta: https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86857033
Requirements
- the kernel is made for the stock firmware provided by Google, pay attention to flash a kernel release matching the firmware (flashing on custom roms might work, but you may need workarounds!)
- unlocked Bootloader
- USB-Debugging in developer options enabled
- latest adb and fastboot binaries
- working adb and fastboot environment so you can flash back to stock in case something goes wrong
- working magisk environment (a device rooted with latest magisk stable in case you want to be absolutely safe)
- IMPORTANT: Unrelated to the kernel, but update both slots of your phone to A13! (take a look here)
How to flash the Kernel:
1a. Make sure you tick all the requirements above
1. Download the correct kernel.zip depending on your device (Pixel 6 = oriole || Pixel 6 Pro = raven)
2. Flash the correct kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved. The AK3 magisk helper module will be automatically installed during flashing the kernel.zip and be present on next reboot.
Do not remove or disable the AK3 Magisk Helper Module otherwise the device will bootloop.
3. Reboot and profit.
Manual installation is no longer supported starting with release 3.0.0, as there´s a free open-source option to flash kernel.zips now.
Instead use the free kernel flasher, which can be found here.
Spoiler: Manual Installation for 1.4.0 and higher
Manual installation without relying on paid apps like fkm/exkm:
Please have a look at the linked post.
Spoiler: OLD Instructions - 1.3.0 and older - Use only on November Firmware
Check post #5
Donations:
Donations are not mandatory but very welcome if you want to support development or just buy me a coffee/tea/beer
If you like my work: http://paypal.me/freak07
Credits:
@osm0sis for all his work on AK3.
@tbalden for being the best HTC, Pixel, OnePlus and Asus wingman!
@capntrips for all his work on the pixel 6!
@LeeDroid and @mwilky for their awesome roms and work I used on multiple devices!
@Captain_Throwback for all the mentoring and guidance!
@Eliminater74 for bringing me into the game and the Inspiration
@nathanchance for his upstream guidance and assistance
@RenderBroken for helping me out
@flar2 for all his work
@joshuous for all the help he provided to me in the past!
@arter97 for giving me advice
@kdrag0n for his help and advices!
@topjohnwu for magisk and his entire work!
Source Code: https://github.com/freak07
F.A.Q:
Question: How do I update my phone to a new monthly update if this kernel is installed?
Answer: The easiest solution is to just use any full firmware package to update your phone to the new stock firmware. You can do so with the android web flash tool, a factory image or a full OTA image.
An excellent guide on how to use the factory image to do so was posted by @roirraW "edor" ehT on this thread. Feel free to use this as a reference.
This also serves as the easiest way to return back to stock, if you don´t like the kernel and feel not comfortable flashing anything via fastboot.
Question: How do I return back to stock?
Answer: Extract boot.img, dtbo.img, vendor_boot.img, vbmeta.img and vendor_dlkm.img from the matching factory image provided on googles download page.
If you disabled verity/verification previously there´s no need to flash the vbmeta.img when restoring.
If you want to stay rooted make sure to flash a boot.img that has been patched with magisk.
Flash those images via fastboot/fastbootd and you will be back on stock kernel. If you don't know the fastboot commands to flash the images, check the instructions how to flash those images in post #4.
Alternatively dirty flash the whole firmware without wiping by using either the android web flash tool, a factory image or a full OTA image. If you disabled the vbmeta flags, don't forget to disable them again (or tick the correct options on the web flash tool) after flashing a full firmware package and re-root.
Question: How to report bugs properly?
Answer: Have a look at post #3 in the linked thread. The linked guide is a pretty good starting point.
Before reporting any bug make sure you´re running on a supported firmware. Usually I'm announcing in the release post, the firmware the kernel.zip is compatible with, but most of the time the kernel is updated when a firmware update drops.
Please make also sure you're running a stock configuration.
That´s means you´re not using any mods, tweaks in kernel managers or other root tweaks , magisk modules, scripts or other modifications that alter various functions like sound mods, data traffic, sleeping behaviour, scheduler, magical battery tweaks etc.
Try to describe the issue as detailed as possible! Give your exact setup, like rom, magisk version, kernel version.
Is the issue reproducible? Does it happen frequently?
Please make sure to meet the points described above, provide logs as detailed in the link above, otherwise debugging is a lot more time consuming and harder. (kernel flashing apps usually support exporting logs of flashes too) If these requirements aren´t met and I don´t find time to either reproduce the issue myself or I´m not able to reproduce the issue myself, reports might just be ignored. If you can already reproduce the issue and provide logs it greatly limits the amount of time I have to spent until I figure out how to reproduce it.
Question: What about unlocking, rooting, passing safetynet, apps detecting root/modifications and other topics that are vaguely related, but not really subject of this thread?
Answer: If you want to modify your phone via root/magisk in any way you need to unlock the bootloader. Unlocking will result in safetynet not passing. This has nothing to do with the kernel. At the moment of writing this, safetynet not passing can be worked around with a magisk module called "Universal SafetyNet Fix".
Not passing safetynet is unrelated to the kernel since hardware attestation is enforced on nearly all newly released devices now.
If you´re not passing safetynet banking apps might for example be detecting root. There are various tricks to hide root/modifications to the phone from banking apps or others but that´s not really subject of this thread.
I recommend taking a look at this excellent collection of helpful threads from @roirraW "edor" ehT!
It can be found following this link!
Question: I get a device corrupted message after flashing the kernel or just reboot to bootloader. How to get rid of it?
Answer:
There seems to be an issue with verity on Pixel devices that can trigger randomly. That means even if the expected hashes match the device refuses to boot due to this bug.
A workaround for A12 has been shared in the following post linked here. It seems this issue happens randomly on devices without the vbmeta flags for verity/verification disabled.
Essentially flashing/booting (booting should be enough) a boot.img from an older firmware, letting it attempt to boot but fail, and then restore boot.img from the matching firmware clears the message.
If you´re doing this while having the kernel installed don´t forget to flash back to stock completely, which is also described in the FAQ.
There seem to be cases on A13, where this verity bug is still triggered during some flashes, essentially booting straight back to bootloader. It seems all cases reported here were solved by reflashing the firmware via the web flash tool from google, without wiping data. Interestingly flashing back an older boot.img was not needed there.
AOSP Build Environment and Standalone Kernel builds (monolithic builds)
I´m sure some of you followed the movement towards the Generic Kernel Image (GKI) and Qcoms adaption to it called QGKI.
You can find more information about GKI following this link.
What does that mean for custom kernels and this custom kernel?
The last few years the kernel on android devices was more or less compiled as a monolith. That means the kernel is in the zImage with all (most) drivers compiled inline.
However with GKI this changed. There´s the base kernel image while vendor/device specific drivers are compiled as dynamically loadable kernel modules.
On last years devices like the Pixel 5 (using a 4.19 kernel) and this years devices with SD888 on a 5.4 kernel base, there was the possibility to change the QGKI kernel back into a monolithic kernel image. (building the drivers that are on stock kernel external modules back into the zImage to end with a monolithic kernel)
On the Pixel 6 I wasn´t able to achieve this yet. But during my tries I also wondered if maybe finally the time has come to follow suit, instead of trying to enforce old ways, when there´s a new way going forward.
What does that mean. This means that at this point the kernel is shipped as images that are to be flashed via fastboot. At a later stage I´m sure we can modify anykernel3 to allow flashing zips again, but at this early stage fastboot flashable images will be provided.
Those images can be flashed the same way the device is rooted, therefore I think everybody should be able to flash it easily since the device can´t be rooted any other way.
The kernel was compiled using the aosp kernel build environment. Information about it can be found on the documentation page from google.
Fastboot commands:
Flash the images in this order:
Boot to bootloader:
Either select Reboot to bootloader option via magisk manager, use the button combinations or run the following command while in the OS:
or type:
Code:
adb reboot bootloader
Now in fastboot flash boot.img, dtbo.img, vbmeta.img (vbmeta can be left out if you disabled verity/verification) and vendor_boot.img
Commands:
Code:
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash vendor_boot vendor_boot.img
caution with the vbmeta.img, if you disabled verity/verification flashing this images without the flags will re-enable both verity and verification! If you disabled verity/verification on your device there´s no need to restore it.
fastboot flash vbmeta vbmeta.img
Now boot to fastbootd
Code:
fastboot reboot fastboot
Once in fastbootd:
Code:
fastboot flash vendor_dlkm vendor_dlkm.img
4. Reboot either via buttons
or by typing
Code:
fastboot reboot
5. Profit![/SPOILER]
Spoiler: Deprecated. Just here for collection.
Manual Installation:
Note:
Manual Installation will not be supported and updated since 3.0.0 and going forward.
There´s a free and open source alternative to FKM or EXKM that supports flashing kernel.zips.
You can find it following this link.
Spoiler
This is for advanced users or users that don´t want to rely on paid apps to flash the flashable kernel.zip introduced with 1.4.0.
These instructions are not to be mixed with those in the first post and do apply for kernel releases 1.4.0 and more recent!
1. Download the boot images provided in the downloads section under the version you want to flash and then manual install to your PC. Make sure to use the correct ones for your device. Patch the boot.img with magisk.
Download the zip matching your device from the download folder and the version you want to flash.
From the zip extract dtbo.img, vendor_boot and vendor_dlkm.img
1.a : Download the powerhint magisk module found in downloads section and flash it via Magisk Manager like any other magisk module. Don´t forget to flash it, it´s tied to changes in the kernel. It´s crucial for the kernel to work. Without the module flashed before flashing the images the device will not boot!
2. Flash the provided images using fastboot/bootloader and fastbootd (these are seperate modes, see instructions below)
2a. Don´t forget to patch the provided boot.img in magisk manager prior to flashing it via fastboot. Of course you need to adjust your command to flash like you did when rooting the device.
3. vendor_dlkm.img needs to be flashed in fastbootd, while the other images need to be flashed via fastboot/bootloader
Flash the images in this order:
Boot to bootloader:
Either select Reboot to bootloader option via magisk manager, use the button combinations or run the following command
or type:
Code:
adb reboot bootloader
Now in fastboot flash boot.img, dtbo.img and vendor_boot.img
Commands:
Code:
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash vendor_boot vendor_boot.img
Now boot to fastbootd
Code:
fastboot reboot fastboot
Once in fastbootd:
Code:
fastboot flash vendor_dlkm vendor_dlkm.img
4. Reboot either via buttons
or by typing
Code:
fastboot reboot
5. Profit!
Instructions for flashing Release 1.3.0 or below.
These kernel releases are only for November firmware. They will bootloop on anything that´s more recent.
Spoiler: Instructions - Release 1.3.0 and older -Only for November Firmware
0. Do not use this if you´re on any firmware more recent that November 2021!
1. Download the images provided in the downloads section to your PC.
1.a Optional: Download the powerhint magisk module found in downloads section and flash it via Magisk Manager like any other magisk module.
2. Flash the provided images using fastboot/bootloader and fastbootd (these are seperate modes)
2a. If you want to stay rooted patch the provided boot.img in magisk manager prior to flashing it via fastboot. Of course you need to adjust your command to flash like you did when rooting the device.
3. vendor_dlkm.img needs to be flashed in fastbootd, while the other images need to be flashed via fastboot/bootloader
How to boot to fastbootd
From running phone:
Code:
adb reboot fastboot
From fastboot/bootloader:
Code:
fastboot reboot fastboot
Once in fastbootd:
Code:
fastboot flash vendor_dlkm vendor_dlkm.img
Boot from fastbootd to fastboot/bootloader to flash dtbo.img and boot.img:
Either select Reboot to bootloader option via buttons
or type:
Code:
fastboot reboot bootloader
Now in fastboot flash boot.img and dtbo.img
Commands:
Code:
fastboot flash dtbo dtbo.img
fastboot flash boot boot.img
4. Reboot either via buttons
or by typing
Code:
fastboot reboot
5. Profit!
So glad to see you here. Such a staple in this community.
Let the Development Begin for the Pixel 6 Pro! kudos
Please post in pixel 6 forum also I will test when I get home
great to you made good progress
Confirmed working on pixel 6, testing now! thanks for the hard work
I have the error FAILED (remote: No such file or directory) for flashing vendor_dlkm in fastbootd mode, does anyone has any clue why?
edit: Never mind, used a different fastboot/adb and it works.
Can confirm works perfectly on Pixel 6 now for one of us to get a working twrp or other recovery.img
allenjthomsen said:
Can confirm works perfectly on Pixel 6 now for one of us to get a working twrp or other recovery.img
Click to expand...
Click to collapse
Works here perfectly as well here too.
I know the kernel is barebones but i wanted to know if there's any Wireguard implementation within the kernel. Thanks dev for your hard work.
@Freak07 My goodness great work sir! The first custom kernel for the OnePlus 6 Pro.
So far running very well!
Just some few early unusual observations, and this might be my only unit doing this:
1) Device is slightly snappier now. But this seems to come at the cost of fluidity. Doesn't feel quite as smooth as stock kernel.
2) When the device is charging, the charging device vibration haptics randomly buzzes from time to time - when a cable is plugged in. It would never do this on stock kernel. Again. Might be just some sort of weird fluke as I just literally flashed this.
Is it possible you could implement KCAL color commits to alter saturation white point controls? If there's ever a device that needs it, I'd say it's this one. That yellowish piss hue on the screen is simply gross. The six Pro has the clearest screen I've ever seen, but the color reproduction looks nothing short of horrendous. I don't understand why Google doesn't implement white point or wide color gamut support on Pixel devices. It's a night and day difference to your eyes. I love that dopamine kick from seeing beautiful, vibrant colors.
EDIT: Also, I can't stress enough. This first build is nothing short of amazing. I know it's super tough because this is all new stuff.
Could you possibly consider adding some CAF boost controls sometime in the future? It's so awesome to build and make the device a little bit snappier on command^
EDIT 2: this might be far too early to tell, but there seems to be a bug with charging. Along with the random vibrations going off, the charging speed is unusually slow. Again, this might be only my device doing this (Fluke) so maybe other people can concur.
EDIT 3: just noticed another bug. Again. This might be only my device. LTP0 doesn't seem to work. Everything is locked at 120 Hertz. Not sure would have caused that. I've rebooted a few times and it's still there. I can provide any logs of necessary.
Zilla0617 said:
I know the kernel is barebones but i wanted to know if there's any Wireguard implementation within the kernel. Thanks dev for your hard work.
Click to expand...
Click to collapse
Wireguard was implemented by Google in the Android 12 kernel.
Google adds WireGuard VPN to Android 12's Linux Kernel
Google just made a big move to bring WireGuard VPN kernel acceleration to Android 12 by merging support in Linux Kernel 4.19 and 5.4 trees.
www.xda-developers.com
vassosman said:
Wireguard was implemented by Google in the Android 12 kernel.
Google adds WireGuard VPN to Android 12's Linux Kernel
Google just made a big move to bring WireGuard VPN kernel acceleration to Android 12 by merging support in Linux Kernel 4.19 and 5.4 trees.
www.xda-developers.com
Click to expand...
Click to collapse
I prefer to activate it without the slower VPN key method. If you have a custom kernel, you can activate it in the background (without the VPN key). Right now if try to activate Wireguard on the stock kernel the tunnel is created via the key.
I just had a reboot. I've attached my pstore folder.
same getting random reboots every so often
ill get my pstore and upload it for you in a few
Awesome, now a reason to get root.

Development TWRP 3.7.0_11.0

Here you can find my twrp build.
Touchscreen not working.
I used a OTG cable and a usb mouse.
Have to find the correct touchscreen modul.
Use only: fastboot boot recovery.img
How to build twrp?
GitHub - minimal-manifest-twrp/platform_manifest_twrp_aosp: Minimal manifest for building TWRP for devices shipped with Android 10+
Minimal manifest for building TWRP for devices shipped with Android 10+ - GitHub - minimal-manifest-twrp/platform_manifest_twrp_aosp: Minimal manifest for building TWRP for devices shipped with And...
github.com
Branch twrp-11
Device tree with prebuilt stock motorola defy kernel
GitHub - walter79/recovery_device_motorola_bathena
Contribute to walter79/recovery_device_motorola_bathena development by creating an account on GitHub.
github.com

Categories

Resources