Changelog:
V5.23 Fix for Android 6 (Freeze on boot logo)
Installation of kcal kernel module for supported kernels. Get the app from https://forum.xda-developers.com/android/software-hacking/dev-kcal-advanced-color-control-t3032080
V5.22 Bug in the vendor overlay creation. Existing directories (like /vendor/bin) have not been replicated correctly
V5.21 Fix issue when running on Linux (some CR/LF)
Patch libsepol in bootimg for backwards compatibility with Android 6
V5.20 Support for superuser as an alternative to SuperSU (https://github.com/phhusson/Superuser)
Fix for the missing internal storage link in TWRP
V5.11 Support for Android 7.0
Fix in the overlay layout which could prevent some libraries from loading and cause battery drain
V5.1 Support for Android 7.0
Updated bootimg to deal with Android 7.0 policies
New tool inside bootimg for adding new contexts to binary file contexts
New system overlay layout due to a more restrictive linker in Android 7
V5.0 New system overlay method using the /vendor directory. As this directory is also in the library search path even libraries can be easily replaced without modifying the system partition
System-less SuperSU integration improved (Version 2.76 or higher recommended)
System-less xposed integration (using the standard distribution)
Support for 32.A.0.253
V4.51 Fix for awk script for Linux kernel version detection when running on Linux
V4.5 Fixed adb and mtp file access in TWRP for 32.2.A.0.224
V4.42 Added support for Z2 (Sirius) and TWRP fstab fix for leo and aries (thanks to waleedsq81)
V4.41 Fixed issue with Y/N choice on non-english Windows. Added support for Z3 (leo)
V4.4 Support for Z3+/Z4, Tablet Z2, Tablet Z3 and Tablet Z4 added (Z4 still has an issue with TWRP, but DRM fix works)
SuperSU integration reworked in order to need less SELinux exceptions and to be more secure
All tasks can now be individually selected. Therefore there is no separate DRM only script required
V4.31 Renabled Z5P (satsuki) and Z5C (suzuran) for TWRP and drmfix
V4.3 Support for older Lollipop added
Script execution for Linux fixed
V4.24 Fix for for a bug in SuperSU integration in V4.23
V4.23 Fix for repacking 3rd party kernel (Some permissions were on custom directories were lost)
V4.22 Bugfix for readta (flash_dk reported unit not)
V4.21 Fix for the Linux binary of bootimg
V4.2 Updated TWRP to 3.0.2
V4.1
Fix for WideWine (if you have your device key) Thanks a lot to goofnorf101 for testing
unpackinitfs and makeinitfs in my bootimg tool now maintain date/time of files correctly
Automatic SuperSU installation
V4.0
Fix for older kernels (Lollipop)
Binary for Linux (The older version had the ARM version packaged)
Device is not stored in the kernel image anymore
TWRP updated to version 3.0.1
FAQ - Please read
Is is possible to have root with locked bootloader?
Short answer: no
Long answer: The locked bootloader only boots unmodified kernel packages signed by Sony. The stock kernel only mounts unmodified /system partitions (dm-veritiy) -> No modification without unlocking
So any change to the kernel (like this script) or system partition requires unlocked bootloader
What is dm-verity?
A hash checksum on all blocks of a filesystem in order to verify the integrity
What is Sony RIC?
A protection to avoid mounting the root filesystem or system read/write
What happens if I unlock my bootloader
The device key (TA unit 0x1046b) will be wiped, which deactives everything DRM related. In addition a full wipe of your phone will be perfomed.
So extract your TA partition before with this great tool http://forum.xda-developers.com/crossdevice-dev/sony/iovyroot-temp-root-tool-t3349597 from zxz0O0
If you already unlocked the bootloader before, then at least the credentials will be restored, which will reactivate stuff like x-reality and camera de-noise
Why do I need to flash my device key?
Without your device only some functions can be reactivated, like x-reality. Other functions like widevine do not work with out your device key.
How do I enter TWRP recovery?
Restart your phone and press the volume key up as soon as the LED switches to yellow
I want to use a custom kernel with the DRM fix
Just say "N" to all other options. Nevertheless be prepared for problems if the custom kernel does not match your Android version.
What should I do if there is an update to this script?
First check if you really need to run this update by checking the changelog. E.g. if it says binary for Linux fixed and you are using Windows then probably you don't care. If you did not change your Android version then all you have to do is to update the kernel package with fastboot flash boot. If you do not use the automatic SuperSU integration then you have to reinstall SuperSU in TWRP.
This tool repacks an existing kernel package (usually the stock kernel) in order to make it rootable and adds TWRP recovery as well. Version 4 has been succesfully tested with LP and MM.
In particular it adresses the following issues:
DM-Verity: Android is now using dm-verity to verfy the integrity of the system partition. Until you switch it off your phone won't boot after modifying /system
SONY RIC: RIC is blocking the write access to the system partition
DRM Keys: After unlocking the bootloader your device key is wiped, which deactivates some functionaliy. E.g. x-reality, denoise in camera aso.
Recompiling the kernel is not required as only the init ramdisk needs to be modified. You can run these scripts either in Windows or Linux.
Thanks to the excellent work of zxz0O0 you can now backup the TA partition before unlocking the bootloader with this tool http://forum.xda-developers.com/crossdevice-dev/sony/iovyroot-temp-root-tool-t3349597
If you managed to backup your TA partition before you unlocked the bootloader then this version will fully reactivate your keys as well. (many thanks to addicted1900 for helping me with the testing)
As there has been some confusion I would like to point out one more time that you cannot run any kernel package which is not signed by Sony without unlocking the bootloader. So this works only with unlocked bootloader.
As it seems that it is not clear to everyone I also want to mention that <...> is a placeholder. E.g. <extracted kernel> means that you should replace it with then name of your extracted kernel, which could be kernel.elf
There was a report that having SuperSU in the system partition installed may lead to a bootloop. Therfore you shoud first install the bootimage created by this script and then install SuperSU afterwards, as it will then use the system-less strategy.
In order to use these scripts you need the kernel boot image of your current version. There two different ways to obtain it:
Method1:
If you have a .ftf image then open it with zip application (7Zip, WinZip, Windows Compressed Folder) and extract kernel.sin. Afterwards use Flashtool -> Tools -> SIN Editor to extract the kernel. You should end up with the boot image with extension .elf.
Method2:
Run your favourite recovery and connect via
Code:
adb -d shell
Now run
Code:
find /dev -name boot
dd if=<output of the find command before> of=/sdcard/kernel.img
Once you have the kernel image you are ready to use the script.
The newest version support superuser as an alternative to SuperSU. This is available open source and can be verified. In order to integrated you need the current superuser.zip from http://superuser.phh.me/superuser.zip and to be install the app afterwards from Google Play (look for superuser phh) or build it yourself from github.
To integrate the kernel part just place superuser.zip in the rootkernel directory.
You can also still use SuperSU, although it is causing a huge battery draining on my Z5 with Android 7.0 If you place SuperSU in the same directory (SuperSU*.zip, case sensitive) then it will be also installed automatically . It did all the tests with 2.76, but newer versions should work as well. Please be aware that you can not update SuperSU within the application. For a newer SuperSU version you need to rerun the script.
If you want to integrate xposed as well just place the distribution for you device and Android version in the same directory. (e.g. xposed-v86-sdk23-arm64.zip). Only support with Android 6.0 (sdk 23) and higher.
xPosed for Android 7.0+ is still not available.
Code:
rootkernel <extracted kernel> boot.img
You are prompted for several choices:
Sony RIC is enabled. Disable?
I prefer not to disable it in order to keep my phone more secure. Unfortunately there are a lot of bad guys in this world and SELinux and RIC still can save us if someone discovers a new kernel exploit.
Sony RIC basically prevents mounting the /system partition for write. You can still modify it in recovery of of course, but if you require write access to /system without entering recovery then you need to disable it.
Install TWRP recovery? Here you should say yes unless you are trying to patch a non-stock kernel, which comes already with a recovery
Install busybox? For security reasons I prefer not to install. In recovery you have it anyway. This choice is only available if you chose install TWRP
Found SuperSU-v....zip. Install? Integrates SuperSU. For this option to show up you have to place the SuperSU package into the same directory with the name SuperSU*.zip (case sensitive)
Found superuser.zip. Install? Integrates superuser. For this option to show up you have to place superuser.zip into the same directory (case sensitive)
# Make su permissive (Permits any action as su)? This only appears if you install superuser. Permissive means you can anything as root, without it is restricted mainly to file operations (sufficient for e.g. Titanium Backup)
Found xposed-v....zip. Install? Integrates xposed system-less. For this option to show up you have to place the xposed for your device and Android version into the same directory. (e.g. xposed-v86-sdk23-arm64.zip)
Install DRM fix? Installs the DRM fix. First it tries to use the device key which you flashed with flash_dk. If it does not exist it uses an alternative method which cannot fix everything (e.g. Widevine will not work, but X-reality, Camera denoise etc. will work)
Now put your phone into fastboot mode (Volume Up + connect USB) and then run:
To test it without actually flashing it:
Code:
fastboot boot boot.img
For flashing it:
Code:
fastboot flash boot boot.img
If you managed to backup for TA partition before then you can reactivate your original device key as follows:
Code:
flash_dk <ta backup image> DK.ftf
Flashing this file with flashtool will write your device key to an alternative unit, from where the drmfix library will pick it up.
This is a one-time task. It will survive a complete reset of the phone or Android system upgrade. The device key has a length of just 16 bytes, so it is correct that the resulting DK.ftf has a size of only aprox. 500 bytes.
If you like my work you can buy me a coffee
Some background information:
There are two main tools involved (for both Android and Windows)
- busybox
Probably everyone knows it
- bootimg
A multicall binary with several tools for unpacking and packing the boot image as well as adapting the SELinux policy. Part of the code is written by me from scratch, some other parts are cherry picked from other projects. I will also provide the source for it. As Windows doesn't have softlinks I modified the tools for unpacking and packing the init ramdisk to write text files with __lnk__ at the end instead.
Would be great if someone shared E6653 stock .200 kernel boot.img or flashable zip so we can try this out
Funkmasterchilla said:
Would be great if someone shared E6653 stock .200 kernel boot.img or flashable zip so we can try this out
Click to expand...
Click to collapse
Do you want the kernel.sin of stock . 200?
lordriguez said:
Do you want the kernel.sin of stock . 200?
Click to expand...
Click to collapse
I am downloading the whole firmware again from xperifirm. Thank you mate !
Edit: Working great! I'll stick to stock kernel now since Androplus' consumes more battery while asleep !
Edit2: I successfully flashed recoveries in command window from my PC but can't access TWRP at boot though, no LED flashing.
Edit3: Ok that's cuz there's no recovery boot script obviously, my bad. That's above my pay grade, if somebody is kind enough to create a stock. 200 with recoveries it'd be much appreciated PM me if so
Edit!: I flashed monx new stock based kernel
Thank you Tobias !
tobias.waldvogel said:
Hi everyone,
as most of you know, even after unlocking the bootloader there are a few more requirements before you can modify the system partition, i.e. install SuperSU, xposed etc.
- Android is now using dm-verity to verfy the integrity of the system partition. Until you switch it off your phone won't boot after modifying /system
- SONY RIC is blocking the write access to the system partition
The good news is, that it is not required to recompile the kernel. It is sufficent to modify the init scripts inside the init ram disk. So you can just stick to the stock kernel.
I created a package which precisely does this job for you. Just run it from TRWP after installing a new Android version
With this you don't have to wait anymore until someone creates the right kernel package for your phone
PS: It leaves a copy of the new boot image in the internal sdcard if you want to save it somewhere. (boot.img) It can be flashed with fastboot if required.
Click to expand...
Click to collapse
Hmm... I don't understand what this zip file do with phone.... Can you explain more primitive for me?!
Is that for recover stock kernel with stock drm keys?! I understand correct?!
zavpasha said:
Hmm... I don't understand what this zip file do with phone.... Can you explain more primitive for me?!
Is that for recover stock kernel with stock drm keys?! I understand correct?!
Click to expand...
Click to collapse
Before you can start to install thing like SuperSU and xposed you have to change the kernel, otherwise your phone won't boot anymore. In the past you had to wait for someone to come up with a compatible kernel for your phone, now this package just converts your existing kernel.
Regarding the DRM please install the package from the DRM restore thread.
Funkmasterchilla said:
I am downloading the whole firmware again from xperifirm. Thank you mate !
Edit: Working great! I'll stick to stock kernel now since Androplus' consumes more battery while asleep !
Edit2: I successfully flashed recoveries in command window from my PC but can't access TWRP at boot though, no LED flashing.
Edit3: Ok that's cuz there's no recovery boot script obviously, my bad. That's above my pay grade, if somebody is kind enough to create a stock. 200 with recoveries it'd be much appreciated PM me if so
Edit!: I flashed monx new stock based kernel
Thank you Tobias !
Click to expand...
Click to collapse
Thanks for the feedback. Future versions of this package will add TRWP as well. I am currently working on it.
tobias.waldvogel said:
Thanks for the feedback. Future versions of this package will add TRWP as well. I am currently working on it.
Click to expand...
Click to collapse
As promised the new package with TWRP is out
tobias.waldvogel said:
As promised the new package with TWRP is out
Click to expand...
Click to collapse
Great work thanks ,
How would I go about disabling the vibration for recovery?
Sent from my E6653 using Tapatalk
Well, the script which checks if recovery should be started is bin/init inside the zip. If you don't like the vibrate then just remove the line and run the package again
Gesendet von meinem E6683 mit Tapatalk
huh, so it is possible to have 2 recoveries at the same time? (and why would anyone want 2 recoveries? )
Three Recoveries are als possible
CWM, Phils Touch & TWRP
Sent from my E6653 @ XDA Portal
Sorry for being noob.
I miss my Oneplus one where things were so easy.
After unlocking BL what do i do with this zip.
Is it going to Root my phone and Install TWRP?
Thanks for help.
I flash the v2 and i got bootloop. 4 time red LED and the phone reboot and all over again. What's the problem?
Hi Tobias,
can you please build a v2 for the z5 compact too?
thx
stiffmeister
FakeSmile said:
I flash the v2 and i got bootloop. 4 time red LED and the phone reboot and all over again. What's the problem?
Click to expand...
Click to collapse
On which model did you use it and with which firmware version?
If you used flashtool before then you can just flash the kernel one more time (i.e. deselect everything else).
stiffmeister75 said:
Hi Tobias,
can you please build a v2 for the z5 compact too?
thx
stiffmeister
Click to expand...
Click to collapse
This should work on Z5 compact with stock kernel as well, without any change.
In case of any issues you can flash the kernel again via flashtool
If it did not work you can pass me the generated boot.img from your interal sdcard for further analysis
hi tobias,
i didn't try the v2, because i thought, that the twrp recovery wouldn't be compatible.
but when you say it's ok, than i'll try it
br
stiffmeister
stiffmeister75 said:
hi tobias,
i didn't try the v2, because i thought, that the twrp recovery wouldn't be compatible.
but when you say it's ok, than i'll try it
br
stiffmeister
Click to expand...
Click to collapse
I flashed zombie kernel without making backup of stock kernel, can you share it with me so I can try this method (I doubt it will work on zombie)
ps : I have .200 fw
tobias.waldvogel said:
On which model did you use it and with which firmware version?
If you used flashtool before then you can just flash the kernel one more time (i.e. deselect everything else).
Click to expand...
Click to collapse
E6653 on .200 firmware
[M.O.D. KERNEL Q]
*** NOTE: a dev has posted on TG the FOD fix for beta/ MIUI 12 forked from my code, download there! I asked for GitHub source to comply with XDA and will post once I have it and provide a link to the file link "Mi9/Mi9T Pro Optimization and Overclocking" Telegram has it now: https://t.me/joinchat/NNTe_E9G4ZcZKXCUrajFYQ ***
MIUI 11 Mi9/ 9T Pro MOD 1.5
MOD-Q 1.5 is for stable MIUI 11 variants for Mi9 only - Xiaomi.eu 11.0.5 stable is what it was built for, runs best on, just use it. The Mi9T Pro version supports MIUI 11 variants plus many AOSP builds. If you use an official MIUI 11 Xiaomi version you will get a warning message "Contact device manufacturer." You can ignore that, it means nothing. But I highly suggest using Xiaomi.eu 11.0.5, or another MIUI 11 variant like MiRoom or some use Revolution OS.
***DO NOT USE ANY PERFORMANCE (CPU/GPU/ETC) MAGISK MODULES WITH THIS FOR BEST PERFORMANCE!!! IT INSTALLS IT'S OWN OPTIMIZED MAGISK MODULE AUTOMATICALLY***
FP scanner will only work up to 11.0.5. Xiaomi keeps changing the code and not releasing it to made Dev builds not work. There were "patches" that worked until a few weeks back, but Xiaomi has yet again changed their FP scanner code. So I will not update the FP code, do not ask, it is a complete waste of time. Sorry, but Xiaomi.eu 11.0.5 and MOD 1.5 work very very well together.
Features:
835mhz GPU, Adreno Boost, Dynamic Fsync, Boeffla WL blocker (better battery idle), F2FS optimizations, LZ4 ZRAM. EXFAT USB/SDCard support added. Sultan Boost + PapaSmurf's Op7Pro tweaks, Dynamic Overclocking + Underclocking with frequency boost for smooth, fast, clean performance and fluid scaling. Many thanks to PapaSmurf who greatly influenced this kernel; portions are ported from his Op7 Pro Repo.
Mi9T Pro version also reported to work on AOSP ROMs using the original FOD implementation (Derpfest, MSM, CRDroid, Havoc, LOS).
Just use the Magisk Module it installs for you automatically when you flash the zip from TWRP, likely the best results will be obtained. SmartPack can be installed to choose between profiles under Performance Tweaks - battery / balanced / performance / gaming, although the default installed Magisk module is highly recommended by itself for optimal performance and good battery drain.
Github source has been added for MOD 1.5 here. Please read the Readme that's why it's there.
https://github.com/mrslezak/MODQ1.5
Releases are available here: Download them for your device and follow the instructions there. If you already have TWRP and Magisk, it will be easy. Just read please it will answer your questions.
https://github.com/mrslezak/MODQ1.5/releases/tag/MOD1.5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[M.O.D. KERNEL PIE] Mi9 Android9 GPU830mhz F2FS data/cache Dynamic Fsync LZ4 WLblocker V2 [STABLE]
MOD Pie notes:
***New features added! Dynamic Fsync replaces the Fsync toggle (credits to author Paul Reioux aka Faux123 <[email protected]>), and Boeffla Wakelock blocker 1.1.0 (credits to author: andip71 <[email protected]>) has been added. The GPU830mhz runs on a higher regulator now so even 3DMark runs without issue, this is as stable as it gets. A battery saving Magisk Module has been added for longer life and scored 422.5K still on AnTuTu! It will throttle and hotplug (idle) cores as needed to save battery ***
Super tweaked kernel for the Mi 9. Best AnTuTu Benchmark 432K thus far, expect 420K-430K in daily operation with good battery life. This will vary based on the ROM selected. Stock AnTuTu is 370K. So you can run your phone faster than any production 855+ at the moment. This kernel is setup on purpose to allow anything from stock to maximum performance, you can set parameters as you like in a kernel manager.
GitHub Source: https://github.com/mrslezak/MODKernel-V2-Cepheus
Releases are available here:
https://github.com/mrslezak/MODKernel-V2-Cepheus/releases/tag/V2
TG Name: MattoftheDead
M.O.D. Kernel (MattoftheDead). This kernel is STABLE, everything works, it runs on any MIUI based ROM (MIUI Global Dev, MIUI China Dev, MiGlobe, Xiaomi.eu, AOSP, etc.). ***If you install this kernel and don't follow the tweak instructions, it runs exactly like stock. There is now a Magisk module that will run with the optimal settings to make this easy! *** So read up. You can apply any tweaks you'd like. These include:
GPU 830mhz overclock - stable and smooth. The GPU will throttle down when not being used to a lower mhz. The Magisk Module will enable the max 830mhz clock for you. Or you can go without if you have a dialcode supported GPU MaxFreq OC mode *#*#8106#*#*
ZRAM LZ4 data encryption enabled - fastest encryption method, smaller ZRAM sizes (512mb is good) work very well [2GB is the stock ZRAM default, LZO is the default kernel compression which is slow]. ZRAM is in-memory swap so it is ultra fast. This allows you to have more free RAM for apps to run.
F2FS data and cache partition support - full ICE AES 256bit encryption. Note only @mauronofrio TWRP 3.3.1-39 + supports F2FS partition mounting so you MUST use this TWRP recovery!!!
F2FS has been tested on MIUI Global Dev 9.6.27 and Xiaomi.eu 9.7.22, 9.8.1, MiGlobe, RevOS, AOSP, Havoc thus far (more added daily) and read/write speeds and app access are definitely fast. Support was enabled by working directly with @mauronofrio on XDA (thanks Mauro) so we originated F2FS support for Mi9 - there are also F2FS kernel tweaks that help the speed in the kernel.
BOEFFLA Wakelock Blocker 1.1.0 - blocks wakelocks and allows you to change what gets blocked that is waking up your phone and preventing deep sleep. There are defaults blocked already in this build that are known to be blockable safely. If you want to add more, use SmartPack Kernel manager under Wakelocks. It will also show you what apps are causing them and the frequency so you can disable the ones that are not needed.
If you want to join in the discussion and see updates in realtime, World MI9 & Mi9T Pro Optimization and Overclocking is a TG group which has many things related to MOD and any other kernels, mods for the phone, Magisk Modules, all types of things for the devices.
Step 1: [KERNEL REQUIRED FILES]
Go to the releases page posted earlier and download everything.
Step 2: [ROM SELECTION]
If you already have a Pie MIUI based DEV ROM installed, you can continue to use it. Global Dev 9.6.27 is recommended. But this supports up to Xiaomi.eu 9.8.1. If you want to use a new MIUI based ROM, download it and setup the device (between these ranges of releases - some like MiRoom, some like stock, some like Xiaomi.eu). If you are clean flashing everything, don't bother restoring all the apps - they will be deleted when you switch to F2FS. Just set it up so you can login and get to the default menu with the default apps displayed. Either way, you will have to setup the device as a new phone. So back up all your user data (photos, downloads, etc), apps, etc. using Google Drive, Xiaomi Cloud, Titanium Backup Pro, or any other app that backs up apps and settings. It's often easiest to put them on your PC since you will be plugged into it during this install process with your USB cable.
Step 3: [MAURO TWRP INSTALLATION FOR F2FS SUPPORT]:
Boot Mi9 holding Power + Volume Down
Hook up to your phone to the PC with the charging cable
Open a command prompt. Go to your Minimal ADB and Fastboot folder.
Type: fastboot devices
And hopefully you see your device ID pop up. If not you don't have the right driver, the cable is bad, or something else is wrong. Search Google.
Next flash Mauro TWRP:
fastboot flash recovery twrp-3.3.1-41-cepheus-mauronofrio.img (or use his latest from the link at the bottom of this thread)
Hopefully you see it flash to the device in a few seconds successfully and it's ready to go.
Booting to TWRP:
Turn off your phone. Now hold down power + volume up. Once the boot Logo appears, let go of the power button but keep holding volume up. TWRP should boot. If not, try again. I usually have to remove the phone case. Now enter your password and proceed to the next section. If it asks you if you want to keep the system read only SAY NO! You will be modifying system components, keep it writable to avoid installation issues.
Step 4: [FLASHING THE M.O.D. KERNEL]
Check the releases page posted above. Just unzip the file there and flash via TWRP as an image to boot. It's patched with Magisk already.
Step 5: [CONVERT EXT4 TO F2FS}:
Converting EXT4 data and cache partitions to F2FS:
Check the releases page posted above for fstab_patch_F2FS_MI9_Cache_NoBarrier.zip required to enable F2FS. You MUST flash this in TWRP or your OS will NOT be able to boot an F2FS data partition!!!! This file has been kanged all over the internet, it was created here. Feel free to use it, everyone already is.
***Note flashing TWRP / Install / fstab_patch_F2FS_MI9_Cache_NoBarrier.zip MUST be repeated any time you change ROMs or you won't have access to your data!!! So back this up!!!!***
Boot back into TWRP. You will need to go to Wipe, Advanced Wipe, Click Data, Repair or Change File System, Change File System, and click F2FS. Swipe to change. It will format and you'll have nothing on your data partition. Next format cache. Go to Wipe, Advanced Wipe, Click Cache, Repair or Change File System, Change File System, now click F2FS. Swipe to change. Again it will format and be wiped.
Step 6: [SETTING UP YOUR "NEW" PHONE]:
Next, reboot to System. The device should boot up and welcome you to your "new" device. It has no data apps so it has to be new. You will have to login to your Xiaomi account if it is associated with the device. Then you can choose to restore from a Google Backup and next from Xiaomi Cloud. You can do either one to get your apps back. I would suggest Xiaomi Cloud after Google completes all its downloads - it will place icons in the right places and install your root apps if you had them. And after setting up your apps, now boot back to TWRP and make a Backup. Now for this Nandroid backup you should backup data, boot, dtbo, and vendor partitions (vendor has the fstab.qcom file that allows your F2FS supported partition to boot now). Even if you save to your internal device initially, be sure to put it on a PC for safe keeping. Then If you accidentally wipe your partition later, you can skip importing, get to the main screen after minimal setup completes, enable file transfer from the connected PC, and then copy the Nandroid backup to your Internal Memory. Boot into TWRP and restore the backup and you're back in business.
Step 7: [INSTALLING MAGISK MANAGER AND KERNEL MANAGER]:
So now you install the MagiskManager-v7.3.2.apk to enable all root functions. If you want Google Pay and anything else setup posts are here in the Mi9 forum that show you how. Generally hide all banking apps, trading apps, Google Pay, GMS, etc. And I suggest installing GMS doze for better battery life and the Mi9 Auto Brightness fix.
In addition, to have the MOD kernel setup for the best performance, go into Magisk Manager, Modules, and flash the (Magisk)MOD-Battery-Saver+_v2.zip from the releases page. It will auto set all the parameters the kernel features, and does a great job with extending battery life at the same time.
This is the best setup for performance. Pictures are included below.
If you would like to change the settings, you need a kernel manager. So next you can install the Smart Pack APK SmartPack_Kernel_Manager_v8.7.apk to enable or disable all the tweaks you desire.
Pictures are attached below to show the TWRP screens for flashing and F2FS partition conversion. Also the settings of best performance using Smart Pack kernel manager are here. If you want to change any of the best settings after flashing the Magisk Module, do it in the kernel manager of your choice and set on boot - where to change those options is in the pictures below for SmartPack.
Enjoy!
Mauro TWRP
https://forum.xda-developers.com/Mi-9/development/recovery-unofficial-twrp-xiaomi-mi-9-t3905825
SmartPack Kernel Manger
https://forum.xda-developers.com/android/apps-games/app-smartpack-kernel-manager-t3854717
FK Kernel Manager CPU Profile
https://play.google.com/store/apps/details?id=com.franco.kernel&hl=en_US
Magisk
https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
Minimal ADB and Fastboot
https://forum.xda-developers.com/showthread.php?t=2317790
And one last thing. I have been working with some of the most well known devs out there on XDA on Telegram, Private Messaging, and other channels to get this kernel where it is - but I have no XDA presence. I've helped hundreds of people on Telegram setup their systems or diagnose their issues. If you find this post useful, helpful, innovative, or install my kernel and like it, please click the Thanks button to acknowledge the work that I've done to get the Mi9 to this point. It would be greatly appreciated to get some thank yous for all the hours I've put into this development work for the Mi9, and provides some motivation to keep improving. Other kernels are on the way as well for more Xiaomi / Redmi devices if I feel some love from the community. Much appreciated!
Thanks goes out to @smeroni68 and @mauronofrio for helping fix the fstab.qcom zip that cost several hours of pain yesterday for users and I on Telegram that did not have the Vendor partition mounted when flashing the old fstab.zip file - it will flash now mounted or not from TWRP. And thanks to @ilia1985 for providing a Magisk Module template for the kernel manager settings, now OC setup doesn't even need a kernel manager!
***DISCLAIMER - APPLYING ANY ROOT MODS IS ALWAYS AT YOUR OWN RISK! I AM NOT RESPONSIBLE FOR BRICKED DEVICES, DAMAGE OR OTHER THAT MAY OTHERWISE OCCUR. THIS HAS BEEN TESTED EXTENSIVELY BUT USE AT YOUR OWN RISK***
First.. that's the first time.
Huge thanks to the dev for their contribution!
Awesome work!
What does "miui based rom" mean?
Is Havoc OS miui based?
Troomak said:
Awesome work!
What does "miui based rom" mean?
Is Havoc OS miui based?
Click to expand...
Click to collapse
Nah, it's aosp
Looks like it's base on last one version of android9 MIUI DEV 9.8.1 to modify its kernel, doesn't it ?
So it's not base on linux kernel 4.14.139 to develop ?
Kris
Kris Chen said:
Looks like it's base on last one version of android9 MIUI DEV 9.8.1 to modify its kernel, doesn't it ?
So it's not base on linux kernel 4.14.139 to develop ?
Kris
Click to expand...
Click to collapse
4.14.83 per the hardware device settings. Q is already upstreamed to the latest Linux and CAF so just waiting on a source release so kernels can be made. No need to spend time upstreaming unless another dev wants to (I'm in contact with the other kernel dev here on XDA we're working together now, he may upstream). He upstreamed his to 4.14.139 and will pull my source repo soon to fix bugs in his build so he may just upstream this kernel or fix bugs in his kernel in the process. Collaboration is a good thing. I've been waiting for assistance for a long time and it's good to team up with others devs. We don't get paid we do this as a hobby.
Thanks !
Can I use Ex kernel manager to tune kernel parameters ?
In another one - Will there CPU/GPU frequency table exist to choose which one of frequency combination I want to use base on condition of phone usage - Gaming, multimedia application, and general usage !
mslezak said:
4.14.83 per the hardware device settings. Q is already upstreamed to the latest Linux and CAF so just waiting on a source release so kernels can be made. No need to spend time upstreaming unless another dev wants to (I'm in contact with the other kernel dev here on XDA we're working together now, he may upstream).
Click to expand...
Click to collapse
Kris Chen said:
Thanks !
Can I use Ex kernel manager to tune kernel parameters ?
In another one - Will there CPU/GPU frequency table exist to choose which one of frequency combination I want to use base on condition of phone usage - Gaming, multimedia application, and general usage !
Click to expand...
Click to collapse
Yes EX Kernel Manager is a good one to use. You will have to experiment with if it can lock in frequencies. Follow the guide for CPU settings they are optimal. You could by app adjust if needed and if it is supported by EX. Some support per app some don't. I think SmartPack does. The issue is that the 830gpu clock is an additional clock. The others are all stock clocks. This is for maximum battery life and compatibility. The highest 830GPU is only fully settable via dial code *#*#8106#*#* at this time - try in your ROM to see if it is supported. In some KM you can set max and min to 830mhz and it will lock in the frequency (FK) although this was only tested for 1 day on an unstable build (too hot thermals). More tests are needed, feel free to try and post what you observe.
hiperglyde said:
Nah, it's aosp
Click to expand...
Click to collapse
Many AOSP builds are still on Xiaomi underlying code. The test would be to install the TWRP mentioned and take a backup of boot and dtbo partitions. Stay on EXT4. Then flash the restore TWRP provided and see if it boots. I user has already made it to the logo screen on AOSP using this method. He is using an unencrypted partition though. If you are on an encrypted partition the likelihood of it working is higher. The TWRP is bootable from fastboot as well so you will be able to access recovery. Advise you save the backup to removeable media / computer before flashing. Report back your results please.
Hey There.
I am trying to mount the fsqtab.qcom an do not get how to do it on my Mi9 using these directions?
The fstab.qcom included MUST be placed in /vendor/etc/ OR YOUR PHONE WILL NOT BE ABLE TO MOUNT THE DATA PARTITION!!!! So your next step is to copy the fstab.qcom via a root browser or from Minimal ADB and Fastboot. Boot to Recovery (hold power + volume up, release power button when the boot logo appears), then run from a terminal: adb push fstab.qcom /vendor/etc/fstab.qcom
How do you do whats listed above 'precisely'?
I can make everything else work. I just cannot seem to get this file inserted in Vendor?
Can you help please
(my profile says senior member but I am really not )
Great work!! Thanks for the kernel.
Any chance Kcal will be possible?
Finaly installed it on aosp extended.Thanks for developer
Bryceicle1971 said:
Hey There.
I am trying to mount the fsqtab.qcom an do not get how to do it on my Mi9 using these directions?
The fstab.qcom included MUST be placed in /vendor/etc/ OR YOUR PHONE WILL NOT BE ABLE TO MOUNT THE DATA PARTITION!!!! So your next step is to copy the fstab.qcom via a root browser or from Minimal ADB and Fastboot. Boot to Recovery (hold power + volume up, release power button when the boot logo appears), then run from a terminal: adb push fstab.qcom /vendor/etc/fstab.qcom
How do you do whats listed above 'precisely'?
I can make everything else work. I just cannot seem to get this file inserted in Vendor?
Can you help please
(my profile says senior member but I am really not )
Click to expand...
Click to collapse
Did you turn on the option ADB sideload in twrp? Under advanced?
*justintime* said:
Did you turn on the option ADB sideload in twrp? Under advanced?
Click to expand...
Click to collapse
I just installed it via root browser
Two ways you can do:
1.To use root explorer copy fstab.qcm under /vendor/etc ...
2.Enter TWRP and mount vendor parition, then copy fstab.qcm under /vendor/etc ...
Kris
QUOTE=Bryceicle1971;80122399]Hey There.
I am trying to mount the fsqtab.qcom an do not get how to do it on my Mi9 using these directions?
The fstab.qcom included MUST be placed in /vendor/etc/ OR YOUR PHONE WILL NOT BE ABLE TO MOUNT THE DATA PARTITION!!!! So your next step is to copy the fstab.qcom via a root browser or from Minimal ADB and Fastboot. Boot to Recovery (hold power + volume up, release power button when the boot logo appears), then run from a terminal: adb push fstab.qcom /vendor/etc/fstab.qcom
How do you do whats listed above 'precisely'?
I can make everything else work. I just cannot seem to get this file inserted in Vendor?
Can you help please
(my profile says senior member but I am really not )[/QUOTE]
*justintime* said:
Did you turn on the option ADB sideload in twrp? Under advanced?
Click to expand...
Click to collapse
No. Does that allow the terminal to find the file in your USB?
I've been leaving the extracted files in my c-type USB plugged into the cell
---------- Post added at 10:30 AM ---------- Previous post was at 10:26 AM ----------
Kris Chen said:
Two ways you can do:
1.To use root explorer copy fstab.qcm under /vendor/etc ...
2.Enter TWRP and mount vendor parition, then copy fstab.qcm under /vendor/etc ...
Kris
QUOTE=Bryceicle1971;80122399]Hey There.
I am trying to mount the fsqtab.qcom an do not get how to do it on my Mi9 using these directions?
The fstab.qcom included MUST be placed in /vendor/etc/ OR YOUR PHONE WILL NOT BE ABLE TO MOUNT THE DATA PARTITION!!!! So your next step is to copy the fstab.qcom via a root browser or from Minimal ADB and Fastboot. Boot to Recovery (hold power + volume up, release power button when the boot logo appears), then run from a terminal: adb push fstab.qcom /vendor/etc/fstab.qcom
How do you do whats listed above 'precisely'?
I can make everything else work. I just cannot seem to get this file inserted in Vendor?
Can you help please
(my profile says senior member but I am really not )
Click to expand...
Click to collapse
[/QUOTE]
Thanks. I'll try your an other suggestions
*justintime* said:
Did you turn on the option ADB sideload in twrp? Under advanced?
Click to expand...
Click to collapse
Have tried to turn on ADB side load an it keeps failing after a long wait? What am i missing?
---------- Post added at 12:07 PM ---------- Previous post was at 12:00 PM ----------
mslezak said:
[M.O.D. KERNEL] Mi 9 Android 9 Pie GPU830mhz F2FS data/cache Fsync LZ4 ZRAM [STABLE]
MOD-KERNEL-TOOLS.zip -> kernel and all software to use the features of the kernel: https://mega.nz/#!TopRnIDK!6GbL_8QPToK0oLCSDnJ_d9EUnZ9AflDgf-9pu6JCiKo
GitHub Source: https://github.com/mrslezak/Xiaomi_Kernel_OpenSource branch: cepheus-p-oss
Telegram Group: https://t.me/joinchat/NNTe_E9G4ZcZKXCUrajFYQ
Telegram Name: @MattOftheDead
M.O.D. Kernel (MattoftheDead). This is a kernel project that has been going on for months now behind the scenes. It is STABLE, everything works, it runs on any MIUI based ROM (MIUI Global Dev, MIUI China Dev, MiGlobe, Xiaomi.eu, etc.). Android 9 (Pie) only as Android 10 has not been released and Xiaomi decided to change the kernel components (boot.img and dtbo.img will flash to Q, but no WIFI, no calls, and colors are "off."). If you install it and don't follow the tweak instructions, it runs exactly like stock. You can apply any tweaks you'd like. These include:
GPU 830mhz overclock - stable and smooth - most MIUI Dev based ROMs can enable via dialing *#*#8106#*#* - enable MaxFreq GPU Mode - you can test before installing. The GPU will throttle down when not being used to a lower mhz.
FSync toggle (enable/disable) - disable gives higher speed at the risk of data corruption if a system crash occurs. Note I've used this 4 months with no issues, if you use stable software you are less likely to run into problems. Eventually dynamic Fsync will be added if I ever have time or help (writes to disk when screen is off, safer than just disabling).
ZRAM LZ4 data encryption enabled - fastest encryption method, smaller ZRAM sizes (512mb is good) work very well [2GB is the ZRAM default, LZO is the default kernel compression which is slow]
F2FS data and cache partition support - support with full ICE AES 256bit encryption. Note only @mauronofrio TWRP 3.3.1-39 + supports F2FS partition mounting so you MUST use this recovery!!!
F2FS has been tested on MIUI Global Dev 9.6.27 and Xiaomi.eu 9.7.22 thus far and read/write speeds and app access are definitely fast. Support was enabled by working directly with @mauronofrio on XDA (thanks Mauro) so we originated F2FS support for Mi9 - there are also F2FS kernel tweaks that help the speed.
Now if you want to install this kernel, you can right away and use it on EXT4 (default for all Xiaomi ROMs). To use with F2FS you will need to adb push a modified fstab.qcom file to /vendor/etc/fstab.qcom. Or you can use a root browser and just copy it over if you are currently rooted. It will boot either EXT4 or F2FS with encryption with the same fstab.qcom file. And then you will enter the danger zone once it is time to enable F2FS! You will have to backup all your apps. This means MiCloud (for root apps this is good, saves APKs and settings), Google backup (the backup frequency seems random to me, although if a backup is recent you'll get all your PlayStore apps back), Titanium Backup Pro ($ PAID, you can't use the free version as the internal data will be wiped when the partition is formatted), or search for another backup solution online. Nandroid backups won't work after conversion either as they include the partition format (EXT4, F2FS, etc.) so don't bother. More on this later in the thread.
To save everyone time and space (I don't have a good way to upload files), join my Telegram channel. Read the instructions and you will be up and running in no time. They are outlined in great detail there along with tons of other discussions around optimizations and benchmarks. However, I will attempt to summarize installation on XDA as best as I can. Telegram Link: https://t.me/joinchat/NNTe_E9G4ZcZKXCUrajFYQ -> XDA MI9 Optimization and Overclocking
I have also provided a Mega.nz zip file with a bunch of tools you can use to get up and running. It comes with the modified kernel (boot.img GPU830_F2FS_Fsync_CRC_LZ4_boot.img and dtbo.img GPU830_F2FS_Fsync_CRC_LZ4_dtbo.img), the modified fstab.qcom file for encrypted F2FS support, the Mauronofrio TWRP version required twrp-3.3.1-39-cepheus-mauronofrio.img, Magisk-v19.4.zip Canary, MagiskManager-v7.3.2.apk, SmartPack Kernel Manager com.smartpack.kernelmanager-v8.7-20190815-release.apk to set tweaks along with a file SmartPack_init.d.txt that can be copied and pasted directly into SmartPack (in the menu, Init.d, enable Init.d, add new, copy and paste the text in, save it, and everything will be setup optimally) - NOTE init.d does not work on all ROMs (even with it enabled on boot in the software), so you may need to click on the profile under Init.d manually to execute after boot. A Franco Kernel Manager CPU Profile is included Maxfreq-CPUs-FK_Kernel_Manager_Profile if you use FK since it won't let you set CPU frequencies in the software (included just for people who have FK or prefer it over SmartPack - it won't setup ZRAM to LZ4 or 512mb for you, or toggle FSync, so you will have to manually do it if you use FK). Also the latest Windows Minimal ADB and Fastboot minimal_adb_fastboot_v1.4.3_setup.exe is included, although you probably already have it since you have a bootloader unlocked phone
Now some very basic steps to the more complicated, much you should already know since you clicked on a custom kernel post!!!!
Flashing Mauro TWRP:
Boot Mi9 holding Power + Volume Down
Hook up to your phone to the PC with the charging cable
Open a command prompt. Go to your Minimal ADB and Fastboot folder.
Type: fastboot devices
And hopefully you see your device ID pop up. If not you don't have the right driver, the cable is bad, or something else is wrong. Search Goggle.
Next flash Mauro TWRP:
fastboot flash recovery twrp-3.3.1-39-cepheus-mauronofrio.img
Hopefully you see it flash to the device in a few seconds sucessfully and it's ready to go.
Booting to TWRP:
Turn off your phone. Now hold down power + volume up. Once the boot Logo appears, let go of the power button but keep holding volume up. TWRP should boot. If not, try again. I usually have to remove the phone case.
Flashing boot.img, dtbo.img, and Magisk19.4.zip:
You can do this manually or from a TWRP backup. In the MOD-KERNEL-TOOLS zip file, you can unzip [TWRP-Restore-Backup] MODKernel-Magisk19.4 to internal storage or OTA SD card / USB drive, click Restore, and restore boot and dtbo. Then it is already patched with Magisk 19.4 (you have root access). Then reboot. Now for the more manual method. You can select Install. Then select Flash Image. Select GPU830_F2FS_Fsync_CRC_LZ4_boot.img and flash to the boot partition. After flashing, go back in TWRP and flash GPU830_F2FS_Fsync_CRC_LZ4_dtbo.img to the dtbo partition. Now go back in TWRP again and click on Flash Zip. Select Magisk19.4.zip and flash. After this completes, reboot.
Setting up F2FS data and cache partitions:
The process to setup F2FS is to first download a compatible ROM if you don't already have one installed (MIUI based, Android 9 (Pie), this includes MIUI Dev, Xiaomi.eu, MiGlobe, Revolution OS, etc.) ENSURE ANDROID 9 PIE: 9.8.1 variants are usually the last Android Pie build. After downloading, you can install it as a new phone after following the guide below so don't bother setting anything up other than a Xiaomi account login if prompted; don't restore apps yet either. You can setup with defaults now and not import apps. You should make it to the home screen though. All apps will be deleted after formatting.
You will be setting up a new phone and will have to login to all your apps over again. So to reiterate, MAKE COPIES OF ALL YOUR PROGRAMS BEFORE DOING THIS! Xiaomi Cloud, Google Backup, Titanium Backup, etc. - use something not on your phone, NOT a Nandroid backup! NOT in internal storage! (it will be wiped)!
The fstab.qcom included MUST be placed in /vendor/etc/ OR YOUR PHONE WILL NOT BE ABLE TO MOUNT THE DATA PARTITION!!!! So your next step is to copy the fstab.qcom via a root browser or from Minimal ADB and Fastboot. Boot to Recovery (hold power + volume up, release power button when the boot logo appears), then run from a terminal: adb push fstab.qcom /vendor/etc/fstab.qcom
Now in TWRP, you will need to go to Wipe, Advanced Wipe, Click Data, Repair or Change File System, Change File System, now click F2FS. Swipe to change. It will format and you'll have nothing on your data partition. Next format cache. Go to Wipe, Advanced Wipe, Click Cache, Repair or Change File System, Change File System, now click F2FS. Swipe to change. Again it will format and be wiped.
Next, reboot to System. The device should boot up and welcome you to your "new" device. You will have to login to your Xiaomi account if it is associated with the device. Then you can choose to restore from a Google Backup and next from Xiaomi Cloud. You can do either one to get your apps back. I would suggest Xiaomi Cloud after Google completes all its downloads - it will place icons in the right places and install your root apps if you had them. If you accidentally wipe your partition later (as I just did while making this tutorial, ouch), you can skip importing, get to the main screen, enable file transfer from the connected PC, then copy the Nandroid backup you absolutely should make and transfer to a PC right after setting all your apps up (logging in etc.). Now for this Nandroid backup you should backup data, boot, dtbo, and vendor partitions (don't forget that fstab.qcom we put here!). Even if you save to your internal device initially, be sure you later put it on a PC for safe keeping. I am just now copying back my TWRP directory to restore my phone this moment as I type...
Pictures are attached below to show the TWRP screens. Also the settings for the best performance using Smart Pack kernel manager included in the ZIP file download (will add after I restore). And a picture of the dial code + GPU Max Freq screen where you turn on the 830mhz GPU clock. Enjoy!
Links to XDA files included in the MOD-KERNEL-TOOLS.zip:
Mauro TWRP
https://forum.xda-developers.com/Mi-9/development/recovery-unofficial-twrp-xiaomi-mi-9-t3905825
SmartPack Kernel Manger
https://forum.xda-developers.com/android/apps-games/app-smartpack-kernel-manager-t3854717
FK Kernel Manager CPU Profile
https://play.google.com/store/apps/details?id=com.franco.kernel&hl=en_US
Magisk
https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
Minimal ADB and Fastboot
https://forum.xda-developers.com/showthread.php?t=2317790
Click to expand...
Click to collapse
No system no boot an a bootloop. This enhancement is a bit complex an I'm kind of confused?
Bryceicle1971 said:
Have tried to turn on ADB side load an it keeps failing after a long wait? What am i missing?
---------- Post added at 12:07 PM ---------- Previous post was at 12:00 PM ----------
No system no boot an a bootloop. This enhancement is a bit complex an I'm kind of confused?
Click to expand...
Click to collapse
Witch rom are you using?
Inviato dal mio MI 9 utilizzando Tapatalk
smeroni68 said:
Witch rom are you using?
Inviato dal mio MI 9 utilizzando Tapatalk
Click to expand...
Click to collapse
Xiaomi.eu for Mi9 9.7.22 v10-9
Bryceicle1971 said:
Have tried to turn on ADB side load an it keeps failing after a long wait? What am i missing?
---------- Post added at 12:07 PM ---------- Previous post was at 12:00 PM ----------
No system no boot an a bootloop. This enhancement is a bit complex an I'm kind of confused?
Click to expand...
Click to collapse
You copied fstab.qcom to /vendor/etc/? Boot into recovery, attached to your PC. Then from a command prompt in Minimal ADB and Fastboot,copy fstab.qcom there. Then type: adb devices. It should show a device ID. Then type adb push fstab.qcom /vendor/etc/. It should say succeeded. Then reboot. This only makes a difference if you are on F2FS.
If you aren't booting to system go ahead and try the TWRP recovery version - unzip and flash that package to boot and dtbo from TWRP Restore. It's already patched with Magisk 19.4 and several people are on it that had issues flashing the files separately.