Astrax v3-Eclipse
October 2026Astrax v3-Eclipse is a major update from v2-Eclipse, featuring three new management tools (App Manager, Cache Cleaner, Process Killer), a completely rewritten boot-restore engine with per-item logging, a complete overhaul of Frame Pacing (which previously always failed to apply), and a streamlined bottom navigation consolidated into a single "Manager" tab. Almost every legacy feature was re-audited to ensure they actually run on boot, rather than just when triggered manually in the WebUI.
New Features
- App Manager — A new page in the Manager tab that automatically displays all apps, games, and system components (no manual adding required). Each app has 21 cmd appops settings (RUN_IN_BACKGROUND, FOREGROUND_SERVICE_SPECIAL_USE, WAKE_LOCK, ACTIVITY_RECOGNITION, SYSTEM_ALERT_WINDOW, etc.) with allow/ignore/deny/default/foreground modes, plus a "Revoke All Permissions" runtime button. Unsupported features are automatically detected once during the initial load, rather than being repeatedly tested.
- Cache Cleaner — A new page under Tweaks with 6 separate toggles (app cache, device-protected app cache, shared storage cache, media cache, /data/local/tmp temp files, /data/cache system temp). The cleaner script is written to a file via base64 and then executed in the background, featuring a confirmation popup before running and a loading animation until completion.
- Process Killer — A new page with three modes (Kill Game, Kill Apps, Kill System) plus "Kill Everything". Processes are killed in waves (3 at a time, 0.25-second delay) across two verification rounds. A protection list prevents the active launcher, active keyboard, core system components, and over 30 root/ADB managers (Magisk, KernelSU and its derivatives, APatch, LSPosed, Shizuku, Dhizuku, Termux, etc.—identified via exact package names or name patterns) from being terminated.
- Manager (new navigation tab) — Game Manager, formerly its own tab, has now been merged with App Manager into a single "Manager" tab, selectable via a toggle at the top of the page. The bottom navigation has been revamped to be more compact, featuring larger icons and tighter spacing.
- Original Theme — An option in Appearance to use the legacy Astrax color palette (non-dynamic color), applying the colors while preserving the same gradients; automatically reverts to dynamic color when disabled.
- Loading Style — A selection of welcome screen loading animation styles in Appearance, located under Navigation Style, which apply without requiring confirmation.
Mechanisms: Frame Pacing (Complete Overhaul)
In v2, the Low/Medium/High modes for Frame Pacing almost always failed to apply on real devices—only the Off mode consistently worked. The cause: commands were sent as a single long text block (refresh rate detection via dumpsys, frame duration math, then dozens of setprops) directly through the KernelSU bridge, the same method that caused early versions of the Cache Cleaner to constantly fail.
The fix adopts the proven Cache Cleaner method: the Frame Pacing script is now written to a file (frame_pacing.sh) via base64, executed as a separate background process, and the WebUI reads the results via polling every 200 ms (up to a maximum of 30 seconds) instead of waiting for a single massive call that could freeze the interface. Each setprop/settings/cmd display command has its own independent timeout so one stalled command doesn't fail the entire process. A mode is now only considered successfully applied if all 10 debug.sf.* properties plus the astraxframepacingactive state are read back matching the sent values—success is no longer just assumed. The refresh rate is detected from peak_refresh_rate with dumpsys display as a fallback, and clamped to a 30–240 Hz range.
Mechanisms: Boot Restore Engine
hhtnn/content.sh was rewritten from a linear script into a collection of functions (apply_core, verify_all, am_run, gm_report, cc_report, pk_run, etc.) that each handle a single feature. These are called in two passes (immediately after boot, then once more 20 seconds later to ensure application). The end results are actively verified (verify_all re-reads properties and settings), rather than assuming the execution command was successful.
App Manager & Game Manager are now automatically restored on boot and installation—previously, appops configurations and game settings set via the WebUI were not truly reapplied after a reboot. Now, am_restore.sh and gm_restore.sh read saved configurations, reapply each item in parallel (6 packages at a time for App Manager), and log the result per item (Applied / Already matched / Failed / Unsupported / Not installed) to am_restore.log and gm_record.log. These logs appear directly in the "Technical details" panel on each app and game profile, allowing users to check when it was last restored and the outcome without opening raw log files.
Per-feature summary notifications — Boot now sends separate notifications for Profile/Renderer/Frame Pacing, App Manager, Game Manager, and Cache Cleaner, each detailing the number of successes/failures, instead of a single vague notification where it was unclear which feature had issues.
Mechanisms: Loading & "Applying" Notifications
The single "Applying..." pill from v2 has been replaced with per-feature loading items inside a toast stack, each with its own feature icon and "Feature Name = Mode" text (e.g., "Frame Pacing = High"). When a feature finishes, its loading item disappears and is replaced by a result toast, while other ongoing features automatically move up the stack. To prevent toast spam when the Apply button is pressed rapidly, each feature is limited to a maximum of one running process and one queue—rapid clicks simply update that queue, rather than spawning new processes.
Bug Fixes
- Frame Pacing — Fixed the Low/Medium/High modes always failing to apply on real devices (see mechanism above); also fixed the long application time that previously caused WebUI freezes while waiting for a single large call.
- App Manager — Fixed inaccurate "unsupported" appops feature detection (where supported features were marked unsupported and vice versa); it is now accurately detected once initially and logged, instead of being repeatedly checked. Appops configured but not actually applied to the real device are now verified by reading the values back after every change.
- Game Manager — Retained v2 fixes (GPU Driver overwriting other game configs, downscale requiring multiple restarts, invisible downscale slider) and added previously non-existent boot restore logging—now every MODE/DOWNSCALE/GPU per game is verified and logged per item.
- Process Killer — The protection list for apps that shouldn't be killed was previously very limited; it now includes name patterns (*ksu*, *magisk*, *shizuku*, *apatch*, *lsposed*, etc.) alongside exact package names, ensuring new forks/variants of root managers remain automatically protected.
Other
- All shell scripts (.sh) were minified (empty lines and extra spaces removed, heredocs kept intact) to reduce module size without altering behavior; every script underwent syntax and behavior re-testing prior to implementation.