Skip to content

Releases: zwajton/OomAdjuster

OOM Adjusterer v11-5

25 Apr 14:35
b5b433d

Choose a tag to compare

v11.5 — WebUI, Two-Tier OOM Scoring & ART Management

See CHANGELOG.md for the full list. Highlights:

  • WebUI via action button in KernelSU, APatch, Magisk (auto-installs KSU WebUI Standalone if needed)
  • Apps tab — per-app tier toggle, suggested list, custom packages
  • Device tab — live daemon status and per-app oom_score_adj
  • ART tab — dynamic APEX version detection, smart uninstall with GMS service disables
  • Two-tier OOM — Critical (-1000) and Restartable (-999), enforced by the native C daemon
  • README rewritten with full WebUI and config documentation

⚠️ Magisk users: grant superuser when prompted during KSU WebUI Standalone install.

OOM Adjusterer v11

19 Apr 15:14
53a0eaf

Choose a tag to compare

v11 — Native C OOM Guardian

The 100ms OOM-protection loop has been rewritten as a native C daemon (oom_guardian), statically compiled for arm64 and arm32. No extra modules or dependencies required — just flash and go.

What changed

  • oom_guardian runs permanently in memory and polls /proc directly, replacing the shell loop that had to fork new processes every 100ms
  • Under memory pressure the shell loop could stall (slow fork, slow pidof); the C daemon is unaffected
  • Shell loop is kept as an automatic fallback for unsupported architectures — no regression on older devices
  • Fixed CRLF line ending issue that caused boot failure on zips built on Windows

Result: oom_score_adj adjustments are faster and more consistent, reducing the window where protected apps can be killed during heavy RAM pressure.

OOM Adjusterer v10.5

18 Apr 12:49
2617259

Choose a tag to compare

Full rewrite of service.sh: 448 lines → 185 lines
Replace 7 concurrent loops with 2 (OOM protection at 100ms, memory management at 10s) plus optional watchdog
Fix logging: use printf >> with no rotation or tmp_log race; first entry written with > to verify path on each boot
Replace config.json with config.conf (plain key=value, sourced directly — no grep/awk parsing required)
Single /proc/meminfo read per 10s cycle shared across all checks
LRU scanner now dynamically skips all protected_apps, not hardcoded
Remove malformed pm clear- commands from watchdog
Bump version to v10.5 / versionCode 105

OOM Adjusterer v10

16 Apr 17:55
380e070

Choose a tag to compare

What's Changed

  • Git ignore by @zwajton in #1
  • Update OOM Adjuster to v6 and add uninstall script by @zwajton in #2
  • Fixed install issue and cleanup by @zwajton in #3
  • Version 8, Critical fixes by @zwajton in #5
  • Version 8 hotfix by @zwajton in #6
  • Release v9: Add PoGo memory killer and PolygonX fixes by @zwajton in #7
  • Add config options for watchdog and PoGo killer by @zwajton in #8
  • Release v10: Remove phantom fix, protect apps from LRU, fix anti-kill… by @zwajton in #9

New Contributors

Full Changelog: https://github.com/zwajton/OomAdjuster/commits/v10

OOM Adjusterer v9.1

02 Nov 20:01
9038c9e

Choose a tag to compare

What's Changed

Version 9.1

  • Configurable features: Enable/disable watchdog and phantom_fix.sh via config.json
  • Customizable thresholds: Adjust Pokémon GO Memory killer values in config.json
  • Config location: /data/adb/modules/oom_adjuster/config.json

New Contributors

Full Changelog: https://github.com/zwajton/OomAdjuster/commits/v9.1

OOM Adjusterer v9

28 Oct 18:18
8ad9cc3

Choose a tag to compare

What's Changed

  • Release v9: Add PoGo memory killer and PolygonX fixes by @zwajton in #7
    • Added Pokémon Go memory monitor - Automatically kills PoGo when memory usage exceeds thresholds (95% system RAM or 2800MB PoGo usage)
  • Fixed PolygonX watchdog - Now reliably restarts after LMKD kills
  • Removed Pokémon Go from the oom_score_adj and let PolygonX restart the process.
  • More targeted approach - Focuses on root cause (PoGo memory leaks) instead of random app killing

Full Changelog: https://github.com/zwajton/OomAdjuster/commits/v9

OOM Adjusterer v8

08 Oct 13:28
64851c2

Choose a tag to compare

Version 8

OOM Score Adjustment Fix:

  • Fixed critical issue where oom_score_adj adjustments were not being applied to protected processes
  • Now properly sets OOM score to -1000 for all protected apps, preventing them from being killed by the system
    Process Priority Enhancement:
  • Renice operations now correctly apply -18 priority to protected processes
  • Improved CPU scheduling for better performance of protected applications
    Stability Improvements:
  • Resolved issues with process detection and priority application
  • More reliable protection for Pokémon GO and companion applications

This version ensures that your protected apps maintain maximum system priority and are effectively shielded from out-of-memory killer mechanisms.

OOM Adjusterer v7

07 Oct 11:48
c7bf7f3

Choose a tag to compare

What's Changed

v7 - Fixes and Performance Improvements

This update introduces dynamic memory management and improves module stability.

  • Dynamic Sleep Interval:
    • Introduces a dynamic sleep_interval to make the module react faster to high memory usage (10 seconds instead of 30 seconds) by speeding up cache drops.
  • Faster OOM Adjustment:
    • The main adjustment loop now runs five times faster (every 100ms) for more consistent application of process priorities.
  • Safer Uninstallation:
    • The uninstall script has been cleaned up, removing unsafe system calls (cmd/pkill) to ensure a reliable uninstall process.
  • Fixes: Resolved minor installation issues.

Full Changelog: https://github.com/zwajton/OomAdjuster/commits/v7

OOM Adjusterer v6

04 Oct 09:32
8e5ee14

Choose a tag to compare

Hotfix

As of now it doesn't work to install the version 6 update, but it works upgrading from version 5 to version 6 using the update button in modules.

What's Changed

  • Update OOM Adjuster to v6 and add uninstall script by @zwajton in #2

Removed Aerilate from the script
Added uninstall script
Decreased oom adjustment from 500 ms to 100 ms
Added updateJson to module.prop

New Contributors

Full Changelog: https://github.com/zwajton/OomAdjuster/commits/v6

OOM Adjusterer v5

14 Jul 14:32

Choose a tag to compare

Version 5
Added changelog.md
Added update.json

Version 4
• This Magisk module keeps important apps like PolygonX, Aerilate, and Pokémon GO safe from being terminated by Android's low memory killer (OOM).
• It continuously sets their oom_score_adj to -1000 and optionally applies legacy oom_adj if supported by the kernel.
• Boosts performance by increasing CPU scheduling priority (renice -18) for these apps.
• Includes a watchdog that automatically restarts PolygonX's foreground service if the app is killed or crashes.
• Features smart handling of Pokémon GO PID changes, pausing adjustments temporarily to avoid conflicts.
• Includes dynamic log rotation to maintain a lightweight, readable logfile.
📄 Logfile location: /data/adb/modules/oom_adjuster/oom_adjuster.log
• Memory Optimization (🆕 !)
• Drop_caches loop: Frees up system RAM every 30 seconds if memory is low.
• LRU memory deprioritizer: Scans Android’s Least Recently Used (LRU) process list and:
• • Force-stops CACHED_EMPTY apps (procState 19).
• • Sets oom_score_adj to 999 for less critical background processes (procState 14–18) to help LMK prioritize better.