Skip to content

v1.6.0: Android 16, ZRAM, ...

Choose a tag to compare

@JoshuaDoes JoshuaDoes released this 28 Aug 17:49
· 2 commits to dev since this release

Still not v2 yet... but we're getting closer! This build is intended to maintain compatibility with stock public A16 builds from Google. It also employs a number of other changes, upon which further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

install:

  • Support Android 16 initial release (public stable)
  • Continue to support Android 15 (post-November 2024) until further notice
  • Support Pixel 9a
  • Support Pixel 10 series
  • Support Pixel 11 series
  • Support Pixel 12 series (with no known codename for 12a, alas slowltexx as temp)
  • Stop symlinking service script into Magisk service.d directory, it actually runs fine now from only the module's directory (possibly an old bug in Magisk?)

init:

  • Introduce task_profiles ProcessCapacityMax MaxPerformance to all patched services
  • Support 32-bit Zygote on 64-bit systems when present (still no support for 32-bit only systems)
  • Support HWC 2.4 for legacy Tensor
  • Support Google radioext
  • Add missing cameraserver patches
  • Add missing bootloop protection for keystore2

service:

  • Support adjusting size of ZRAM block device zram0, now changed to be total physical RAM - 1GB (i.e. Pixel 6 Pro with 12GB will now have 11GB of zram, effectively creating 23GB of RAM under lz44eh's max compression ratio of 2x, your mileage may vary)
  • Drop Pixel scheduler frequency back down to 120Hz
  • Allow ZRAM to reach 99% before triggering LMKD (Low Memory Killer Daemon)
  • Enable support for transparent huge pages (THP) in the kernel
  • Drop swappiness from 1 to 0
  • Drop VFS cache pressure from 5 to 1
  • Tell SurfaceFlinger to sample regions at 120Hz instead of 240Hz like before
  • Adjust all schedgroups to max out their uclamps
  • Adjust all cpusets (except for camera sets) to run on all cores
  • Read from /dev/cpuset/cpus to obtain max core range for cpusets running on all cores (fixes the idle 9th core on P8 series)
  • Fix camera-daemon cpuset to use all cores (like stock) instead of only little
  • Log all ptune actions under /cache/ptune.log (alternatively /data/cache/ptune.log if your device does not bind the cache folder anymore)
  • Handle execution flow all from the service context, no need for a post-fs-data script

Donations

All donations are appreciated and help me stay awake at night to work on this more. Even if it's not much, it helps more than not in the long run! You can even become a sponsor of me if you're okay with a recurring monthly charge.

GitHub Sponsors