Hi!
I planning to create packages from Android SDK for some popular Linux distributions. However, most distro have a policy against repackaging third party binary packages (such as you can download from developer.android.com).
I would like use snapshot of Android source tree, because
- Android SDK not changes too fast
- repo utility fetches a very, really very lot of unneeded information (a whole history of all repository in android tree)
- It can increase a package build time a _lot_. As some autobuild solutions have a hard timeout for package building, I would like avoid using repo anyway.
So, the question is clear: is there somewhere a snapshot from the source tree?
hron84 said:
Hi!
I planning to create packages from Android SDK for some popular Linux distributions. However, most distro have a policy against repackaging third party binary packages (such as you can download from developer.android.com).
I would like use snapshot of Android source tree, because
- Android SDK not changes too fast
- repo utility fetches a very, really very lot of unneeded information (a whole history of all repository in android tree)
- It can increase a package build time a _lot_. As some autobuild solutions have a hard timeout for package building, I would like avoid using repo anyway.
So, the question is clear: is there somewhere a snapshot from the source tree?
Click to expand...
Click to collapse
I would like to know how to do this also.
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
TWRP CICD Project
This is my personal effort given to you, the community, which spends a lot of hours to craft a fully-functional and perfectly tuned ROM for our beloved Smartphones!
What is it?
This project aims to provide a Build system for Android Developers which will be able to build a TWRP recovery image for a different set of Codenames given, automatically for you, ( by default ) every night. Not only built stock sources that are already available on TWRP Github account, but feel free to build even your custom code thanks to the support of local_manifests/*.xml fully supported by this Docker.
Where can I find it
CICD
- Github: https://github.com/julianxhokaxhiu/docker-twrp-cicd
- Docker Hub: https://hub.docker.com/r/julianxhokaxhiu/docker-twrp-cicd
Why?
At the current status I find very time consuming the task to always setup the environment the right way to build a sporadic recovery for any kind of device, depending on the tree.
Therefore this projects aims on providing an easy-to-use build system which may help you on providing a Ready-To-Flash IMG at the end of each Build round. The same you would download from twrp.me website.
How does it work?
This is a pre-packaged Docker system based on Debian, with all the dependencies in place to correctly build ( even in an optimized way ) any TWRP codename image. A cronjob will take care to start the build script on the configured time ( by default 10:00 UTC ~= 02:00 PDT ), which then will take care to build every codename given with an environment variable to the Docker.
All you need from now on is just the Docker Engine installed on your favourite Linux distribution.
I want to use it right now!
I am pretty sure you want! The Docker has now been tested for a nearly a Month and I'm successfully installing my own builds for a couple of weeks on different devices ( really a great satisfaction! ).
If you want to run it as well, I suggest you to take a look at this Bash script that will run for you the Docker. Since the script has been studied to work on top of the "VPS Powered By Docker" project, I suggest you to take a look at it. Although nothing is preventing you to use it in your favourite way.
Requirements
See the detailed list on the project README.
What about License
All my projects are always developed with MIT license, which means feel free to do what you want with it. I don't really care if you do business with it, it was a great challenge for me reaching this autonomous entity to run, therefore I don't mind of possible outcomes of it. Although Issues are always welcome for improvements, if any found, of suggestion for a possible feature enhancements.
Enjoy!
XDA:DevDB Information
TWRP CICD, Tool/Utility for all devices (see above for details)
Contributors
JulianXhokaxhiu
Source Code: https://github.com/julianxhokaxhiu/docker-twrp-cicd
Version Information
Status: Testing
Created 2018-01-01
Last Updated 2018-01-01
TWRP CICD Project
This is my personal effort given to you, the community, which spends a lot of hours to craft a fully-functional and perfectly tuned ROM for our beloved Smartphones!
What is it?
This project aims to provide a Build system for Android Developers which will be able to build a TWRP recovery image for a different set of Codenames given, automatically for you, ( by default ) every night. Not only built stock sources that are already available on TWRP Github account, but feel free to build even your custom code thanks to the support of local_manifests/*.xml fully supported by this Docker.
Where can I find it
CICD
- Github: https://github.com/julianxhokaxhiu/docker-twrp-cicd
- Docker Hub: https://hub.docker.com/r/julianxhokaxhiu/docker-twrp-cicd
Why?
At the current status I find very time consuming the task to always setup the environment the right way to build a sporadic recovery for any kind of device, depending on the tree.
Therefore this projects aims on providing an easy-to-use build system which may help you on providing a Ready-To-Flash IMG at the end of each Build round. The same you would download from twrp.me website.
How does it work?
This is a pre-packaged Docker system based on Debian, with all the dependencies in place to correctly build ( even in an optimized way ) any TWRP codename image. A cronjob will take care to start the build script on the configured time ( by default 10:00 UTC ~= 02:00 PDT ), which then will take care to build every codename given with an environment variable to the Docker.
All you need from now on is just the Docker Engine installed on your favourite Linux distribution.
I want to use it right now!
I am pretty sure you want! The Docker has now been tested for a nearly a Month and I'm successfully installing my own builds for a couple of weeks on different devices ( really a great satisfaction! ).
If you want to run it as well, I suggest you to take a look at this Bash script that will run for you the Docker. Since the script has been studied to work on top of the "VPS Powered By Docker" project, I suggest you to take a look at it. Although nothing is preventing you to use it in your favourite way.
Requirements
See the detailed list on the project README.
What about License
All my projects are always developed with MIT license, which means feel free to do what you want with it. I don't really care if you do business with it, it was a great challenge for me reaching this autonomous entity to run, therefore I don't mind of possible outcomes of it. Although Issues are always welcome for improvements, if any found, of suggestion for a possible feature enhancements.
Enjoy!
XDA:DevDB Information
TWRP CICD, Tool/Utility for all devices (see above for details)
Contributors
JulianXhokaxhiu
Source Code: https://github.com/julianxhokaxhiu/docker-twrp-cicd
Version Information
Status: Testing
Created 2018-01-01
Last Updated 2018-01-01
Kirisakura-Kernel for the One Plus 7 Pro
Hello everyone,
Kirisakura - Kernel is designed to bring a handful of beneficial features to the device, while ensuring excellent performance and smoothness to get you safely through the day!
This project aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security and performance, while keeping stability as the foucs during testing! This includes Linux-Stable, CAF-Upstream and kernel/common.
Kernel Control Flow Integrity (Kernel-CFI), which is achieved by linking the kernel with LLD and Link Time Optimization (LTO), more precisely ThinLTO, are quite unique security features.
The only kernels made by OEMs offering this security feature by default are the ones for the Pixel 3, 4 and 5 devices.
The recently released Kirisakura-Kernel for the OnePlus 8 Pro was featured on the XDA-Portal due to the inclusion of CFI. The featured article explains CFI in great details, is easy to understand and definitely worth to read.
If possible the latest Kirisakura-Kernel releases for various devices aim to include CFI in enforcing mode so users can benefit from this security features.
Another security feature is Shadow Call Stack (SCS). Similar to CFI, only the Pixel 3, 4 and 5 kernels use this security feature.
SCS is another security patchset that is aimed at preventing attacks via return oriented programming (ROP).
ROP is a technique where the attacker gains control of the kernel stack to overwrite function return addresses and redirect execution to carefully selected parts of existing kernel code.
If you´re interested here are a few good links:
Google Security Blog explaining SCS.
LLVM doc about SCS
Android DOCs documenting SCS
If reading about upstream in the paragraph above 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.
Quick explanation of CAF-Upstream. CAF is short for Codeaurora-Forums. This is the place where development from Qualcomm for their SoCs happens. This includes the Snapdragon 855/+ that´s built into the different SKUs of the OP7/T/Pro.
The kernel-bases available on the Codeaurora-Forums, are basically the foundations OEMs use, to build their own kernel additions on top for devices featuring Qualcomm SoCs.
The Qualcomm developers push regular updates to the bases of the different SoCs, a bit similar to how Linux-Upstream works. Most OEMs usually stop updating the initial base after the phone is released, and only cherry-pick certain commits to be in line with the android security bulletin.
This kernel focuses amongst the other features to merge CAF-Updates in a regular manner, to provide updates, improvements and enhancements for SoC specific drivers and subsystems! This might take a while, because a lot of device specific testing is done on my end to ensure stability.
The EAS implementation from 4.19 CAF (sd865/+) was ported to this kernel. There are several interesting mechanisms qcom worked on. The basic layout of the soc architecture ( 4xLittle- , 3xBig- and 1x Prime-Core(s)) has not changed from SD855 to SD865. That means instead of revolution there was a very nice evolution the scheduler underwent.
The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.
Many of the improvements originate from @arter97´s, @kdrag0n´s, @RenderBroken´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!
Main Features:
- Based on latest kernel sources from OnePlus for Android 11 primarily intended for use on OOS stock firmware
- Upstreamed against latest CAF
- Linux-Stable-Upstream included to latest 4.14.243
- compiled with Clang 13.0.1 prebuilt from Google
- built with -O3 speed optimizations
- Link-Time-Optimization (ThinLTO)
- Kernel Control-Flow-Integration (CFI)
- Shadow Call Stack (SCS) Security-Feature
- Use ThinLTO which was first used in the Pixel 4 XL Android R-Preview Kernel instead of full LTO for full program visibility (needed by CFI)
- fix CFI-Violations found in various subsystems like OnePlus/device specific drivers and qualcomm drivers
- Link the kernel with LLD and use RELR-Relocation
- include important fixes/improvements from kernel/common
- Flashing the kernel will keep root!
- Anykernel zip is based on the Anykernel3 repo from @osm0sis
- include vDSO 32 patches to improve 32-bit performance
- devfreq backports from 5.4 (sd 888 qcom kernel base)
- disable various debugging configs, that are not needed in a perf build kernel according to google.
- Removed RTB(interrupt) logging entirely
- disable selinux auditing (we don´t have to adress selinux denials running a stock rom)
- fix several coding issues detected by newer Clang-Toolchains
EAS related features:
- EAS scheduler backported from 4.19 CAF and 5.4 CAF / QCOM SOurce(SD865/SD888)
- adjust powerhal to account for scheduler backports
- disable autogroups and use cgroups for more efficient task placement!
- updates from kernel/common
- scheduler updates from Googles Pixel kernel
CPU related features:
- dynamic WALT-Windows based on FPS (more information here and here )
- Power saving workingqueues enabled by default (toggleable in EXKM)
have a read here: https://lwn.net/Articles/731052/
this complements EAS in general
- Change various drivers ( MM, audio) to user power efficient workingqueues. This should work well in conjunction with EAS
- include cpuidle patches from CAF
- improvements to cpufreq/times/stats
- improve memory allocations in binder driver
- vdso32 patches as found on Google Pixel devices (brief documentation here)
- arm64: lse: Prefetch operands to speed up atomic operations
- improve bluetooth performance
- improve /proc performance
- remove VLA-usage (info)
- option to disable touchboost in msm_performance
- disable coresight, enable coresight placeholder and add proper disabled clocks for sd 855
File System related features:
- improve memory allocations in sdcardfs
- improve memory allocations in kernfs
- writeback: hardcode dirty_expire_centisecs=3000 based on this commit
- ufs improvements from pixel 4/ pixel 5 kernel
- default IO scheduler to CFQ and readahead to 128
Usability related features:
- High Brightness Mode for increasing backlight level related to brightness accessible via EXKM app
- Vibration Intensity adjustable via EXKM app
- DC Dimming setting now fully functional
- add support for steam controller
- add support for nintendo switch controller
Display related features:
- KCAL to control the display
- KLAPSE integrated
- KCAL/KLAPSE: changes safety measures -> allow completely disabling two RGB values (this was requested to, for example, only have red values on night dimming)
- display tweaks to save power on statically rendered images (taken from samsung galaxy source, which uses a very similar panel)
- improve memory allocation
GPU related features:
- Ability to use the new 675mhz GPU step officially introduced by CAF (OP7/Pro is set to only use 585mhz as max)
more information and benches in the 1.2.0 release post
- add low_prio_worker thread for gpu driver (Improves performance when tearing down processes (eg, via LMK) and not blocking currently running UI from submitting work to the GPU
- remove debugging tracing from GPU driver
- improve memory allocation
Network related features:
- Wireguard Support (Details)
- advanced TCP algorithms enabled
- includes new bbr and bbrv2 (default to bbr as advised by @kdrag0n )
Memory related features:
- Memory Management patches from mainline kernel
- Speculative Page Faults (1. 2) (CAF-default)
- Fix various memory leaks in different subsystems
- allow ZRAM to use higher swappiness values than 100
- default ZRAM algorithm set to lz4 (fastest compression/decompression speeds)
- possibility to use lzo-rle as default ZRAM compression algorithm (more information here and there )
- possibility to use zstd as default ZRAM compression algorithm ( higher compression ratio, slightly lower compression decompression speed, more information and benchmarks here)
- free up memory by removing unused memory regions from dts
- improved performance for unity based games
- improved lz4 performance
Security related features:
- Control-Flow-Integration (CFI) and Link-Time-Optimization (LTO) ported from 4.19 kernel/common and Pixel 4/XL Kernel
- Use ThinLTO which was first used in the Pixel 4 XL Android R-Kernel instead of full LTO
- Shadow Call Stack (SCS) Security-Feature
- fix various CFI-Violations found in various subsystems like Asus/device specific drivers and qualcomm drivers
- enable init_on_alloc for even more security, more information can be found in the commit message
WLAN Driver:
- use CAF wlan driver and compile it inline, the only way to ensure working wlan with this kernel
- the kernel cannot even force load prebuild WLAN module as the kernel base is way to far from stock!
- do no longer rely on the pre compiled wlan driver module
- completely removed qcom_rx wakelock in the wlan driver
- removed debugging from wlan driver
- removed logging from wlan driver
Scheduler Setup and Kernel Settings:
- kernel setting get automatically applied at boot
- an AK3 helper module is automatically installed during flashing ( do not remove it in magisk manager)
Misc Features:
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
- blocking a kernel wakelock should only be done in case of firmware incompatabilities (WiFi network at work (can´t be changed) causes deep sleep to not work on the phone.) That´s the only use case I see for this feature. The kernel does not features this to improve battery life!
Requirements
- unlocked Bootloader
- USB-Debugging in developer options enabled
- latest adb and fastboot binaries
- working adb and fastboot environment
- magisk root
- be aware kernel is primarily made for OOS, certain custom roms might not boot or have features broken
How to flash the Kernel:
1. Download the latest kernel.zip
1a. Optional: While it may not be necessary all times, you may want to restore stock boot.img, re-root with magisk and optionally install twrp.zip if coming from another kernel. Before reporting issues make sure you do that! Thank you!
1b. Optional: The stock kernel can be restored by either dirty flashing the firmware.zip or by restoring the stock dtbo.img as well as boot.img. Those can be extracted via payload extractor from the firmware.zip.
2. Make sure to use latest Magisk stable.
3. Flash the kernel.zip via latest EXKM or FKM app. Alternatively via TWRP if TWRP is working.
4. Reboot and profit. After flashing the kernel in magisk manager there will be a module called AK3 Helper Module, do not delete it.
DOWNLOAD:
Download is located always in this folder:
Android 11:
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
Android 10:
https://www.androidfilehost.com/?w=files&flid=300422
Android Pie:
https://www.androidfilehost.com/?w=files&flid=294636
Important: Read after Download
Please take a look at the second post after flashing the kernel!
Changelog:
Android 9/Pie
1.0.0 Initial Release
1.2.0 https://forum.xda-developers.com/showpost.php?p=79657888&postcount=133
1.3.0 https://forum.xda-developers.com/showpost.php?p=79681205&postcount=212
1.4.0 https://forum.xda-developers.com/showpost.php?p=79715609&postcount=266
1.5.0 https://forum.xda-developers.com/showpost.php?p=79759064&postcount=369
1.6.0 https://forum.xda-developers.com/showpost.php?p=79812896&postcount=533
1.7.0 https://forum.xda-developers.com/showpost.php?p=79870285&postcount=624
2.0.0 https://forum.xda-developers.com/showpost.php?p=79958105&postcount=732
2.3.0 https://forum.xda-developers.com/showpost.php?p=79994692&postcount=821
2.8.0 https://forum.xda-developers.com/showpost.php?p=80174759&postcount=1003
2.9.0 https://forum.xda-developers.com/showpost.php?p=80246585&postcount=1062
Android 10/Q:
1.0.0 https://forum.xda-developers.com/showpost.php?p=80519841&postcount=1164
1.0.1 https://forum.xda-developers.com/showpost.php?p=80533419&postcount=1186
1.2.0 https://forum.xda-developers.com/showpost.php?p=80606335&postcount=1275
1.3.0 https://forum.xda-developers.com/showpost.php?p=80789819&postcount=1381
1.4.0 https://forum.xda-developers.com/showpost.php?p=81033561&postcount=1472
1.6.0 https://forum.xda-developers.com/showpost.php?p=81399355&postcount=1574
1.7.0 https://forum.xda-developers.com/showpost.php?p=81684441&postcount=1675
1.9.1 https://forum.xda-developers.com/showpost.php?p=82120413&postcount=1737
1.9.7 https://forum.xda-developers.com/showpost.php?p=82743109&postcount=2002
2.0.0 https://forum.xda-developers.com/showpost.php?p=83555997&postcount=2163
Android 11/R
1.1.0_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-84786595
1.1.1_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-84793145
1.1.3_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-84812661
1.1.4_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-84853537
1.1.6_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-84900619
1.3.9_R https://forum.xda-developers.com/t/...r-op7-pro-aka-guacamole.3933916/post-85510637
Donations:
Donations are not mandatory but very welcome!
If you want to support development or just buy me a coffee/tea to get development going: http://paypal.me/freak07
Credits:
@osm0sis for all his work, including the ak2 installer!
@tbalden for being the best HTC wingman!
@LeeDroid for his awesome roms!
@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 giving me advice
@topjohnwu for magisk!
@osm0sis for anykernel!
Contributors
Freak07
Source Code: https://github.com/freak07/Kirisakura_OP7Pro_A11
Kernel Special Features:
Version Information
Status: Stable
Created 2019-05-26
Last Updated 2020-09-26
Question: Is root preserved when flashing this kernel?
Answer: My kernel.zip keeps a device rooted by magisk rooted.
Question: How do I return back to stock kernel?
Answer: Flash boot.img as well as dtbo.img extracted from the full firmware zip.
Question: My WiFi is not working after flashing the kernel. I can´t toggle it on.
Answer: That means something happened to your device, that is causing some stuff to not get loaded properly when booting. I ran into the same issue once. Read through the thread to find the cause.
I wrote a guide in the linked thread, that explains step by step, how to return to a working condition without the need to wipe the phone completely.
Click the following link to find the post: post is linked here
Question: How to report bugs properly?
Answer: Have a look at post #3 in this thread. The linked guide is a pretty good starting point.
Before reporting any bug make sure you´re not using any mods, magisk modules, scripts or other modifications that alter various functions like sound mods 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?
Provide logs, otherwise debugging is a lot harder. 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.
If the device force reboots/randomly reboots (that means you see the bootloader unlocked screen!) provide a ramoops file.
Easiest way is immediately after booting up, with a root explorer navigate to sys/fs/pstore. Copy the contents to your internal storage, zip it up and send it to me.
If the issue happens while the device is running provide a dmesg plus a logcat that you take while/shortly after the issue happens. This will log what´s running in the current session. Try to be as detailed as possible what´s happening when the issue appears. It will also help me in reading the log!
To easily get a logcat in case of a crash take a look at this post:
https://forum.xda-developers.com/showpost.php?p=79462002&postcount=1566
Big thanks to @jcmm11 for it
Here´s a tasker task to automatically copy /sys/fs/pstore on each boot to internal storage. Be advised these files get also created on correct reboots.
https://forum.xda-developers.com/showpost.php?p=79549126&postcount=1670
thanks @jsauder2 for this little trick
Useful Resources
How to report bugs:
It is incredibly useful if bug reports are done in a proper way. That saves everyones time and will ultimately lead to a faster bugfix (hopefully).
The following guide from @nathanchance is a very good guideline on how to properly report a bug!
https://github.com/nathanchance/Android-Tools/blob/master/Guides/Proper_Bug_Reporting.txt
How to convert your OP7 Pro to use f2fs on /data:
Do this only if you know what you´re doing. This guide works even on stock rom with stock kernel.
OP7 Pros Kernel as well as the fstab support f2fs by default.
If you´re using Kirisakura-Kernel starting with version 1.5.0 you will use the latest upstreamed f2fs implementation. Otherwise you´re running that´s a bit outdated and also a bit slower.
Google did put a lot of work in f2fs and that benefits here greatly too.
1. Backup your data and transfer it to an external storage device, because we will now erase everything on /data
2. Boot to TWRP
3. Go to Wipe - Advanced Wipe - Select "data" - Change file system - f2fs - confirm <- This will erase all userdata including your internal storage (pictures, videos, music etc)
4. Boot up and set up your device freshly.
5. Enjoy f2fs on your OP7 Pro
Androbench Results:
Stock EXT4 taken from XDA OP7 Pro Review:
{
"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"
}
F2FS on Kirisakura 1.5.0
Well, I wasn't planning on unlocking the bootloader in this phone.... Going to now that you're here! Thanks for your hard work
Dude,
So pumped to have you on the OP7Pro! This is shaping up to be a really well supported device!
Sent from my OnePlus7Pro using XDA Labs
So hey everyone
want to lose a few more words here. I spent quite a bit of time getting this up as quickly as possible. I never had an OP device until now. So I needed to get familiar with it and get the hang of it.
I spent quite some hours and most of my free time since thursday, in the hope of getting this up before the weekend ends. Some people I spent less time with, were not quite as happy about this decision, but so be it.
I had quite a bit of experience with the CAF merge from the Pixel 3 XL, that made things a bit more easier and smooth. Upstreaming to latest linux-stable was quite a pain, because there are several commits, which cause the device to boot straight into Qualcomm Crash Dump mode.
In the end I got to 4.14.122
It´s still early here on this forums. So far now use adb sideload to install the kernel. The magisk module needs to be flashed otherwise some things, like accessing battery settings isn´t working, because of selinux-denials. If you can live without it, I´m pretty sure you can run this kernel also unrooted. But for the things I mentioned magisk is required, because you need to flash the companion module.
Once TWRP data decryption works, we can flash the zip simply in TWRP. Once EXKM and FKM are updated, we should be able to flash the zip via the apps too
For now it´s this way
I have a few more plans for this kernel, like wireguard, adding maybe some (not to much) features to it, maybe use f2fs and bringing it to latest state. I´m pretty sure I find more stuff as well.
The kernel is way more snappy than the stock kernel for me. It uses some of the EAS improvements from my Pixel 3/XL kernel, which can be utilized on this newer kernel base as well.
I confirmed it with a few little tests/benchmarks and for me the difference is night and day.
I´m running the device always full resolution and 90fps
If somebody can confirm, this it would be really great
If you encounter bugs, please take a look at post #2 and #3
there is a bit more in the kernel than the pure OP. I´ll update it the next few days
I wish everybody a nice weekend.
Great to see you here on this device!
Welcome to the world of OnePlus! This is my second device from Oneplus and finding it an awesome device. Sad to see HTC go down the tubes.
great to see you here freak!
Great news. Just flashed all working well so far
Great to see you here freak & we all appreciate you giving up your time. I'm staying stock until Stable Twrp is released, but as soon as it is I'll be using your kernel.....
@Freak07,
Never thought there would be a day that we would both be on the same device again.. ( I technically haven't gotten the device yet.. waiting till next month),
But glad you are here man. Your work is awesome... Now I got someone to cherry pick from JK man.............
BTW< stop by Slack every once in a while man.
Looks promising, I'll flash it! Good job!
hey bud message me on telegram guess we meet again lol im working on my stuff now glad to see you here @Freak07 and eleminator
Wow it's so nice to see you here! Never thought I'd see the day haha
Freak07 said:
I have a few more plans for this kernel, like wireguard, adding maybe some (not to much) features to it, bringing f2fs to latest state and I´m pretty sure I find more stuff as well.
Click to expand...
Click to collapse
Hey buddy,
I would love to see WireGuard support as I use it all the time. I much prefer the kernel implementation as it doesn't consume any battery compared to the userspace version which does.
In terms of F2FS are you also going to update in line with how Arter97 does things and also implement his Rapid GC commit and subsequent changes?
https://github.com/arter97/android_...mmit/34a4ea7309f551150628603f7ef71abc25e6b68e
Regards,
Ravi
Sent from my OnePlus7Pro using XDA Labs
Just flashed the kernel and companion module from within ex kernel manager 5.03 without issue. No pc or twrp needed
DC Dimming function in Utility/Oneplus Lab is not working...
Works fine here.