Skip to content

HyperCore v6.10.0 — ZRAM Pool Sizing & Density Pass

Choose a tag to compare

@itswill00 itswill00 released this 29 Sep 10:51
· 32 commits to main since this release

HyperOS hands a 6 GB compressed swap pool to a phone with 8 GB of RAM. The extra capacity is not free — it raises the ceiling for compression work and keeps kswapd busy, so this release lets you size the pool properly and reclaims the vertical space the WebUI was wasting while it did.

ZRAM pool sizing

WebUI → Home → Memory now resizes the compressed swap pool: Stock (ROM default), 4 GB (daily), 2 GB (gaming) and Off.

The choice is saved to zram.conf and applied once per boot, after the ROM's init.mt6789.rc has already run swapon_all — so the resize wins instead of being overwritten on the next boot.

Reboot-gated on purpose. swapoff has to pull every compressed page back into RAM in one go, and doing that mid-game is a freeze. The card therefore saves your pick and offers a Reboot button with a confirmation dialog, rather than pretending the change is instant. A 15-second cooldown sits between size changes because every one of them costs a reboot.

Two safety paths back it up: the resize is skipped when MemAvailable cannot absorb the swap in use plus a 512 MB margin, and a failed disksize write re-mkswap/swapons the device rather than leaving you swapless. The factory pool is captured at install time and restored on uninstall.

With no pool at all, swappiness settles on 20 instead of 100 — a high value with nothing to swap into only makes kswapd scan anonymous pages it can never reclaim.

Shrinking does not hand you free RAM instantly. What it buys is a smaller worst-case compression ceiling and calmer swap latency under load.

Fixes

The logs three-dot menu was unreachable. A header rule putting overflow: hidden on the button's wrapper also clipped the absolutely-positioned dropdown. The state toggled correctly on every tap, so it looked like a dead button rather than a CSS bug.

build.sh --deploy tripped its own integrity check. It refreshed the daemon binary but left customize.sh, scripts/stock_baseline.sh and checksums.txt at their installed hashes, so every local deploy logged [TAMPERING DETECTED]. All three are now synced.

Interface density

The WebUI was spending a lot of vertical space on chrome rather than content. List rows are 10 px instead of 12, section spacing and hero banners are trimmed, the Charger power grid is three columns instead of two, and the slider axis labels were dropped as duplicates of the quick-pick pills below them. The Dashboard fits about three more rows before it scrolls.

The standalone HyperMoon card became a single Quick Actions row with a live FPS readout in its subtitle, and the ZRAM card collapses to one line so the presets stay out of the way until you want them.

Upgrade notes

Nothing to do — flashing the zip is enough. The new Memory card is opt-in and defaults to Stock, so behaviour is untouched until you pick a size.