Releases: Enginex0/tricky-addon-enhanced
v5.53.1
Bug Fixes
- WebUI engine detector (
_c()inwebui/assets/index-migrated.min.js) scans/data/adb/modules/*/module.propforname=TEESimulator*before falling back to the daemon nice-name and module.prop lookups. Fixes TEESimulator-rs forks displaying as upstreamTEESimulatoron the badge. - Save toast pill anchored at
bottom-inset + 8pxwith 11px font and 13px icon.pointer-events:noneretained in the.showstate so taps pass through to the package list. Default duration reduced to 1200ms. - Card-body taps trigger autosave. Programmatic
md-checkbox.checkedtoggles do not dispatchchange, so a sibling click listener on.card[data-package]callsscheduleFlush()directly. Coalesced with the existing change-event path viasaveScheduled.
v5.48.0
v5.48.0 (2026-04-30)
Features
- Hot install — module takes effect without reboot on KSU, APatch, and Magisk hot-paths. Conflicting modules are now purged via
rm -rfat install time instead of flag-file disable, closing the boot-delay window where overlays kept mounting. Heuristic pass also removes any third-party module referencing known WebUI-companion conflict packages - HMA bypass — package enumeration and APK path resolution read
/data/system/packages.listand scan/data/app/directly, so HideMyAppList no longer hides apps from the target picker or the daemon. Falls back todumpsysfor label resolution - Default target.txt seeds —
com.facebook.appmanager,com.facebook.services,com.facebook.system, andcom.tencent.soter.soterserverare now seeded unconditionally alongside GMS/GSF/Vending. Covers Samsung/OEM-preinstalled Facebook system apps and the WeChat biometric/payment auth bridge on Chinese ROMs target.txtautosave with delta writes — every checkbox change auto-persists; rapid toggles coalesce into a single write per microtask. Hidden system entries are preserved verbatim. Save FAB is gone (#23)- WebUI compatibility toggles — Automation → Compatibility now exposes
disable_vbmeta_digest_spoofanddisable_prop_handlerflags from a single dialog (#21) - Inotify-driven status refresh — module description now updates the moment a status-relevant event fires instead of waiting for the 30s poll
- Task list in
daemon-status— CLI now reports the active scheduler task list (Status, Automation, Health, Keybox, SecurityPatch) config props-customCLI getter — prints user-definedprops.custom_propsasname<TAB>valuelines for shell consumption
Bug Fixes
- Fingerprint enrollment failure — boot-time
ro.boot.vbmeta.digestrewrite is now gated behind/data/adb/disable_vbmeta_digest_spoof, fixing enrollment on Snapdragon-class devices without losing Play Integrity. The/data/adb/disable_prop_handlerflag also short-circuits the digest rewrite (#21) - Keybox source rotation — KOW upstream URL repointed from the dead
main/.extrato the livekeybox/.extrabranch (#22) - Variant-aware boot hash —
prop.shpreviously trustedboot_hash.binfrom any TrickyStore variant, including forks without boothash persistence. Now checksmodule.propfor TEESimulator-RS before deferring, validates the file, and falls back to/data/adb/boot_hashif invalid - Spoof cleanup ordering — split into early and late phases so prop normalization runs before the VBMeta block, fixing edge cases where ordering left stale build-string values
custom_propsand test-keys loops — switched to heredoc-fed loops so values containing whitespace or shell metacharacters are applied verbatim- x86 and x86_64 uninstall — uninstall script now cleans the additional ABI binary directories shipped in v5.24.0
- Light-mode WebUI — full light-mode pass: text colors, hover surfaces, gradient-text fills, glass-surface backgrounds, source-card body, icon tile, pale Unknown/AOSP icons, and the FETCH INTERVAL caption all have proper light-mode contrast. Mode picker rows get per-row color stripes so Auto, Generated, and Custom stay distinguishable on any accent or theme (#20)
- IntegrityBox config migration — legacy
keybox.source = "integritybox"values now persist their migration toyurikeyon disk (previously rewritten in memory only) - Bundled JS null-deref on FAB removal — minified bundle hard-references
#saveand.floating-btnat module init; an invisible inert stub is restored at the original location so the import resolves while autosave remains the sole save path
Changed
- Boot-time spoofing consolidated into
service.sh— replaces the backgroundedprop.shwith a synchronous inline block gated on--wait sys.boot_completed 0, mirroring the susfs4ksu pattern. ZeroMount gating is no longer required for prop application - Property cleanup runs once inline at boot — folded
propclean.shinto the consolidated spoof block.--hexpatch-deletereplaced with--nukeeverywhere; the hexpatch fallback is gone since propdetect heuristics flag hexpatch artifacts (count anomalies, name destruction) - Standalone
resetprop-rsCLI — props now go through the standalone resetprop binary instead of the in-process Rust API pm listfor package enumeration — replaces directpackages.listparsing where appropriateresetprop-rsas cargo git dependency — switched from a vendored submodule so builds pull the latest commit- Denylist merge — gracefully no-ops on KSU/APatch (no upstream denylist enumeration API); Magisk path unchanged
Removed
- Rust
propsmodule — boot-time spoofing now lives entirely inservice.sh.Commands::PropsCLI variant,props/mod.rs,PropsConfig.enabled, andPropCleanConfigare gone.platform/props.rstrimmed toRP_PATH+getprop+set PropCleanTask— daemon no longer schedules a recurring property-cleanup timer. Cleanup is a one-shot inline boot step. Scheduler now tracks five tasks instead of sixinit.svc.*spoofing — dropped from the prop set; the entries created more attestation noise than they preventedpropclean.shandprop.sh— both deleted; their logic is inlined inservice.sh.hexpatch_deletepropremoved fromcommon.sh- IntegrityBox keybox source — upstream MeowDump replaced their artifact with an anti-fork taunt that decodes to "NICE TRY DIDDY". Existing configs auto-migrate to
yurikeyon next boot - Save FAB — replaced by autosave; the floating button is no longer rendered
v5.47.0
docs(readme): note hot install in install steps KSU and APatch now apply on install via the hot-install path, so the reboot step is conditional. Conflict purge runs at install time rather than the boot-time disable flag, worth surfacing in the user-facing instructions.
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