Releases: Enginex0/tricky-addon-enhanced
v5.27.0
Bug Fixes
- Accent color not persisting — manually picking an accent color from the picker didn't disable randomization, so the next page load or tab switch would randomize over the user's choice. Picker now auto-disables randomization and syncs the toggle state
- Apps silently removed from target.txt —
cleanup_dead_appsrelied solely onpm list packages -3which can be filtered by HideMyAppList or miss apps in other user profiles. Now cross-checks/data/data/<pkg>existence and requires 3 consecutive misses before removing, preventing false removals during app updates or when HMA is active - WebUI save race with daemon —
target.txtwas written non-atomically (echo > file), allowing the daemon to read a truncated file mid-write. Now uses temp-file-then-rename
v5.26.0
Bug Fixes
- Custom ROM version wiped by propclean —
hexpatch_deletepropwas destroying all properties matching ROM fingerprint substrings (e.g.crdroid), includingro.crdroid.build.versionwhich crDroid needs for its About screen and OTA updater. Now auto-detects the running ROM by checking forro.<fingerprint>*properties before wiping — if the device owns those props, they're preserved. Generic fix that works for any ROM in the fingerprint list (LineageOS, EvolutionX, PixelOS, etc.)
Improvements
- Debug build support —
package.sh --debugproduces unstripped binaries with full debuginfo symbols for crash diagnosis
v5.25.0
Bug Fixes
marketnamefalse positive in ROM fingerprint detection — stock Xiaomimarketnameprops were being scrubbed as custom ROM indicators, breaking Xiaomi Share device naming and iOS Interconnectivity (#16, #17)- ReSukiSU excluded from target list — added
com.resukisu.resukisuto the manager exclusion list alongside existing SukiSU Ultra entry (#18)
v5.24.0
Features
- x86_64 and x86 ABI support — module now ships binaries for all four Android ABIs (arm64-v8a, armeabi-v7a, x86_64, x86), enabling Waydroid and emulator installs
Bug Fixes
- Bootloader detection by TrustAttestor —
check_reset_propwas creating props on devices where they don't naturally exist (e.g. Realme/OnePlus-specific props on Xiaomi), giving attestor apps a clear tampering signal. Now skips non-existent props instead of blindly injecting them, matching stock behavior - AVB version mismatch —
ro.boot.vbmeta.avb_versionwas set to1.3(non-standard) instead of1.0, creating a detectable inconsistency with the actual AVB stack - Extra props in Rust backend — removed
ro.bootimage.build.tags,ro.boot.verifiedbooterror, andro.boot.veritymode.managedfrom the Rust prop list since they don't exist on most devices and would be created unnecessarily - Unconditional prop injection —
ro.oem_unlock_supportedandro.secureboot.devicelockwere set outside the ZeroMount guard, now properly gated - Stale description on uninstall — WebUI uninstall now immediately restores the original TrickyStore/TEESimulator description instead of relying on daemon timing; also fixed path mismatch between Rust (
description.bak) and shell (.original_description) backup files
v5.23.0
Features
ro.boot.product.hardware.skusupport — fourth region prop added across the full stack (config, install snapshot, boot enforcement, WebUI)- Collapsible region UI —
ro.boot.hwcalways visible, remaining 3 fields behind a chevron expand to reduce clutter - GitHub Actions CI — build workflow cross-compiles both ABIs and uploads the module ZIP as artifact on every push
Improvements
- Region i18n — all 3 region strings translated across 22 locales (was English-only fallback)
- Dynamic README badges — version badge pulls from GitHub releases, build status badge from CI
v5.21.0
Property Hexpatch Engine & Partition Normalization
Absorbs techniques from sensitive-props-crontabs to cover detection vectors that resetprop alone can't handle.
Hexpatch scrubbing — propclean.sh uses magiskboot hexpatch to binary-patch property names in /dev/__properties__/ shared memory. Unlike resetprop --delete, this destroys the property name itself (replaced with random hex), making it invisible to any app enumerating properties. Targets 48 custom ROM/kernel/framework fingerprint strings (LineageOS, GrapheneOS, LSPosed, Franco, etc.).
Partition-wide normalization — Sets build.type=user, build.tags=release-keys across all 9 partition prefixes (system, vendor, product, odm, oem, bootimage, system_ext, vendor_dlkm, odm_dlkm). Strips aosp_, eng., test-keys, userdebug, dev-keys from build fingerprints and display props.
New props spoofed:
ro.is_ever_orange(OnePlus unlock history)ro.oem_unlock_supportedro.secureboot.devicelock- MIUI cross-region fix (
ro.boot.hwc/ro.boot.hwcountryCN → GLOBAL) - 3 additional recovery boot mode variants
init.svc.adbd→ stopped,init.svc.adb_roothexpatch-destroyed
PI-fix leftovers — Hexpatch-destroys props left behind by other Play Integrity modules (pihook, pixelprops, eliteprops, spoof.gms).
Daemon periodic cleanup — PropCleanTask re-runs propclean.sh hourly (configurable via propclean.interval), replacing the crontab approach. Gracefully skips if magiskboot unavailable.
Tested on Redmi pond_global (Android 15, KSU Next 33024).
v5.19.0
What's New
Full i18n — 23 Languages
- Install prompts (volume key selection, automation mode, conflicts, completion) now fully translated — no more English-only during module installation
- Added
install_i18n.shwith language detection and message lookup for all supported locales - Filled all missing translation keys across every non-English locale XML
- Added 5 missing language blocks: Azerbaijani, Bengali, Greek, Farsi, Filipino
Health Banner Fix
- "Checking..." no longer gets permanently stuck on the health banner
- Root cause: the i18n translation loader was overwriting dynamic health status text via
data-i18nattributes after the health check had already resolved - Added shell-based
Pn()fallback with 5s timeout for slow or failedwebui-init
Toggle Sync & Stability
- Renamed toggle sync function to avoid identifier collision that crashed the language loader
- Security patch auto-toggle now properly syncs when manually setting patch from the menu
- Config save failure toast now shows error icon instead of success
Full Changelog
v5.15.0 → v5.19.0
feat(i18n): full installer and WebUI localization for 23 languagesfix(webui): health banner stuck on Checking and patch toggle syncfix(i18n): complete translations and patch toggle syncfix(webui): system toggle, health banner, and install flow
v5.15.0
New
- System App Toggle — glass toggle in the menu replaces "Add System App". Shows all 333+ system apps when ON. Default apps (GMS, GSF, Play Store) always visible regardless of toggle state.
- Faster WebUI — system and user package lists cached at install/boot. No PM IPC on every WebUI load.
- i18n coverage — 24 new translation keys for the automation dialog, health banner, and mode selector. Non-English users no longer see hardcoded English in those sections.
Fixed
- System toggle did nothing — cached file fallback was an empty array instead of querying PM. Toggle now works even before first reboot.
- Health banner stuck on "Checking..." — translation function overwrote dynamic status. Removed conflicting
data-i18nfrom those elements. - Empty system_packages.txt — PM query ran before boot completion in service.sh. Moved after
sys.boot_completedwait. Added retry loop during install for sluggish PM. - Mandatory apps missing on manual install — volume-down (manual mode) with existing target.txt skipped mandatory app injection. Now injects GMS, GSF, Play Store, and OEM apps if missing.
v5.8.0
Features
- Inotify-based app detection — daemon watches
/data/app/for installs and uninstalls via inotify, with two-stage scan (3s + 8s retry) to handle PM registration race - On-demand automation trigger — scheduler exposes
run_automation_now()so inotify events bypass the regular 10s polling interval
Bug Fixes
- Module version not shown in WebUI — preserves module.prop to data directory before hiding from manager UI; added as first lookup path in webui-init
- Version fallback missing
vprefix — CARGO_PKG_VERSION fallback now formats asv5.8.0instead of5.8.0
Performance
- WebUI init unblocked —
webui-initno longer waits for binary path resolution; path resolved inline, saving one sequential round trip on page load
Full changelog: https://github.com/Enginex0/tricky-addon-enhanced/blob/main/CHANGELOG.md
v5.7.0
Bug Fixes
- WebUI invisible on SukiSU/ReSukiSU — missing KSU native theme CSS imports (
colors.css,insets.css) caused all Material surface colors to fall through to transparent rgba values. Menu popups, dialogs, and cards were functionally invisible on non-KSU managers. Added upstream-matching opaque fallbacks for all dark-mode surface tokens.
Enhancements
- Real-time KSU Manager description sync — module description now updates instantly in KSU/APatch Manager when any WebUI action changes app count, keybox source, security patch date, or VBHash status. Dual-write to both
module.propandksud module config set override.description.