LazyFlasher & no-verity-opt-encrypt
INTRODUCTION
Hello Users and Developers of XDA!
LazyFlasher is a custom kernel flashing tool designed to make it easy to dynamically modify ramdisks and inject kernel binaries into the current boot image.
It's the swiss army knife of kernel flashing for use in Team Win Recovery Project.
The intent behind it was to allow a 1 custom kernel fits all approach, where your users can flash single zip on any ROM for a particular device,
allowing your kernel to be compatible with the vast majority of custom ROMs already out there. It takes away the pain of building custom boot.img
for each and every variant a user requests and puts it into 1 low maintenance intelligent universal flashable zip.
You might already know of @osm0sis's AnyKernel2 project. This approach is similar to that. Back in late 2015 I decided to design a more compatible, more friendly, and more feature filled version. Since then, AnyKernel2 has apparently improved a lot so if LazyFlasher doesn't accomplish what you need, AnyKernel2 probably will.
LazyFlasher does not currently support ELF boot images.
For users of no-verity-opt-encrypt: This thread can also be used to discuss the no-verity-opt-encrypt project which is just a minimal version of the LazyFlasher framework.
Disqus thread: https://www.xda-developers.com/xda-...-is-an-alternative-to-the-anykernel2-project/
THE GITHUB REPOSITORY
You can find LazyFlasher's development and download it here: https://github.com/jcadduono/lazyflasher
LazyFlasher source code is distributed under the BSD 2-clause license. You can do anything you want with it, however, some of the binaries used by it are under GPLv2 or GPLv3 licenses.
FEATURES
ChromeOS support (ChromeOS test-key signing and recognition)
MediaTek device support (MTK headers)
SELinux policy injection support via sepolicy-inject
Example scripts to disable dm-verity or forced encryption during the install process (010-no-force-encrypt, 015-no-dm-verity)
A process that executes a sorted list of scripts for making the desired modifications (separate from the framework)
Handily unpacks, decompresses, applies changes, compresses, and repacks boot images quickly and safely
Supports Gzip, LZ4, Bzip2, and LZO ramdisks. Support for LZMA and XZ is a work in progress
Supports arm (armv7), arm64 (aarch64), x86 (i386), x86_64 (amd64), mips, and mips64 architectures
Supports dtb.img replacement (place it in the root folder named "dtb.img")
Scans fstab and partition locations for the boot partition, optionally allows a preset location
Intelligently installs kernel modules by copying the previous layout of /system/lib/modules and creating symlinks
Creates modprobe supported /lib/modules aliases if kernel modules are included in the installer (030-kernel-modules)
Installs new files to the ramdisk and sets their permissions automatically based on file type from ramdisk-patch (020-patch-ramdisk)
Includes an optional bbe tool for applying binary patches
Unnecessary architectures and tools can be removed to save space
Many useful functions and variables included in the patch.d environment to simplify modification/patching scripts (patch.d-env)
Simple "make" build system
SETTING UP LAZYFLASHER
LazyFlasher is only designed for building on Unix based systems such as Linux, Mac OS X, and FreeBSD.
To download it (feel free to fork it so you can have a copy on your GitHub to modify instead!):
Code:
cd ~/build
git clone -b kernel-flasher https://github.com/jcadduono/lazyflasher.git
cd lazyflasher
To use LazyFlasher, you'll probably want to take a look at the Makefile, config.sh, and META-INF/com/google/android/update-binary (a shell script).
There's a few things you can change there to personalize it to your needs.
(make another git commit to save your setup!)
You should also check out the README! There is a lot of useful information there.
Once the installer is set up to your liking, all you have to do to build it is copy the resulting kernel binary from your kernel build output into the lazyflasher folder.
If you have built with kernel modules (make modules_install), copy build/lib/modules -> lazyflasher/modules.
Now simply run:
Code:
make
A TWRP flashable zip and sha1sum is created!
You should consider signing the zip with AOSP test-keys so that users can verify its integrity before flashing it.
LOOKING TO TRIM DOWN THE INSTALLER?
I have forked the kernel-flasher branch to a branch called kernel-flasher-arm64-minimal. This provides all the features of kernel-flasher except sepolicy injection and bbe, and only supports arm64 devices. It reduces the minimum zip size from 1860 KB to 200 KB.
You can use this branch instead if you like. If you're using another architecture, just look at the trimming commit as an example and apply it for your arch.
BUT I AM ON LE WINDOWS!
How did you build your kernel binary?!
Anyways, there is an alternative for building it on Windows.
You can download the LazyFlasher kernel-flasher branch as a zip file from GitHub and extract it somewhere on your PC.
Make your modifications using Notepad++.
You can then use a tool such as 7-zip to create a zip file by selecting everything in the folder, right clicking, and going to 7-Zip -> Add to "lazyflasher.zip".
LIMITATIONS AND KNOWN ISSUES
It will not run on TWRP built in Android 4.3 or earlier (usually builds older than 2.8.0.0)
Requires Busybox to exist in the TWRP build. All official builds should have this.
There may occasionally be some devices that are unsupported due to extreme modifications made to the boot image format by the manufacturer. If you have one of these devices, feel free to contact me and I will try to add support for it if it is worth the effort.
If you have an issue, please gather a recovery.log from TWRP after flashing and I will try to look into it. I can't do anything to diagnose your problem without a recovery log.
Code:
adb pull /tmp/recovery.log
JUST WANT TO DISABLE VERITY/ENCRYPTION?
You can build lazyflasher by itself, empty, without a kernel image or modules and flash it!
It's already set up to automatically disable verity and make encryption optional.
Alternatively, there's a branch already set up called no-verity-opt-encrypt. You can find prebuilt official zips at: https://build.nethunter.com/android-tools/no-verity-opt-encrypt/
WHO ELSE IS USING LAZYFLASHER?
I'll keep a list here of cool projects that are using it. Feel free to ask for yours to be added.
The Kali Linux NetHunter project (GitHub, Website)
no-verity-opt-encrypt, no-verity-force-encrypt, twrp-data-fstype-swap (Website/Download)
WHAT IS LAZYFLASHER USING?
LazyFlasher makes use of a few open-source projects. You can find their source code here:
bootimg / libbootimg for boot image unpacking/repacking - https://github.com/jcadduono/android_external_libbootimg
bbe for binary patching - https://github.com/jcadduono/android_external_bbe
bzip2 for ramdisks - https://github.com/jcadduono/android_external_bzip2
lz4 for ramdisks - https://github.com/jcadduono/android_external_lz4
futility for ChromeOS boot image signing - https://github.com/jcadduono/platform_external_vboot_reference
sepolicy-inject for sepolicy policy injection - https://github.com/jcadduono/android_external_sepolicy-inject
XDA:DevDB Information
LazyFlasher, Tool/Utility for the Android General
Contributors
jcadduono
Source Code: https://github.com/jcadduono/lazyflasher
Version Information
Status: Stable
Current Stable Version: 5.1
Stable Release Date: 2017-02-01
Created 2017-02-02
Last Updated 2017-02-07
We should give this man award.
The Job that he has done with this and Nethunter is just amazing.
Thank you and keep up the good work
Nice tool. Keep up a good work
Great Work! Hope i can include it into my Projects in the Future...
Thanks a lot for that!
You are a goddamn god.
Honestly Annoying said:
You are a goddamn god.
Click to expand...
Click to collapse
thx dude, usually that phrase is reserved for Chainfire accomplishments
y u nu support mah Indian AF MTK fone @jcadduono
Kidding, awesome work on this though!
Good one , this man develops for the developers !
Is it possible to have this on i9100 ? AnyKernel2 doesn't work with i9100
Skyline said:
Is it possible to have this on i9100 ? AnyKernel2 doesn't work with i9100
Click to expand...
Click to collapse
nope, no plans to support that device, surprised they are still out there, i would expect most to be dead emmc by now. :|
you can probably modify boot-patcher.sh to copy partitions to split-img folder then flash them back instead of using bootimg
i don't even know if lazyflasher's binaries will run on any of the i9100 twrp builds. might be too old.
if i can get an example layout of i9100's partitions i can fork it to a new branch, called kernel-flasher-sgs2 and make it compatible for you guys.
jcadduono said:
nope, no plans to support that device, surprised they are still out there, i would expect most to be dead emmc by now. :|
you can probably modify boot-patcher.sh to copy partitions to split-img folder then flash them back instead of using bootimg
i don't even know if lazyflasher's binaries will run on any of the i9100 twrp builds. might be too old.
if i can get an example layout of i9100's partitions i can fork it to a new branch, called kernel-flasher-sgs2 and make it compatible for you guys.
Click to expand...
Click to collapse
They are too old but still supported by lineage 14.1 and official twrp 3.0.2-1 without any problems
osmOsis dev of anykernel2 said that i9100 and older devices are having different boot img header format when i tried to run anykernel2 script it says Android magic is not found something like that
interesting tnx
Wow...
I'm just recognizing now, how powerful lazyflasher is ...
Setting default.prop values and settings. Disable Encryptions and so on. Wish I could contribute something but I'm still learning how it works. For now I've just included lazyflasher into my PATCH to disable DM Verity and forced Encryption and to make some edits on the default.prop. That's really useful since the build.prop doesn't allows such deep changes.
@jcadduono what would be in the Theory possible with the Lazyflasher? Could we add things like Gouverneurs or default Kernel Clockings? Init.d Support? Sorry if I sound noobish :angel:
So, uh, is there a TL;DR for lazy people? :silly: :laugh:
@jcadduono this is absolutely awesome. thank you for your hard work.
Hope that someone can dev nethunter to Asus zenfone 5 t00f :fingers-crossed:
can you please make a tutorial vedio of it because i don't get it and i'm sorry for my stupidity
Will it work for Android Oreo / LOS 15?
Did anyone succeeded in removing dm-verity? I got this error
good
NLOS is an unofficial unified LineageOS build with many additions. These additions started small and have grown large over the month. So, it's time to name it NLOS - which still is an UNOFFICIAL LineageOS build.
Thanks to @UnbracedTundra NLOS has it's own logo, bootanimation and wallpapers. Thanx to @Syssx for evolving the bootanimation.
LineageOS is a free, community built, aftermarket firmware distribution of Android 9 (Pie), which is designed to increase performance and reliability over stock Android for your device.
My priorities are stabillity, battery, performance - in that order. This build is optimized (i.e. gcc-7.3 is used for kernel building) and has quite some candy (like OMS exPoseres).
In addition this rom contains two patches (https://github.com/microg/android_p...aster/patches/android_frameworks_base-P.patch and https://github.com/microg/android_p...aster/patches/android_frameworks_base-N.patch, ported to Pie) to be microG ready - this means freedom of choice to flash either gapps or install (microG How to use Android without Google Apps).
The kernel is prepared for Wireguard VPN - to use Wireguard for vpn-tunnels you need to get the WireGuard-apk from playstore. WireGuard developer @zx2c4 runs a dedicated Wireguard Thread.
The shipped kernel is prepared to comply to googles safetynet api. Since google has started to check if the sec patch level matches the build fingerprint, it's necessary to adjust the aosp based shipped ro.build.version.security_patch to the currently used OxygenOS build fingerprint. For details see posting #3 and the announcment of each build.
Additionally nlos' kernel has been upstreamed to the latest 3.18.y (3.18.140 EOL) patches. Since 3.18.y is no longer supported by kernel.org, I also merge https://source.codeaurora.org/quic/la/kernel/msm-3.18/. This way we get the latest qualcomm fixes and patches. Codeaurora is still supporting and maintaining their msm-3.18 project. To show the current state of the nlos kernel the naming scheme is "3.18.140-[caf tag]-NLOS-g[git hash]", e.g.: "3.18.140-LA.UM.7.6.r1-07000-89xx.0-NLOS-g63a7debca7d7". The staged qcacld-2.0 wifi driver is also updated to the same caf tag from https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0. This way Qualcomm security bullentins (https://www.qualcomm.com/company/product-security/bulletins ) are brought in.
Currently known issue can be found here.
If you find an issue, follow these instructions: https://forum.xda-developers.com/showpost.php?p=58239877&postcount=3
Everybody has his very own definition of "clean flash" or "dirty flash". I use these phrases like descriped in this posting: https://forum.xda-developers.com/showpost.php?p=58239877&postcount=2
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Code:
#include <std_disclaimer.h>
/*
* Your warranty isn't void: we are on an oneplus device.
*
* We are not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at us for messing up your device, we will laugh at you.
*
*/
LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. You will need to provide your own Google Applications package (gapps). LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.
This thread is for NLOS-16.0 builds for oneplus3 and onepluy3t. The following will not be supported here:
Custom kernels
Mods
Xposed
gapps packages bigger then opengapps-nano
I don't support Xposed and any logcat which includes a Xposed module will be ignored. You're kindly invited to not report bugs if you:
Flashed a custom kernel
Installed or did mods from untrusted sources
Modified system files (i.e. by using gapps larger then opengapps-nano)
First time flashing NLOS 16.0 on your device, or coming from another ROM:
Backup your current ROM and make sure you have backups of your data you want to keep.
Download the ROM below in the downloads section.
Download OpenGapps arm64 Android 9.0 pico or nano don't use a package larger then nano.
Download and flash official twrp-3.4.0-0.
Download and flash latest OxygenOS Oreo firmware.
Optional (mandatory, if you have issues with encryption): Format data: in twrp tap on wipe and then tap on format data. This will delete all data, remove encryption and leave you with ext4, which is highly recommended. If you want to use f2fs you need to change the fs back to f2fs - it's possible but not recommended (at least if you don't have basic knowledge of fs implementations). Many twrp versions have serious regressions regarding f2fs with encryption footer. Though this should be fixed by now, you can always manually format f2fs with footer. See: https://forum.xda-developers.com/on...1-20180223-t3754855/post75688089#post75688089.
Wipe system, data and caches.
Flash NLOS.
Flash Google Apps. If you want to use microG skip this step and install microG (How to use Android without Google Apps).
Optional: flash Magisk (if you need root)
Reboot (as usual: first boot takes loooooong )
Updating this rom
Dirty flashing should work just fine: reboot into recovery (if necesarry flash the firmware zip recommended by the release notes) and flash the updated NLOS zip - don't forget to wipe dalvik and cache. Settings, apps and even google apps are preserved.
Important: if you encounter any issues, a clean install is recommended and even required if you need support.
I won't build on a daily (or nightly) basis. I will publish new builds, if I fixed something, important upstream changes or new security patchlevels.
LineageOS changelog: https://www.lineageoslog.com/16.0
History
Build 20210714
Releasenotes:
This build relies on OxygenOS firmware. OxygenOS 9.0.6 firmware is required. At this point you have two options:
You don't care about loosing data on an unlocked bootloader and clean flash including format userdata according to the first time installation instructions in OP (recommended):
Oneplus 3T: OxygenOS 9.0.6 firmware without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware without alipay and soter files
You want to keep your current setup and like to dirty flash on top of beta builds:
I've created a firmware package from OxygenOS 9.0.6. To avoid issues due to an unlocked bootloader and/or encrypted userdata partition, I've kept the bootloader and and keymaster partition to OxygenOS 5.0.8. This allows to run the pie-blobs builds with native Oneplus OxygenOS 9.0.6 firmware, but you don't need to reformat the userdata partition (for details see: https://forum.xda-developers.com/oneplus-3t/how-to/guide-cope-9-0-3-5-0-8-firmware-barrier-t3941164).
Oneplus 3T: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
If you need to pass safetynet api flash sec-patch-2019-08-01_v02.zip from https://forum.xda-developers.com/on...-nlos-16-0-t3879405/post78433987#post78433987 .
Before you ask: though I've updated the blobs used in the rom to OOS 9.0.6, I've decided to stick with OOS 9.0.5 build fimgerprint, because 9.0.5 is the only version with identical fingerprint strings for op3 and op3t.
If you want to use Alipay with fingerprint authentication, follow @Galiis' directions in posting #6.
For a complete list of additional cherry picks see: current.pick.sh.
Changelog (Last repo sync: 14 Jul 2021, 15:39:59 CEST / 14 Jul 2021, 13:39:59 UTC):
my_build.sh: remove jack-server hanling; update mktemp call. — Nvertigo
Patch up: P_asb_2021-07. — Nvertigo
Revert "nlos.xml: add Bromite System Webvoew from MSe1969's repo." — Nvertigo (Thanx @MSe1969
kernel: patches mentioned in https://source.android.com/security/bulletin/2021-07-01?hl=en(ASB 2021 07):
qcacld-2.0: Send assoc reject upon failing to post ASSOC_IND — Paul Zhang
WG: squash WireGuard-linux-compat-1.0.20210606. — Nvertigo
Patch up: P_asb_2021-05. — Nvertigo
NLOS-Bootlogo
nlos_bootlogo-v0.1.zip
back_in_black_bootlogo-v1.0.zip(pre ob16 OxygenOS Bootlogo)
[SIZE="+2"]DOWNLOAD[/SIZE]
Happy flashing!
Build 20210620
Releasenotes:
This build relies on OxygenOS firmware. OxygenOS 9.0.6 firmware is required. At this point you have two options:
You don't care about loosing data on an unlocked bootloader and clean flash including format userdata according to the first time installation instructions in OP (recommended):
Oneplus 3T: OxygenOS 9.0.6 firmware without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware without alipay and soter files
You want to keep your current setup and like to dirty flash on top of beta builds:
I've created a firmware package from OxygenOS 9.0.6. To avoid issues due to an unlocked bootloader and/or encrypted userdata partition, I've kept the bootloader and and keymaster partition to OxygenOS 5.0.8. This allows to run the pie-blobs builds with native Oneplus OxygenOS 9.0.6 firmware, but you don't need to reformat the userdata partition (for details see: https://forum.xda-developers.com/oneplus-3t/how-to/guide-cope-9-0-3-5-0-8-firmware-barrier-t3941164).
Oneplus 3T: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
If you need to pass safetynet api flash sec-patch-2019-08-01_v02.zip from https://forum.xda-developers.com/on...-nlos-16-0-t3879405/post78433987#post78433987 .
Before you ask: though I've updated the blobs used in the rom to OOS 9.0.6, I've decided to stick with OOS 9.0.5 build fimgerprint, because 9.0.5 is the only version with identical fingerprint strings for op3 and op3t.
If you want to use Alipay with fingerprint authentication, follow @Galiis' directions in posting #6.
For a complete list of additional cherry picks see: current.pick.sh.
Changelog (Last repo sync: 20 Jun 2021, 08:27:07 CEST / 20 Jun 2021, 06:27:07 UTC):
nlos.xml: add Bromite System Webvoew from MSe1969's repo. — Nvertigo
nlos.mk: use Bromite System Webvoew from MSe1969's repo. — Nvertigo
kernel: patches mentioned in https://source.android.com/security/bulletin/2021-06-01?hl=en(ASB 2021 06):
qcacld-2.0: Add eapol checking for intra-bss fwd & indicate in IPA exc path — Tiger Yu
qcacld-2.0: Add eapol sanity checking for intra-bss forwarding & indicate — Lihua Liu
qcacld-2.0: Drop mcast and plaintext frags in protected network — Tiger Yu
qcacld-2.0: Discard frag frames if the PN is not consecutive — Tiger Yu
qcacld-2.0: Flush RX packets for peer after key installation — Tiger Yu
qcacld-2.0: Initialize preauth node — Liangwei Dong
qcacld-2.0: Fix SAP data tx block issue — Brandon Huang
qcacld-2.0: Fix a compile error — lihual
crypto: Fix possible stack out of bound error — Tanwee Kausar
HID: make arrays usage and value to be the same — Will McVicker
WG: squash WireGuard-linux-compat-1.0.20210606. — Nvertigo
Patch up: P_asb_2021-05. — Nvertigo
NLOS-Bootlogo
nlos_bootlogo-v0.1.zip
back_in_black_bootlogo-v1.0.zip(pre ob16 OxygenOS Bootlogo)
[SIZE="+2"]DOWNLOAD[/SIZE]
Happy flashing!
Build 20210509
Releasenotes:
This build relies on OxygenOS firmware. OxygenOS 9.0.6 firmware is required. At this point you have two options:
You don't care about loosing data on an unlocked bootloader and clean flash including format userdata according to the first time installation instructions in OP (recommended):
Oneplus 3T: OxygenOS 9.0.6 firmware without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware without alipay and soter files
You want to keep your current setup and like to dirty flash on top of beta builds:
I've created a firmware package from OxygenOS 9.0.6. To avoid issues due to an unlocked bootloader and/or encrypted userdata partition, I've kept the bootloader and and keymaster partition to OxygenOS 5.0.8. This allows to run the pie-blobs builds with native Oneplus OxygenOS 9.0.6 firmware, but you don't need to reformat the userdata partition (for details see: https://forum.xda-developers.com/oneplus-3t/how-to/guide-cope-9-0-3-5-0-8-firmware-barrier-t3941164).
Oneplus 3T: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
If you need to pass safetynet api flash sec-patch-2019-08-01_v02.zip from https://forum.xda-developers.com/on...-nlos-16-0-t3879405/post78433987#post78433987 .
Before you ask: though I've updated the blobs used in the rom to OOS 9.0.6, I've decided to stick with OOS 9.0.5 build fimgerprint, because 9.0.5 is the only version with identical fingerprint strings for op3 and op3t.
If you want to use Alipay with fingerprint authentication, follow @Galiis' directions in posting #6.
For a complete list of additional cherry picks see: current.pick.sh.
Changelog (Last repo sync: 9 Mai 2021, 10:22:49 CEST / 9 Mai 2021, 08:22:49 UTC):
Update webview to 90.0.4430.204. — Nvertigo
see https://bitbucket.org/nvertigo/android_external_chromium-webview/src/master/patches/ for a complete list of patches
kernel: patches mentioned in https://source.android.com/security/bulletin/2021-03-01?hl=en(ASB 2021 02):
tty: Fix ->pgrp locking in tiocspgrp() — Jann Horn
WG: squash WireGuard-linux-compat-1.0.20210424. — Nvertigo
Patch up: P_asb_2021-05. — Nvertigo
NLOS-Bootlogo
nlos_bootlogo-v0.1.zip
back_in_black_bootlogo-v1.0.zip(pre ob16 OxygenOS Bootlogo)
[SIZE="+2"]DOWNLOAD[/SIZE]
Happy flashing!
Build 20210305
Releasenotes:
This build relies on OxygenOS firmware. OxygenOS 9.0.6 firmware is required. At this point you have two options:
You don't care about loosing data on an unlocked bootloader and clean flash including format userdata according to the first time installation instructions in OP (recommended):
Oneplus 3T: OxygenOS 9.0.6 firmware without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware without alipay and soter files
You want to keep your current setup and like to dirty flash on top of beta builds:
I've created a firmware package from OxygenOS 9.0.6. To avoid issues due to an unlocked bootloader and/or encrypted userdata partition, I've kept the bootloader and and keymaster partition to OxygenOS 5.0.8. This allows to run the pie-blobs builds with native Oneplus OxygenOS 9.0.6 firmware, but you don't need to reformat the userdata partition (for details see: https://forum.xda-developers.com/oneplus-3t/how-to/guide-cope-9-0-3-5-0-8-firmware-barrier-t3941164).
Oneplus 3T: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
If you need to pass safetynet api flash sec-patch-2019-08-01_v02.zip from https://forum.xda-developers.com/on...-nlos-16-0-t3879405/post78433987#post78433987 .
Before you ask: though I've updated the blobs used in the rom to OOS 9.0.6, I've decided to stick with OOS 9.0.5 build fimgerprint, because 9.0.5 is the only version with identical fingerprint strings for op3 and op3t.
If you want to use Alipay with fingerprint authentication, follow @Galiis' directions in posting #6.
For a complete list of additional cherry picks see: current.pick.sh.
Changelog (Last repo sync: 5 Mär 2021, 15:43:32 CET / 5 Mär 2021, 14:43:32 UTC):
Update webview to 88.0.4324.207. — Nvertigo
see https://bitbucket.org/nvertigo/android_external_chromium-webview/src/master/patches/ for a complete list of patches
kernel: patches mentioned in https://source.android.com/security/bulletin/2021-03-01?hl=en(ASB 2021 02):
ANDROID: xt_qtaguid: Remove tag_entry from process list on untag — Kalesh Singh
WG: squash WireGuard-linux-compat-1.0.20210219. — Nvertigo
op3/t: gps: use ntp.org auto-selection. — Nvertigo
op3t: gps: XTRA: use https and check for version 3. — Nvertigo
op3/t: use https for downloading gps XTRA data. — Nvertigo
Patch up: P_asb_2021-03. — Nvertigo
NLOS-Bootlogo
nlos_bootlogo-v0.1.zip
back_in_black_bootlogo-v1.0.zip(pre ob16 OxygenOS Bootlogo)
[SIZE="+2"]DOWNLOAD[/SIZE]
Happy flashing!
Build 20210207
Releasenotes:
This build relies on OxygenOS firmware. OxygenOS 9.0.6 firmware is required. At this point you have two options:
You don't care about loosing data on an unlocked bootloader and clean flash including format userdata according to the first time installation instructions in OP (recommended):
Oneplus 3T: OxygenOS 9.0.6 firmware without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware without alipay and soter files
You want to keep your current setup and like to dirty flash on top of beta builds:
I've created a firmware package from OxygenOS 9.0.6. To avoid issues due to an unlocked bootloader and/or encrypted userdata partition, I've kept the bootloader and and keymaster partition to OxygenOS 5.0.8. This allows to run the pie-blobs builds with native Oneplus OxygenOS 9.0.6 firmware, but you don't need to reformat the userdata partition (for details see: https://forum.xda-developers.com/oneplus-3t/how-to/guide-cope-9-0-3-5-0-8-firmware-barrier-t3941164).
Oneplus 3T: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
Oneplus 3: OxygenOS 9.0.6 firmware with 5.0.8 bootloader and keymaster and without alipay and soter files
If you need to pass safetynet api flash sec-patch-2019-08-01_v02.zip from https://forum.xda-developers.com/on...-nlos-16-0-t3879405/post78433987#post78433987 .
Before you ask: though I've updated the blobs used in the rom to OOS 9.0.6, I've decided to stick with OOS 9.0.5 build fimgerprint, because 9.0.5 is the only version with identical fingerprint strings for op3 and op3t.
If you want to use Alipay with fingerprint authentication, follow @Galiis' directions in posting #6.
For a complete list of additional cherry picks see: current.pick.sh.
Changelog (Last repo sync: 7 Feb 2021, 14:00:53 CET / 7 Feb 2021, 13:00:53 UTC):
Update webview to 88.0.4324.152. — Nvertigo
see https://bitbucket.org/nvertigo/android_external_chromium-webview/src/master/patches/ for a complete list of patches
kernel: patches mentioned in https://source.android.com/security/bulletin/2021-02-01?hl=en(ASB 2021 02):
WG: squash WireGuard-linux-compat-1.0.20210124 — Nvertigo
usb: dwc3: ep0: Return from handle_status if ep0_delegate_req succeeds — Udipto Goswami
msm: kgsl: Remove VM_MAYWRITE flag to restrict mprotect — Indira Biruduraju
current.pick.sh: use prebuilt python-2.7 instead of system python. — Nvertigo
Revert "current.pick.sh: system/nfc: SDCLANG-6: fix declaration." — Nvertigo
Add full-featured linux x86 64bit Python 2.7.18. — Nvertigo
Use freshly added full-featured linux x86 64bit Python 2.7.18. — Nvertigo
Patch up: P_asb_2021-02. — Nvertigo
NLOS-Bootlogo
nlos_bootlogo-v0.1.zip
back_in_black_bootlogo-v1.0.zip(pre ob16 OxygenOS Bootlogo)
[SIZE="+2"]DOWNLOAD[/SIZE]
Happy flashing!
Firmware
NVertigo's Oxygen Firmware Archive
TWRP
Latest official twrp downloads
Thread for official twrp
(Note: Don't use official twrp-3.2.3-1! Use dianlujitao's inofficial twrp-3.2.3-10 announced here or
latest official twrp.)
Google Apps:
OpenGapps arm64 Android 9.0 pico or nano
Source and toolchains
https://github.com/LineageOS/
https://github.com/nvertigo/local_manifest/tree/nlos-16.0 (If you want to build this rom yourself, consult the file named README, it's outdated, but still helpfull)
Aytex, who made all of the banners on this post.
team-exynos5420 for the OP templete.
All the LineageOS-Team.
@Lord Boeffla for patiencely answering my questions.
@koenkk
@Sultanxda
@TheFrozen4 for documentation and optimizing this OP.
The microG Team
@UnbracedTundra for all the awesome NLOS-ArtWork.
@zx2c4 for Wireguard VPN (dedicated Wireguard Thread)
@Arnova8G2 for his GoggleCamera port.
@S4turno for this great thread on GoggleCamera Mods.
@knpk13 for debugging this OP.
Substratum Dev Team
@danieldmm for opening my eyes for the obvious...
@mcdachpappe for helping me with additional notification slider options.
@mesziman for helping to get soong play nicely with sdclang.
@Syssx for evolving the bootanimation.
Team MOKEE for longshot.
@MSe1969 for upstreaming the kernel to https://android.googlesource.com/kernel/common/+log/refs/heads/android-3.18 after EOL on kernel.org.
...and everybody I forgot.
Happy flashing!
XDA:DevDB Information
NLOS-16.0, ROM for the OnePlus 3
Contributors
nvertigo67
ROM OS Version: 9.x Pie
ROM Kernel: Linux 3.x
ROM Firmware Required: OxygenOS 5.0.8
Based On: lineageos
Version Information
Status: Beta
Created 2018-12-15
Last Updated 2018-12-18
5GHz Tethering Hotspot
Symptom:
If you start the Tethering Hotspot (TS) on the 5GHz band, your clients can't see the TS, though it's fired up according to logcat.
Background:
The TS is run on a channel to high to be visible on the clients:
nvertigo67 said:
For me (vodafone.de; mcc=262, mnc=02) the 5GHz hot spot is always fired up on channel 157/5785MHz. Besides the fact that no European wifi device can use this channe/freq, in Germany it's prohibitted to broadcast on this channel, if one hasn't been licenced to do so. In Germany using this freq without being licenced, isn't a minor breach of law, but a crime.
Considering this it should be a high priority task to either fix this, or disable the selection of 5GHz all together. I've tried to debug this, but now I'm stuck and need help.
To see what's hap0ening I've added aome debugging, and tried to force a (European/German) legal freq: channel 44/5220MHz.
https://github.com/nvertigo/android...mmit/950adab4d870ecd83564f3e6c5ba77d9f2f57430
https://github.com/nvertigo/android...mmit/a4829959a3333c0a0d553f7f468f37c49b38a0a0
The first problem is here (obviously the countrycode is set, but not honored):
Code:
01-29 20:31:57.861 2523 3390 E ApConfigUtil: nvertigo: updateApChannelConfig: default band: 0; default channel: 6
01-29 20:31:57.862 2523 3390 E ApConfigUtil: nvertigo: updateApChannelConfig: band: 1; channel: 0
01-29 20:31:57.863 2523 3390 D ApConfigUtil: nvertigo: Forcing channel 44; computed freq: 5745; computed channel: 149
01-29 20:31:57.863 2523 3390 D ApConfigUtil: nvertigo: allowed freqs: [5180, 5200, 5220, 5240, 5745, 5765, 5785, 5805, 5825, 5845]; allowed5GFreqList.length: 10
01-29 20:31:57.863 2523 3390 E ApConfigUtil: nvertigo: config.apChannel: 44
01-29 20:31:57.869 2523 3390 D WificondControl: nvertigo: startHotspot: true
01-29 20:31:57.869 2523 3390 D WificondControl: nvertigo: startHotspot: successfull
01-29 20:31:58.001 6441 6441 I hostapd : ACS: nvertigo: hostapd_drv_do_acs succeeded.
01-29 20:31:58.002 2523 3390 D SoftApManager: nvertigo: Soft AP is started: wlan0channel: 44
01-29 20:31:58.202 6441 6441 I hostapd : wlan0: ACS-COMPLETED freq=5785 channel=157
01-29 20:31:58.435 2026 2026 I wificond: New channel on frequency: 5785 with bandwidth: 80MHz
01-29 20:31:58.495 6441 6441 I hostapd : wlan0: IEEE 802.11 driver had channel switch: freq=5785, ht=1, offset=1, width=3 (80 MHz), cf1=5775, cf2=0
01-29 20:31:58.495 6441 6441 I hostapd : wlan0: IEEE 802.11 driver had channel switch: freq=5785, ht=1, offset=1, width=3 (80 MHz), cf1=5775, cf2=0
01-29 20:31:58.495 6441 6441 I hostapd : wlan0: AP-CSA-FINISHED freq=5785 dfs=0
The allowed freqs are just wrong: it is "5180, 5200, 5220, 5240, 5745, 5765, 5785, 5805, 5825, 5845", while for country code EU or DE only "5180, 5200, 5220, 5240" are allowed for wifi.
I circumvent this the ard way: I force the channel to 44, no matter whats randomly picked from the wrong allowed list.
Now it gets awarkned: no matter what channel is requested by the framework, after hostapd has completed this part:
https://github.com/nvertigo/android...553f7f468f37c49b38a0a0/src/ap/acs.c#L911-L919
the hotspot is started on 157.
Any help is highly appriciated!
I also wonder if this is an op3/t specific issue, or if this is a general issue.
Next question: if frameworks/opt/net/wifi is calculating the channel, why is the Automatic Channel Selection (ACS) passed down to the wlan driver? And (most confusing me): where, when and how is the countrycode passed down to tne driver?mAnd one more: on boot (before even touching the hotspot switch the log shows:
Code:
01-29 20:31:09.628 2026 2026 I wificond: 2.4Ghz frequencies: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472
01-29 20:31:09.628 2026 2026 I wificond: 5Ghz non-DFS frequencies: 5180 5200 5220 5240 5745 5765 5785 5805 5825 5845
01-29 20:31:09.628 2026 2026 I wificond: 5Ghz DFS frequencies: 5260 5280 5300 5320 5500 5520 5540 5560 5580 5600 5620 56
Immidiatly after touching the switch, the log shows:
Code:
01-29 20:31:57.747 2026 2026 I wificond: 2.4Ghz frequencies:
01-29 20:31:57.747 2026 2026 I wificond: 5Ghz non-DFS frequencies:
01-29 20:31:57.747 2026 2026 I wificond: 5Ghz DFS frequencies:
Click to expand...
Click to collapse
Though I'm wrong on the legal impact (EU laws replace old German regulations), the problem stays the same: the TS channel is to high to be seen by my (older) in Germany bought clients.
Workaround/Hack:
The easiest (and dirty) way to force the TS to be starzed on chanmels <100 is to set the country code used for the TS to Israel (IL9, because no channels >=100 are allowed). To do that uncomment line 238 and set it to IL:
Code:
gAPCntryCode=IL
Or use this flashable zip (does exactly whats described above):
ZIP: https://drive.google.com/open?id=1BSldodjxahxWdrYtCvDEzmTYEhNCodvu
MD5: https://drive.google.com/open?id=1frCinyMBsRyJR0p9_3e4SV35Vl0AC0A7
Happy flashing and tethering!
Safetynet api
EDIT: Ive updated the zips. Make sure you use the zips with "v02" in their names! The "v02" versions work with android pie roms as well as with android 10 (system-as-root) roms.
Lately google has started to be more restrictive about build fingerprint and the date of the security patch level. For passing CTS profile match it's now required that ro.build.version.security_patch is the same as in the OxygenOS build the build fingerprint.
Generally the vendor security patch level date is one or more months behind the security patch level date of the (aosp) security patchlevel date of the LineageOS (and therefor NLOS) codd base.
Typically ro.build.version.security_patch is set the the security patch level date of the code base. Sadly this breaks passing CTS profile match, if the aosp/los/nlos security patch level date is different from the vendor security patch level date of the build fingerprint.
To work around this it's mandatory to set ro.build.version.security_patch to the vendor security patch level date. These zips just replace the date string of ro.build.version.security_patch in /system/build.prop. The zips are signed with the (aosp) los test keys.
"OnePlus/OnePlus3/OnePlus3:9/PKQ1.181203.001/1905251415:user/release-keys" and
"OnePlus/OnePlus3/OnePlus3T:9/PKQ1.181203.001/1905250152:user/release-keys" are taken from OOS 9.0.2 which require ro.build.version.security_patch to be 2019-04-01.
Use sec-patch-2019-04-01_v02.zip:
ZIP: https://drive.google.com/open?id=10mE0Wq3s_3bwZHtxBT4tt_q0RiTgOlvK
MD5: https://drive.google.com/open?id=1vsYzc4tYDlQeOhP9LD-TovM6AC1WXvXw
"OnePlus/OnePlus3/OnePlus3:9/PKQ1.181203.001/1907311932:user/release-keys" and
"OnePlus/OnePlus3/OnePlus3T:9/PKQ1.181203.001/1907311932:user/release-keys" are taken from OOS 9.0.5 which require ro.build.version.security_patch to be 2019-08-01. This is what you currently need for nlos-16.0 and lineage-16.0.
Use sec-patch-2019-08-01_v02.zip:
ZIP: https://drive.google.com/open?id=1FW86qprj0KHliNmUOWoic48-p_Frxnkn
MD5: https://drive.google.com/open?id=1OunTG14GvE8eYvDrstyewysfsv6tCudm
"OnePlus/OnePlus3/OnePlus3:9/PKQ1.181203.001/1911042107:user/release-keys" and
"OnePlus/OnePlus3/OnePlus3T:9/PKQ1.181203.001/1911042108:user/release-keys" are taken from OOS 9.0.6 which require ro.build.version.security_patch to be 2019-10-01.
Use sec-patch-2019-10-01_v02.zip:
ZIP: https://drive.google.com/open?id=1P4JKcOp9HNwwk5vyURawUrZ3xslZ4Pm9
MD5: https://drive.google.com/open?id=1TSRNjpB4_ygKRTCd0CEtDKNJua72f232
To return to the rom shipped security patch level date, just dirty flash the rom.
Note:
These zips alone doesn't make your device passing safetynet api. Additionally you need to fullfill at least one of these requirements:
a locked bootloader
Magisk installed
a kernel patched to throw away the tripped verity flag (like the shipped nlos kernel)
Happy flashing!
Magisk with locked bootloader
Magisk versions up to - at least - 20.0 doesn't sign the boot image, if initiated from addon.d (on every dirty flash, aka update).
If you want to use Magisk with a locked bootloader, flash the attached VerifiedBootSigner-v8.01-aosp-key.zip after each Magisk addon.d installation. Keep in mind, that updating the rom (aka dirty flashing) reinstalls Magisk (from addon.d), which requites reflashing VerifiedBootSigner-v8.01-aosp-key.zip!
VerifiedBootSigner-v8.01-aosp-key.zip signs the bootimage with the required aosp verity key.
Happy flashing!
The "Error 7" error
If a flashable zip is flashed in recovery, the rcobery extracts the zip and executes
Code:
META-INF/com/google/android/update-binary
If "update-binary" doesn't return successfully twrp based recoveries retrun a red line on the twrp console
Code:
Updater process ended with error: 7, Error installing zip file
This just means that "update-binary" hasn't completed successfully - nothing more, nothing less. It doesn't say anything on the reason, why it has failed.
There can be multiple reasons "update-binary" fails. Some of the more common (the list is neither complete, nor does it show any priorities)
Firmware too old
Device not matching
broken zip file
insufficient free blocks in the fs
wrong fs type on system, data and/or cache
typo in the updater script (extensivly tested by myself)
incompatible rom (i.e. zip is fpr system-as-root mount layout, but installed rom has no system-as-root mount layout - or vice versa)
[...]
As a logical consequence, there can't be a single or universal solution to "Error 7".
Fortunately twrp allows "update-binary" to write to te twrp console. This means the output (including error messages) of "update-binary" is written to the twrp console prior to the red "Error 7" line. Even more details on the reason why "update-binary" fails is the recobery log from twrp (Main Twrp page->Advanced->Copy log to SD).
This also means, that every answer, guide, yt-video etc. claimimg it can fix "Error 7", without asking for the last 2 to 4 lines before the red "Error 7" line may be right by accident, but not by knowledge.
The worst of all advices to fix "Error 7" is to edit "updater-script":
On all source build roms I know of "update-binary" is a edify interpreter reading "updater-script" as input(*). The updater script for nlos looks like this:
Code:
assert(getprop("ro.product.device") == "OnePlus3" || getprop("ro.build.product") == "OnePlus3" ||
getprop("ro.product.device") == "oneplus3" || getprop("ro.build.product") == "oneplus3" ||
getprop("ro.product.device") == "OnePlus3T" || getprop("ro.build.product") == "OnePlus3T" ||
getprop("ro.product.device") == "oneplus3t" || getprop("ro.build.product") == "oneplus3t" || abort("E3004: This package is for device: OnePlus3,oneplus3,OnePlus3T,oneplus3t; this device is " + getprop("ro.product.device") + "."););
assert(op3.verify_modem("2019-11-04 21:20:14") == "1" || abort("Error: This package requires firmware version OxygenOS 9.0.6 or newer. Please upgrade firmware and retry!"););
ui_print("Target: OnePlus/OnePlus3/OnePlus3:9/PKQ1.181203.001/1907311932:user/release-keys");
ifelse(is_mounted("/system"), unmount("/system"));
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644);
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "backup", "/system");
unmount("/system");
show_progress(0.750000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat.br", "system.patch.dat") ||
abort("E1001: Failed to update system image.");
show_progress(0.020000, 10);
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system", "");
run_program("/tmp/install/bin/backuptool.sh", "restore", "/system");
unmount("/system");
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.200000, 10);
set_progress(1.000000);
If the cause for "Error 7" is a device mismatch (line 1 - 5), this may be caused because you don't flash it on an op3/t, or because the recovery you are using doesn't provide the properties "ro.product.device" or "ro.build.product". Though a flash would work when deleting these 5 lines from "updater script", the first case results in a bricked device, the second in a rom flash with an outdated or otherwise incompatible recovery.
If you flash nlos on top of a firmware not matching the blobs nlos uses, this will lead to unwanted side effects like not correctly working hardware parts like sensors including fingerprint scanner and camera. To avoid this "updater-script" has line 6. Deleting line 6 will allow you to flash nlos on an outdated firmware...
Obviously the better way is using a zip only for devices, recoveries and/or firmwares, they are made for.
Conclusion:
In order to solve "Error 7" it's mandatory to solve the "real" error. For this task it's inevitable to know the last lines before the red "Error 7" line on the twrp console and/or the revoery log (Main Twrp page->Advanced->Copy log to SD). The revovery log is always prefered, since it is more detailed then just the console output.
(*)in opposite to i.e. opengapps zips or magisk zips, where "uodate-binary" is a shell script. Both methods - edify interpreter or shell scripts - have their own advantages and drawbacks, generally spoken shell scripts are more flexible. Discussing the technical details is not part of this posting.
Original Post
If you are addicted to Alipay or Wechat pay, I'm highly recommend you switch to other ROMs (like OOS/LOS) which have ifaa and soter components.
Without ifaa and soter components, but your fingerprint sensor is working. There is a 3rd-party method using magisk module implement fingerprint payment for Alipay and Wechat pay. (Use at your own risk!)
Test environment:
ROM: nlos-16.0-20200312 build
Firmware: oxygenos-9.0.6-firmware-3T
Bootloader: Locked
Alipay: 10.1.88.5821 (Google Play)
Magisk: v20.3
Requirements:
Magisk
Rooted Android 6.0+ devices
Installation (for Alipay):
Download Riru-core (v19.7) and Fingerprint-pay-magisk-alipay (v3.9.9) modules. (Links below)
https://github.com/RikkaApps/Riru/releases
https://github.com/eritpchy/Fingerprint-pay-magisk-alipay/releases
Install modules in magisk manager, then enable them and reboot.
Usage:
Open Alipay app, go to the settings, enable it in fingerprint and type your payment password (see attachments).
Pay for a drink to test if it works.
References:
https://github.com/RikkaApps/Riru
https://github.com/eritpchy/Fingerprint-pay-magisk-alipay
https://github.com/eritpchy/Fingerprint-pay-magisk-wechat
PS:
1. This module stores your payment password at your local device (encrypted).
2. It may not work after Alipay or Wechat update.
3. I didn't test Wechat pay module, you can have a try (see references).
Thanks to those module developers for their work.
General thoughts on gapp packages
Note: Consider "Bit Gapps" as place holder for any other gapps vendor then opengapps.
dark'em said:
There is nothing wrong with Bit Gapps, but Open Gapps package is updated daily so it's better to go with it.
Click to expand...
Click to collapse
From my expirience the nightly (or daily for that matter) automatic builds are the biggest drawback of open gapps:
Since these builds arn't tested but just automatic build. This results in quite some broken packages. I've made it my personal habbit to stick with a build, after it has proofed to work (once installed gservices as well as gapps are updated from play store - this means: if you use e.g. an one year old (proofed to work) gapps build used on a clean flash is updated to latest gservices/gapps shortly after first boot.
The lack of knowing about the playstore updates makes users think it's a good idea to "update" the flashable gapps zip, which may lead to issues: some of the gapps and gservices settings are stored in a sqlite db. If the playstore updates contain a sqlite update, which is not present in the new nightly gapps zip and you wipe system but not data to flash that zip (and call it an "update), the db engine is downgraded below the version of the db on data you will get strange side effects and only a clean flash will recover (some of the more common issues in that situation are "lost" notifications, issues with (also third party) apps using cloud messaging gservice and/or switched or absent sounds).
This doesn't mean that bitgapps are better then opengapps - but nightly/daily updated gapps packahes are more prune to user error then gapps builds updated every few months and receive thoroughly testing before shipping.
dark'em said:
Try nano or pico, the rest you can install after from playstore.
Click to expand...
Click to collapse
I completely agree here. If one looks at e.g. https://github.com/opengapps/opengapps/wiki/Stock-Package and search for "replaces", you'll see what is replaced in the system partition. The more obvious drawbacks are, that if you install stock opengapps e.g. the rom shipped webview is gone (in opposite to installing chrome webview from playstore, which let you choose at runtime which webview should be used - this also goes for launcher, telephone app, email, contacts, etc).
Even worse (and much less obvious) is the point, that if you install an app with own libs (*.so) and c-bindings (*.jni) from playstore they are installed within the app and are used only in the app's sessions. If you use the same app from the gapps flashable zip, those libs and bindings are installed outside the app dir in the system partition replacing their rom shipped counterparts: all services and apps - even the rom shipped services and apps - need to use the ones from the gapps package. The rom is massively changed in a way not controlable (and not supportable) by the rom dev.
A last word of warning: never ever downgrade a gapps package (e.g. from stock to nano) and install the missing apps from playstore. The gapps db entries for a system gapp (flashable zip) are different from user gapp (playstore install). Upgrading from e.g. nano to stock (not recommended; see above!!!) will work, iff all stock contained apps are uninstalled before the upgrade.
Again this doesn't mean bit apps is supiror to opengapps or vice versa. It just means the nightly/daily updates arn't an advantage by it's own. You are always safe as long as you know what you are doing; this includes to check exactly what each package installs and replaces. Obviously it doesn't make any sense to complain about e.g. laggy webview in the rom's thtead when using opengapps stock package.
nvertigo67 said:
stuff
Click to expand...
Click to collapse
1st. Thx downloading now. Is this ROM optimized for 3/3T or 3T only ?
Some screenshots would be greatly appreciated.
'
Thx Dev
Ayy! That was quick. Time to flashhhh!
As long as the dark theme works, no reason to switch back to Oreo. Bye bye bad recents menu xD
Edit: since you tagged me for debugging OP lol..
Might want to change the cmxlog link to LOS 16.
And first time flashing instructions says NLOS 15 instead of 16.
If 16 is already on feature parity with 15, then I'll be pretty amazed lol.
So how should we update from nlos 15.1 to 16? Dirty flash gonna work?
Edit, dirty flashed nlos 16 over 15.1 and pico gapps then magisk.
Works
Yay! Finally. Gonna flash soon
There's a few minor issues as expected from a first alpha. FC's on apps like the inbuilt sounds app and the Android setup app for the first time after a gapps flash. Everything works fine after that one FC on the setup app, although the sounds app still doesn't work. Lots of duplicate sounds in the notification sounds section. Some oddities like using the notification sound as the charging sound by default, although I guess that isn't a bug. All major LOS features that I used on Oreo seem to be working fine on Pie. There's an issues with the slider settings logic when you use priority only; it never exits that muted mode when you switch back to none. As for NLOS features, substratum doesn't seem to be working for me, is the OMS service mode already in? I denied root and got this screen.
Complete clean flash without gapps to test, and then another clean flash with opengapps nano and magisk to set everything up. Only 4 apps from Oreo restored via titanium backup to Pie. They all seem to work so hopefully doing that isn't a problem? (All 3 chrome builds had open tabs so I didn't want to install them from scratch or I'd lose the tabs. And Pulse, my SMS app has my chat history so I restored that too. Others I clean installed.)
Pie has so many small cool UI additions. From text editing to call UI to volume slider UI. Oh and the buttery smooth animations.... I'm not sure which features are part of AOSP Pie and which ones are LOS features at this point haha.
Performance, battery, stability, all seem great till now.
Also looking for a new gallery app. Any recommendations?
Edit: audio ducking behavior on notifications is also different. Notifications completely stop any other audio. I can't figure out how to change that behavior.
IDK if it's a pie or LOS feature but the settings app has a black theme for the system, so I'm happy. Should I use root for substratum if OMS isn't in yet, or is OMS in and that's a bug?
Thanks for the excellent ROM! I just installed it, and it seems to be working fairly well for me, but I did run into a few issues:
- the OOBE crashed several times, although it eventually managed to get to the end
- the Swift Dark installed failed to install any themes at all
- I get a notification from org.codeauora.ims saying that "SIM 1 is HD capable", but all options to turn it off are disabled
- I had issues getting FDE working, and documented the process I used to get it fixed in the android stackexchange, at a question titled "Device encryption fails, gives no error and just restarts" (won't let me post links). This issue was something you already briefly covered in the first post.
Otherwise, I'm super happy with 16.0, it feels great, and I haven't run into any bugs that make it unusable.
kash_si said:
1st. Thx downloading now. Is this ROM optimized for 3/3T or 3T only ?
Some screenshots would be greatly appreciated.
'
Thx Dev
Click to expand...
Click to collapse
Works for both devices. Blobs (especially cam blobs and carrier mbns) are taken from 3t OOS image.
Looks like los. My imtend is not to have some graphical chamges, but to enpower the users to make this "their" rom.
Themes, microg or gapps... The "out of the box"-look is the same as los.
Sadly I can't get substratum service mode working, currently, so you need root, but with the additional exposures and Magisk pie ready themes work like charme.
( @knpk13: you need root currently for substratum)
64ashg said:
So how should we update from nlos 15.1 to 16? Dirty flash gonna work?
Edit, dirty flashed nlos 16 over 15.1 and pico gapps then magisk.
Works
Click to expand...
Click to collapse
The standard rules of thumb apply:
If you dirty flash with no issues, you are fine. If issues show up: clean flash!
Whenever you wonder if it's time for a clean flash: the answer is yes.
knpk13 said:
There's a few minor issues as expected from a first alpha. FC's on apps like the inbuilt sounds app and the Android setup app for the first time after a gapps flash.
Click to expand...
Click to collapse
I had two fcs from setupwizard during first time setup - I just redid my inputs and it went through: no reflashing, no reboot.
org.lineage.eleven (shows as "Music" in app drawer) is working (flac fix is missing - will be in the next update, I've missed that one) as well as org.lineage.audiofx. Or do you mean an other sound app?
knpk13 said:
Lots of duplicate sounds in the notification sounds section.
Click to expand...
Click to collapse
Not for me. Perhaps you have /sdcard/Alarms and/or /sdcard/Notifications filled with same named audio files?
knpk13 said:
There's an issues with the slider settings logic when you use priority only; it never exits that muted mode when you switch back to none.
Click to expand...
Click to collapse
I have that only for Alarms. If I set bottom to none, and Middle AND Top both to priority it works like intended. I'm planing to keep priority but rename it to dnd and use Alarm as vibrate mode. The slider logic definetly needs some work.
knpk13 said:
As for NLOS features, substratum doesn't seem to be working for me, is the OMS service mode already in? I denied root and got this screen.
Click to expand...
Click to collapse
See the thread's subject and the OP:
nvertigo67 said:
Hopefully soon: NLOS features OMS Service Mode - the successor of ThemeInterfacer. This means you don't need root and/or andromeda to have full Substratum Theming! It's faster then andromeda and does not rely on a tethered pc-connection. It has more exposueres (items exposed to the themers) then the rooted solution. If substratum should ask for root previlegs, deny it. All exposures are allready implemented.
Click to expand...
Click to collapse
knpk13 said:
Complete clean flash without gapps to test, and then another clean flash with opengapps nano and magisk to set everything up. Only 4 apps from Oreo restored via titanium backup to Pie. They all seem to work so hopefully doing that isn't a problem? (All 3 chrome builds had open tabs so I didn't want to install them from scratch or I'd lose the tabs. And Pulse, my SMS app has my chat history so I restored that too. Others I clean installed.)
Click to expand...
Click to collapse
If you have no issue, you have no issue - if you have issues, you have issues... Time will show, I guess...
knpk13 said:
Edit: audio ducking behavior on notifications is also different. Notifications completely stop any other audio. I can't figure out how to change that behavior.
Click to expand...
Click to collapse
No clue - not even sure, if it's intended or not.
aOa0LU said:
Thanks for the excellent ROM! I just installed it, and it seems to be working fairly well for me, but I did run into a few issues:
- the OOBE crashed several times, although it eventually managed to get to the end
- the Swift Dark installed failed to install any themes at all
- I get a notification from org.codeauora.ims saying that "SIM 1 is HD capable", but all options to turn it off are disabled
- I had issues getting FDE working, and documented the process I used to get it fixed in the android stackexchange, at a question titled "Device encryption fails, gives no error and just restarts" (won't let me post links). This issue was something you already briefly covered in the first post.
Otherwise, I'm super happy with 16.0, it feels great, and I haven't run into any bugs that make it unusable.
Click to expand...
Click to collapse
I have no clue what OOBE is.
How do you install swift dark? It's my main testing them and works great, installed from sunstratum follwing swift dark's directions to the point (secomd reboot not necessary).
For the annoying hd notification we need to wait for an upstream fix. I don't expirience that, so not much I can do about.
FDE is working out of the box. Since data is encrypted on my device, I wouldn't be able to boot... ???
For the link: just use host.domain.top/some/where instead of https://host.domain.top/some/where .
nvertigo67 said:
Sadly I can't get substratum service mode working, currently, so you need root, but with the additional exposures and Magisk pie ready themes work like charme.
( @knpk13: you need root currently for substratum)
I had two fcs from setupwizard during first time setup - I just redid my inputs and it went through: no reflashing, no reboot.
org.lineage.eleven (shows as "Music" in app drawer) is working (flac fix is missing - will be in the next update, I've missed that one) as well as org.lineage.audiofx. Or do you mean an other sound app?
Not for me. Perhaps you have /sdcard/Alarms and/or /sdcard/Notifications filled with same named audio files?
Click to expand...
Click to collapse
Additional exposures? Ooh it installs a magisk module. Guess I need to reboot every time to apply themes. Unfortunate. Well at least it's all black now haha. Funny thing is in P, I find the spacing of notifications to be quite large. The P-ify module on O was more compact and nice, better than original P lol. Maybe there's way to change it, or I'll just get used to it. Everything else seems great.
This sounds app in the screenshot. I tried to change my ringtone and it asked me to pick between media storage and sounds. Media storage works, sounds crashes.
I don't have any audio files in the alarms or notifications folders. Only the inbuilt LOS sounds. Here's one example of a duplicate, Platinum.
So I shouldn't be worried about the setup wizard FC's? I had only one FC.
yes !! hope it gets stable as 15.1 or even better.. any screens ??
Last question before update from nlos 15. Does call recording feature works out of the box?
I have the network speed indicator at a slight offset. Is anybody else having this problem?
The first screenshot is of the default settings, and the next one is of me having the display size small and font large.
I dirty flashed over nlos 15.1 so anyone with the same experience. Or clean flashers, having this issue. I remember someone having this problem in the los16 beta thread.
Thanks in advance
64ashg said:
I have the network speed indicator at a slight offset. Is anybody else having this problem?
Click to expand...
Click to collapse
All the reports in the LOS 16 thread say it doesn't work at all. The feature seems to work for me on NLOS 16 (I don't use it, just downloaded an app to check if the monitor showed any info) and this is the position I get on a clean flash.
Kirisakura-Kernel for the Pixel 7/Pro
Hello everyone,
To keep it short: Here is Kirisakura - Kernel for the Google Pixel 7 Pro aka Cheetah and the Pixel 7 aka Panther, together Pantah.
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.
By merging linux-stable regularly we get most security updates months ahead of the stock kernel and also before they even end up in the android security bulletin.
The kernel includes a lot of improvements and contributions from other developers as well. Without those contributtion this kernel would not exist as it is.
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 Stable
- 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
- Dynamic Energy Models depending on device state
- make TEO-Cpuidle util-aware (improves latency, performance and decreases energy consumption for certain workloads, more information here)
- improve CPU throttling behaviour
- improvements to uclamp, prevent capacity inversion (reduce missed frames)
- greatly speed up camera launch time!
- 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
- 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
- restrict maximum CPU-Freqs during screen off/ idle to 1.4GHZ 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 backports from linux-main
- mm updates from linux-main
- locking updates frm linux-main
- improve memory performance by tweaking google´s eh zram implementation
- fix sysfs endpoint for googles eh zram
- 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
- important patches from kernel/common for 5.10 (here are more details)
- increase priority of GPU work
- several updates from QPR beta, and a few from Pixel 6 that googles missed to include in the pixel 7 kernel
- improve thermals
- change compaction proactiveness based on device state for improveed memory management
- 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
CleanSlate Features
- 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)
- Check the CleanSlate thread for more information about those features
- The CleanSlate thread also contains the apps that allows you to control those features!
- If you consider those features useful, maybe consider purchasing the apps in the PlayStore or a small donation to @tbalden, he deserves it! Don´t forget to switch to beta channel for those apps, as this is needed for device running A13!
Various Optimizations:
- update several drivers to use power efficient workingqueues (for example wlan driver)
- f2fs: reduce timeout for uncongestion
- f2fs: Demote GC thread to idle scheduler class
- f2fs: set ioprio of GC kthread to idle
- tcp: enable advanced tcp, give user more options for tcp alorithm
- mm: vmstat: use power efficient workingqueues
Wakelock Blocker:
- advanced wakelock blocker with the ability to block kernel wakelocks (dangerous, use with caution, please read this for further info). You should only block kernel wakelocks in case you face uncontrollable scenarios, like company wifi causing a wakelock to be active 100% of the time! Blocking kernel wakelocks to "improve" battery life almost always backfires and causes issues!
Powerhint Module:
- restrict little cluster to 1,4ghz mid cluster to 1,4ghz and big cluster to 1,4ghz during screen off, to reduce battery usage for example during music playback
- only use little cores during screen off/device suspend
- account for scheduler and other changes done to the kernel
- boost memory interface controller during interaction (decreased missed frames, improved soc efficiency according to google docs)
- 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)
- switch between default and custom idle energy model on device is being interacted with / device idle.
- reduce missed frames during scrolling/device interaction by adjusting uclamp boosts
- dynamically adjust target load for memory interface during interaction.
- remove dynamic GPU policy change as it´s causing instability and is unneeded due to GVFS period
- implement handling during video recording of CPU like Google did on QPR A13
- more small improvements
DOWNLOAD:
Downloads are attached to the release posts linked below in the changelog section.
Please note that androidfilehost is currently not working properly.
Link to AFH:
Spoiler
Deprecated afh download, still here for old releases:
https://www.androidfilehost.com/?w=files&flid=336658
Changelog:
Android 13.0.0 Stable (not QPR beta!)
1.0.0 Initial Release | Mirror for Download in case AFH is not working
1.1.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87743627
1.2.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87822161
1.2.1 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87878321
1.2.2 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87944505
1.2.3 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87960183
1.2.4 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88108123
1.3.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88286027
Raviantah_1.0.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88316285
Raviantah_1.0.1 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88323527
Raviantah_1.0.2 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88399915
Raviantah_1.0.4 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88497279
Raviantah_1.1.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-88645103
Requirements
- vbmeta flags for verity/verification disabled (this requires a wipe if you´re coming from stock with those flags enabled), check the FAQ for information on how to do this
- 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, use stable in case you want to be absolutely safe)
- IMPORTANT: Unrelated to the kernel, but update both slots of your phone to A13 before you flash anything to your device!
- it´s handy to have a backup and a way to return back to stock (check the faq for that)
- make sure to download the correct kernel version for your firmware. (you can´t flash a kernel made for stable firmware on a QPR beta or dev preview and expect there to be no isses, the release posts mention which firmware the respective kernel releases are compiled for)
- this kernel is tested on stock google firmware. If you want to use it on custom roms you´re kind of on your own as I can´t account and give support for any changes custom roms apply that could render the kernel incompatible. (e.g. if you´re custom rom is still on the previous months update, there may be issues flashing an updated kernel for the next month on top or custom roms requiring specific kernel changes to work correctly )
- it´s always best to start on stock images and don´t have another custom kernel flashed when flashing this kernel for the first time. consecutive flashes can just be installed on top, if not I´ll mention it in the release post
- read the first and second post, there's a lot of valuable information
How to flash the Kernel:
1a. Make sure you tick all the requirements above
1b. Make sure to flash the release made for your firmware! Usually the release post contains information on that
1. Download the kernel.zip (unified for both devices) and the correct powerhint module depending on your device (Pixel 7 = panther || Pixel 7 Pro = cheetah)
2. Flash the powerhint module via magisk manager as you would any other magisk module! Make sure to flash the latest one. It will be mentioned in the release post if there´s an update.
3. Flash the kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved.
4. Reboot and profit.
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 pixels, avb, hashtree patcher, the counsel and the kernel flasher!
@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 check the state of avb flags for verity/verification on my phone?
Answer: Check @capntrips post here and get the magisk module for this from here. After flashing the magisk module reboot your phone. You can now use the commands from @capntrips post to check.
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.
I also posted what I do each month to update my phone here.
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.
Just remember to disable verity/verification vbmeta flags each time you update your phone as described in the next question below.
If you boot once, without them disabled a wipe is required to disable them again.
Question: How do I disable the vbmeta flags for verity/verification?
Answer: The easiest solution is to use the android web flash tool and tick the correct checkbox.
Alternatively extract the vbmeta.img from the matching factory image and flash it in fastboot via:
Code:
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
Please note that disabling those flags will require a full wipe for the device to boot if coming from flags enabled state!
And a further note: You need to repeat this command every time you flash a full firmware zip ( a factory image or a full OTA.zip) to update the firmware of your phone as those contain a vbmeta image. Otherwise the flags will be reset to default enabled and it will require another wipe to disable them again! As with the firmware.zips, you need to tick the checkbox in the webflasher every month you update your phone or flash a firmware there!
Question: How do I return back to stock?
Answer: Extract boot.img, dtbo.img, vendor_kernel_boot.img and vendor_dlkm.img from the matching factory image provided on googles download page.
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.
Kernel flasher has the capability to backup those partitions as well, but if your phone doesn´t boot, because you flashed a kernel for stable firmware on dev preview that backup will not help you.
Question: Does this kernel include a mod similar to the well known KCAL modification?
Answer: No it does not, as KCAL is tapping into a QCOM specific driver and that´s not included in the tensor source as it´s based on exynos.
There´s a very powerful app called CF Lumen from @Chainfire, that serves the same purpose and even includes far more options that were available from kernelspace. Link to the thread here.
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, xposed/lsposed etc, 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.
Short answer, flash magisk patched init_boot.img via fastboot, afterwards flash stock init_boot.img. That should clear this situation.
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. Same goes for the Pixel 7. 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.
This kernel needs to be compiled in the aosp kernel build environment just like the stock kernel. All necessary and modified repos are available on my github. Otherwise please refer to the aosp build environment and the instructions there.
Fastboot commands:
This serves just as a reference to restore the images via fastboot. This is not to install the kernel.
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 and vendor_kernel_boot.img
Commands:
Code:
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash vendor_kernel_boot vendor_kernel_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!
Prebuilts for custom roms.
last one I promise
So glad to see you here
Woowoo, let's GOOOO
Kiri is here! Thanks for this awesome kernel!
So unfortunately we´re at the moment out of ideas and options for the vbmeta verity/verification disable requirement. @tbalden and me tried a few things and failed with our final idea this morning, which worked on a similar device.
Maybe somebody finds a way so we can actually flash custom images with the avb/vbmeta flags enabled, but at the moment not. I didn´t want to delay the release any further so here we go.
I understand this is a pain for many, but unfortunately that´s how it is now. It was a pain for me too, because on the final test, we really hoped it would work, but we we´re trapped in the wipe ourselves.
Anyway, have fun everyone with the release. It basically includes everything from the Pixel 6 kernel, as they branches are similar.
Well this is awesome. Haven't modified my phones since Pixel 4 but this is very enticing
This made me smile. Loved your kernel on the P6P. So glad to see it available for my P7P.
QQ: Is High Brightness Mode (HBM) supported in this kernel?
nice to see you on here
I do hope its a firmware issue and next month update fixes issue and then workaround you guys been testing for flashing without disabling verity and verification works
@Freak07
Thank You very much for this kernel!
May I ask if this one from CleanSlate is included? How is this works?
VoLTE call properties patched in - no root/magisk needed for non supported carriers/countries and VoLTE calls.
Duuuuude! This kernel sounds amazing. And the Powerhint module? WHAT?!
Probably moving to the 7 Pro this weekend so this is very welcome!
Thanks
Edit: I'm a little confused: should we flash the zip as usual through EXKM/Kernel flasher or use the fastboot commands from post #4??
Because the OP also mentions the usual way of flashing...
Very excited for the kernel, thanks for your hard work!
Ghisy said:
Duuuuude! This kernel sounds amazing. And the Powerhint module? WHAT?!
Probably moving to the 7 Pro this weekend so this is very welcome!
Thanks
Edit: I'm a little confused: should we flash the zip as usual through EXKM/Kernel flasher or use the fastboot commands from post #4??
Because the OP also mentions the usual way of flashing...
Click to expand...
Click to collapse
I think that was just a copy and paste from the older P6 thread (also now deprecated for that device, from what I understand). Just use EXKM or Kernel Flasher and you'll be good to go!
Edit: and the companion zip in Magisk Manager. Whoops. In other words, you don't need to manually flash each image to install the kernel.
i5lee8bit said:
I think that was just a copy and paste from the older P6 thread (also now deprecated for that device, from what I understand). Just use EXKM or Kernel Flasher and you'll be good to go!
Click to expand...
Click to collapse
Nope,
The powerhint module was never actually depreciated, on P6 he was able to have it included in the kernel zip and it auto-installed into magisk at the same time.
That isn't working here at the moment so you have to manually flash it yourself again
i5lee8bit said:
I think that was just a copy and paste from the older P6 thread (also now deprecated for that device, from what I understand). Just use EXKM or Kernel Flasher and you'll be good to go!
Click to expand...
Click to collapse
Sorry, maybe I wasn't being clear: should I use quote #1 or #2 down there?
Freak07 said:
How to flash the Kernel:
1a. Make sure you tick all the requirements above
1. Download the kernel.zip (unified for both devices) and the correct powerhint module depending on your device (Pixel 7 = panther || Pixel 7 Pro = cheetah)
2. Flash the powerhint module via magisk manager as you would any other magisk module
3. Flash the kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved.
4. Reboot and profit.
Click to expand...
Click to collapse
Freak07 said:
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 and vendor_kernel_boot.img
Commands:
Code:
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
fastboot flash vendor_kernel_boot vendor_kernel_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![/SPOILER]
Click to expand...
Click to collapse
Ghisy said:
Sorry, maybe I wasn't being clear: should I use quote #1 or #2 down there?
Click to expand...
Click to collapse
The fastboot commands are for if or when you want to return to stock.