Skip to content

Releases: Fawrz/Thrawl

Thrawl v1.1.0 (39-e4e060f)

21 Jun 01:19

Choose a tag to compare

Thrawl v1.1.0 (39-e4e060f)

  • Version: v1.1.0 (39-e4e060f)
  • Version code: 39
  • Commit: e4e060f

Assets

  • thrawl-*.zip — Magisk module ready to flash
  • SHA256SUMS — checksums for all assets
  • update.json — Magisk update manifest

Full Changelog: v1.0.1...v1.1.0

Thrawl v1.0.1

14 Jun 23:45

Choose a tag to compare

What's Changed

Bug Fixes

  • customize.sh: fixed set -e leak that could abort the installer silently on non-fatal errors
  • scripts/utils.sh: guarded helper functions to avoid overriding Magisk built-in ui_print/abort
  • build.ps1: fixed PowerShell error detection that falsely reported build failures from cargo-ndk stderr noise
  • build.ps1: removed workaround that leaked /LIBPATH flags into the Android target linker, causing clang link errors

Enhancements

  • Runtime loop (src/main_loop.rs): uses PSI event-driven waiting when available; falls back to legacy polling; skips redundant swappiness sysfs writes
  • Build scripts: automatically detect git tag — when on a tag, release zip uses the tag name (e.g., thrawl-v1.0.1-release.zip); otherwise uses dev naming (thrawl-v1.0.1-{BUILD}-{SHA}-release.zip)
  • Build scripts: generate source archives (.tar.gz + .zip) and SHA256SUMS alongside the release zip
  • Magisk OTA: module.prop includes updateJson pointing to the repository's update.json

Metadata

  • Base version: v1.0.1
  • Version code: 25
  • Commit SHA: 4d65d7f

Thrawl V1.0.0

14 Jun 14:23

Choose a tag to compare

Thrawl v1.0.0

Adaptive memory management for rooted Android. Tunes swappiness, ZRAM, swap, and LMKD in real time — written in Rust, packaged as a Magisk module.


What's new

This is the first release. Thrawl is a single thrawld binary that replaces scattered shell scripts with a Rust daemon:

  • PSI backend (Kernel 4.20+): reads /proc/pressure/memory, adjusts swappiness dynamically
  • Legacy backend (Kernel 3.18 - 4.19): meminfo-based hysteresis state machine
  • ZRAM hot-plug: add/remove ZRAM devices, auto-sized from MemTotal
  • Swap file management: mkswap/swapon/swapoff with timeout protection
  • LMKD tuning: PSI vs minfree property switching
  • UFFD GC: Android 12-13 userfaultfd garbage collection
  • Persistent logcat: size-based rotation, daemon activity log
  • Hot-reload: SIGHUP reloads config without restart
  • Stale PID recovery: auto-clean on crash

Install

  1. Download thrawl-v1.0.0.zip
  2. Open Magisk Manager → Modules → Install from storage
  3. Reboot

Or via ADB:

adb push thrawl-v1.0.0.zip /sdcard/
adb shell su -c 'magisk --install-module /sdcard/thrawl-v1.0.0.zip'
adb reboot

Verify

adb shell su -c 'pgrep -af thrawld'

Config

Edit /data/adb/thrawl/config.conf, then reload:

adb shell su -c 'kill -HUP $(cat /data/adb/modules/thrawl/data/flags/thrawld.pid)'

Default config works out of the box. See README for all options.

Requirements

  • Magisk 20.4+
  • Android 8.0 - 13
  • Root access