Featured image of post PixelExperience 12.1 / 12.1 Plus 20220726-1435 Official Venus Build

PixelExperience 12.1 / 12.1 Plus 20220726-1435 Official Venus Build

LLVM integrated assembler, many statusbar related fixes, July's security patch, fixed audio output device button crash, made sure the Updater app free up space, and added/fixed lots of APNs.


  • 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.2
    • enabled LLVM’s integrated assembler (LLVM_IAS=1)
    • built with an updated LLVM CLang 15
  • Fixed the statusbar height glitch in some apps’ landscape mode
    • Update: some apps (mostly apps with video playback, like YouTube) still has this issue. Investigation has started.
  • Adjusted the vertical position of QS statusbar to match the regular statusbar
  • Adjusted the deprecated status_bar_height entry to account for status_bar_padding_top
    • Google suggested all app developers to stop reading status_bar_height directly a long time ago and use a proper API instead
    • Some stubborn ass app devs are still using the value of status_bar_height to calculate the height of app components
    • As a result, these apps do not take the paddings above the statusbar into consideration, so their component may cuts into the actual statusbar area
    • To fix this issue, I deliberately report an “incorrect” status_bar_height value that has the padding included. This should make sure old apps retrieve a value that is equivalent to the one returned by the proper API.
  • Aligned the left padding of the following items with the regular statusbar
    • The clock in the QS statusbar is no longer on the edge of the front camera punch hole
    • The carrier text on the lockscreen is no longer on the edge of the front camera punch hole

ROM Side Changes

  • July security patch
  • Fixed the issue of audio output device button causing a SystemUI crash sometimes when the media is paused
  • The system updater app will free up its storage after OTA
  • Fixed the issue of Google’s SystemUpdate constantly retrying in the background, draining battery and building heat.
  • Updated lots of APNs

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.
  • 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.
  • Some apps may still have statusbar height glitch in landscape mode. Investigation has started.

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