Featured image of post PixelExperience 12.1 / 12.1 Plus 20220521-0137 Official Venus Build

PixelExperience 12.1 / 12.1 Plus 20220521-0137 Official Venus Build

Lots of bug fixes and May security patch.


  • Please follow the wiki for detailed install instructions. I will not provide support if you fail to follow the required steps.
  • If you are on my previous PE 12 / 12 Plus builds, you can directly OTA or dirty flash in recovery. A concise version of clean flash guide for the experienced users:
    • Download the vendor_boot.img (
    • Download PE recovery from the official PE website
    • 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 in your cmd/powershell/terminal and wait until it finishes
    • Reboot to system

Device Specific Changes

  • Etude kernel: Op.12 Op.1
    • enabled QCE device for Widevine L1
    • fixed an HBM issue that broke FOD under direct sunlight
    • dropped the reboot-to-recovery action when three buttons are pressed simultaneously
    • fixed an incorrect cs35l41 D-type amp driver change that broke handset-speaker switch in call and caused echos in VoIP
    • disabled a few configs that depends on debugfs
  • Enabled IEEE802.11ax (WiFi 6) support in WiFi Hotspot
  • Synced a few WiFi related configs
    • Declared 6GHz support in WiFi overlay. Whether it will work or not depends on your local regulations.
    • Imported a couple of missing wpa_supplicant configs
    • Enabled Automatic Channel Selection
  • Talked to Netflix and asked them to fix the HDR support in the Netflix app
    • Netflix reported no HDR support at the time when the last version was released because Netflix has its own device capability database. Any mismatch nukes all HDR support including the basic HDR10. Venus does not have certified Dolby Vision support from stock. I added Dolby Vision from mars/star (Mi 11 Pro/Ultra).
    • After talking to Netflix, our Dolby Vision support no longer drops all HDR capabilities. Netflix still does not recognize Dolby Vision, but HDR10 should be there.
  • Added dynamic thermal profile under Settings/Battery/Optimization profiles. You can switch to a different thermal profile on a per-app basis.
    • Warning: Some thermal profiles have higher thermal throttling thresholds. Your phone may maintain higher CPU/GPU frequencies for a longer time, but that also means more heat will be generated. Use it at your own risk and make sure you have proper cooling.
  • Dropped the useless thermal HAL because we only need mi_thermald
  • Fixed an issue that crashed the help dialog when entering the Ambient Display menu
  • Re-drew rounded corner vector assets. The four corners of the display panel no longer have jagged edges.
  • (Allegedly) Fixed a rare issue of repeating loops of lockscreen-to-boot-animation crashes
  • Updated to the latest NXP NFC tag to fix a permission issue in Bluetooth devices that use NFC to pair/connect
  • Updated qcom media HAL

ROM Side Changes

  • May security patch
  • Added a toggle to disable screen-off FOD in Settings/Display
  • Added and fixed a few APN configs
  • Fixed the battery widget for supported Bluetooth devices
  • Fixed the rotation button for 2-button navbar mode
  • Plus edition:
    • Fixed the statusbar brightness control
    • Reverted white QS background to the default AOSP style

Known Issues

  • 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, but we do not have such mechanism on AOSP. More work is needed to bring up our own solution in the future.

Download | XDA thread | Support group

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy