Featured image of post PixelExperience 12.1 / 12.1 Plus 20220415-1325 Official Polaris Build

PixelExperience 12.1 / 12.1 Plus 20220415-1325 Official Polaris Build

Linux 4.9.310, tons of kernel optimizations, rounded corner fix, new display HAL, April security patch, and the Plus edition!


  • Formatting data with PE recovery is REQUIRED for clean flash
    • DO NOT use any other recovery
    • The firmware is included with a different keymaster.img from perseus. DO NOT flash your own firmware.
    • Keymaster is bumped to 4.0 for encryption, and cust partition is mounted as /metadata. You WILL NOT be able to boot TWRP on PE 12.1. OrangeFox R11.1_1 or newer can boot but is not capable of decrypting the data partition.
    • To switch to other ROMs, format data in PE recovery first, and then install another recovery. You may need to re-flash the required firmware, if the ROM you are going to flash does not include one.
  • You can dirty flash from my previous PE 12 / 12.1 builds. You can dirty flash the Plus edition on top of PE 12 / 12.1 regular builds.
  • You cannot upgrade from android 11 directly. Formatting data is required.

PE recovery flash guide

  • Download PE recovery from the official PE website
  • Boot your phone into fastboot mode. You can either
    • hold power + volume down button
    • or adb reboot bootloader
    • or use the Reboot to bootloader option in TWRP/OrangeFox
  • Connect your phone to a computer
  • Run fastboot flash recovery pe_recovery_file_name.img in your cmd/powershell/terminal
  • Hold power + volume up to boot into recovery

PE 12.1 flash guide

  • Boot into PE recovery
  • Select Factory reset" --> "Format data/factory reset. You phone should say that /data, /cache, and /metadata have been formatted.
  • Go back to main menu and select “Apply update” –> “Apply from ADB”
  • Connect your phone to a computer
  • Run adb sideload in your cmd/powershell/terminal and wait until it finishes
  • Reboot to system

Device Specific Changes

  • Etude kernel: Op.12 No.3
    • Linux 4.9.310
    • CodeLinaro tag LA.UM.10.3.r1-01700-sdm845.0
    • adapted qcom’s kgsl perf counter change to non-privileged scratch buffer
    • ported compiler friendly vectorization for XOR from mainline kernel
    • ported arm64-specific crc32_be optimization from mainline kernel
    • ported Arm Optimized Routines for strcmp and strncmp from mainline kernel
    • merged and adapted lots of branch prediction hardening code from android common kernel
    • fixed qcom’s PSCI BP hardening mitigation for kryo2xx/3xx cores after new macro changes and fine-grained capabilities
    • built with the latest LLVM Clang 15.0
    • DO NOT use another kernel. Just don’t.
  • Fixed rounded corners. (Finally.)
  • Updated the display HAL from CodeLinaro branch display.lnx.4.3.r1-rel
  • Plus edition: Brought back LiveDisplay where you can choose color profiles and calibrate the screen

ROM Side Changes

  • April security patch
  • Fixed charging animation not appearing
  • Fixed unlock sound playing repeatedly
  • Fixed incorrect APN configs for Vodafone NL
  • Updated translations
  • Plus edition has features including but not limited to
    • Gesture customizations
    • Power and volume button actions
    • Network traffic indicator
    • Statusbar customizations
    • Lockscreen customizations
    • Per-app volume control
    • Brightness related options

Download | XDA thread

Please report issues to jjpprrrr.

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