Kernel rebased and cleaned up, latest CL tag, LLVM Clang 15 with ThinLTO, CFI, and SCS, Wireguard kernel driver, lz4 fast decompress loop, exFAT kernel driver from mainline backport, color shift fix, diag HAL, blobs and firmware update from stock, lz4 for zram, GNSS improvements, June security patch, some APN default config updates, and many fixes.
Please follow the wiki for detailed install instructions. I will not provide support if you fail to follow the required steps.
Boot your phone into bootloader mode. You can either
hold power + volume down button
or adb reboot bootloader
Connect your phone to a computer
Run fastboot flash vendor_boot vendor_boot.img in your cmd/powershell/terminal
Run fastboot flash boot pe_recovery_file_name.img in your cmd/powershell/terminal
Hold power + volume up to boot into recovery, or fastboot reboot recovery
In PE recovery, select Factory reset" --> "Format data/factory reset
Go back to main menu and select “Apply update” –> “Apply from ADB”
Run adb sideload pe_rom_file_name.zip in your cmd/powershell/terminal and wait until it finishes
Reboot to system
Device Specific Changes
Etude kernel: Op.12 Op.2
the kernel source has been rebased and cleaned up
built with Prelude Clang based on the latest LLVM Clang 15 source
enabled ThinLTO, CFI, and Shadow Call Stack
fixed lots of warnings from Clang 15
introduced a page_alloc fix from upstream that may help alleviate memory pressure
imported Wireguard kernel driver 1.0.20211208
backported lz4’s fast decompress loop from upstream lz4 1.9.3, which offers more than 10% throughput increase in zram decompression
fixed a potential lz4 out-of-bound read
imported the latest exFAT kernel driver backport from mainline kernel. OTG USB drive with exFAT filesystem should work now.
dropped 90Hz timings from all panels’ dts. This should fix the color shift during refresh rate changes, especially when displaying dark content.
Imported diag HAL and its USB init entries. Apps like Network Signal Guru should work now.
Optimized native executables for Cortex-A55
Updated vendor blobs from MIUI Stable V22.214.171.124 for Mi 11 Ultra/Pro and MIUI Stable V126.96.36.199 for Mi 11
also updated the included firmware from MIUI Stable V188.8.131.52 for Mi 11
Updated display blobs from LA.UM.9.14.r1-19300.01-LAHAINA.QSSI12.0
Updated the display HAL from LA.UM.9.14.r1-19200-LAHAINA.QSSI12.0
Switched zram compression algorithm from lzo-rle to lz4
lz4 with my fast decompress loop backport offers higher throughput and lower latency than lzo-rle does
lz4’s compression ratio is slightly less than lzo-rle, but Mi 11’s 8GB/12GB RAM does not encounter memory pressure very frequently, so memory bandwidth and latency is more preferable than compression ratio
Synced some telephony packages and properties with QSSI
Lots of GNSS improvement
updated GNSS HAL to LA.UM.9.14.r1-19800-LAHAINA.QSSI13.0
synced some GPS configs with stock
picked a few NTP servers that can respond closer to your location, so your time synchronization takes less time which leads to faster location fix
Disabled redir_party_num. This should fix the issue of incorrect incoming caller phone number format for some carriers.
Added a “Reboot to fastbootd” button to the advanced reboot menu
ROM Side Changes
June security patch
Fixed styling issue on DocumentsUI
Fixed the issue of the location indicator getting triggered by cellular network activities
Fixed a font style discrepancy in the Pixel launcher
Reworked several default APN configs
Fixed the incorrect clock location caused by the network traffic indicator
One of the gapps update may mess with the haptic feedback strength. If your haptic feedback feels weak, go to Settings/Accessibility/Vibration & haptics, disable all 3 toggles, and re-enable them. You only need to do it once, and the haptic strength will remain normal afterwards.
Light sensor reading is affected by the screen brightness. This may cause jumpy auto brightness under low light.
We have two light sensors, one in the front under the display panel, and the other on the back. Currently only the front one is reported as an android.sensor.light sensor, of which the auto brightness is based off. The problem is that the light emitted by the display panel also affects the front light sensor, so the sensor reports a high value when the screen is displaying bright white content, even if the phone is actually in a dark environment with little ambient light. (What could go wrong when you put an ambient light sensor directly under a light source?) MIUI uses some algorithm to combine the reading of both light sensors on the system side in libsensor_cal.so, but we do not have such mechanism on AOSP. More work is needed to bring up our own solution in the future.
A recent GMS update may start showing un-clickable system update notification. It may also spam your logs with attempts to download system updates designed for actual Pixel phones. It may result in slightly higher battery drain and heat generation especially when you are connected to WiFi. We are aware of this issue. Currently we do not have a perfect solution.
The AOSP Camera2 app may take a severely cropped and blurry photo using the main sensor on the back. This is caused by an incorrect selection of default image ratio and resolution. In the main UI of Camera2, swipe to the right to reveal the photo/video switch buttons. On the bottom right corner, press the small “gear” icon to enter settings. In “Resolution and quality”, change “Back camera photo” to the second option: (4:3) 13.1 megapixels.
The statusbar height may be incorrect in landscape. It will be fixed in the next release.