Skip to content

Releases: Enginex0/tricky-addon-enhanced

v5.27.0

24 Mar 00:35

Choose a tag to compare

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.txtcleanup_dead_apps relied solely on pm list packages -3 which 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 daemontarget.txt was written non-atomically (echo > file), allowing the daemon to read a truncated file mid-write. Now uses temp-file-then-rename

v5.26.0

17 Mar 17:24

Choose a tag to compare

Bug Fixes

  • Custom ROM version wiped by propcleanhexpatch_deleteprop was destroying all properties matching ROM fingerprint substrings (e.g. crdroid), including ro.crdroid.build.version which crDroid needs for its About screen and OTA updater. Now auto-detects the running ROM by checking for ro.<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 supportpackage.sh --debug produces unstripped binaries with full debuginfo symbols for crash diagnosis

v5.25.0

17 Mar 17:08

Choose a tag to compare

Bug Fixes

  • marketname false positive in ROM fingerprint detection — stock Xiaomi marketname props 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.resukisu to the manager exclusion list alongside existing SukiSU Ultra entry (#18)

v5.24.0

14 Mar 14:39

Choose a tag to compare

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 TrustAttestorcheck_reset_prop was 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 mismatchro.boot.vbmeta.avb_version was set to 1.3 (non-standard) instead of 1.0, creating a detectable inconsistency with the actual AVB stack
  • Extra props in Rust backend — removed ro.bootimage.build.tags, ro.boot.verifiedbooterror, and ro.boot.veritymode.managed from the Rust prop list since they don't exist on most devices and would be created unnecessarily
  • Unconditional prop injectionro.oem_unlock_supported and ro.secureboot.devicelock were 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

11 Mar 11:27

Choose a tag to compare

Features

  • ro.boot.product.hardware.sku support — fourth region prop added across the full stack (config, install snapshot, boot enforcement, WebUI)
  • Collapsible region UIro.boot.hwc always 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

10 Mar 12:08

Choose a tag to compare

Property Hexpatch Engine & Partition Normalization

Absorbs techniques from sensitive-props-crontabs to cover detection vectors that resetprop alone can't handle.

Hexpatch scrubbingpropclean.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_supported
  • ro.secureboot.devicelock
  • MIUI cross-region fix (ro.boot.hwc/ro.boot.hwcountry CN → GLOBAL)
  • 3 additional recovery boot mode variants
  • init.svc.adbd → stopped, init.svc.adb_root hexpatch-destroyed

PI-fix leftovers — Hexpatch-destroys props left behind by other Play Integrity modules (pihook, pixelprops, eliteprops, spoof.gms).

Daemon periodic cleanupPropCleanTask 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

10 Mar 01:34

Choose a tag to compare

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.sh with 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-i18n attributes after the health check had already resolved
  • Added shell-based Pn() fallback with 5s timeout for slow or failed webui-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 languages
  • fix(webui): health banner stuck on Checking and patch toggle sync
  • fix(i18n): complete translations and patch toggle sync
  • fix(webui): system toggle, health banner, and install flow

v5.15.0

09 Mar 23:55

Choose a tag to compare

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-i18n from those elements.
  • Empty system_packages.txt — PM query ran before boot completion in service.sh. Moved after sys.boot_completed wait. 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

09 Mar 09:28

Choose a tag to compare

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 v prefix — CARGO_PKG_VERSION fallback now formats as v5.8.0 instead of 5.8.0

Performance

  • WebUI init unblockedwebui-init no 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

08 Mar 12:01

Choose a tag to compare

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.prop and ksud module config set override.description.