Enhanced fork of Tricky Addon - Update Target List with automatic target management, Xposed detection, and auto-fetch keybox
Rust
1,304
120 commits
updated May 1, 2026
Automated TrickyStore & TEESimulator Management
Flash once. Forget forever.
[!NOTE] This is a personal project built for automation enthusiasts — flash and forget.
It was never planned for public release, but enough people wanted it, so here it is. It's open-source because sharing is good — not because anyone is owed support, features, or responses on a timeline. If something breaks, report it on Telegram. PRs are welcome. Entitlement is not.
Do NOT report issues to TrickyStore, TEESimulator, or any upstream project. They have nothing to do with this module. All support goes through one place: the SuperPowers Telegram.
A native Rust daemon that manages TrickyStore and TEESimulator silently in the background — keybox rotation, security patch spoofing, VBHash injection, attestation engine monitoring, and target list management — all running as a single process with zero user intervention after install.
This is a clean-room rewrite. The original concept drew from several community projects, but every line of backend logic has been rebuilt from scratch in Rust with a completely different architecture — a single native daemon replacing 6 shell processes, inotify replacing poll loops, in-memory config replacing fork-per-read patterns. No commits were squashed or rebased from any other project. This is new code.
The previous shell-based approach worked, but it was fragile. Config reads forked a new process every time. App detection polled in a sleep loop. Six separate scripts competed for resources. The result was hundreds of thousands of unnecessary wakeups per day, constant JVM spawns, and race conditions that caused intermittent failures users couldn't diagnose.
The Rust rewrite eliminates all of that:
| Metric | Shell | Rust |
|---|---|---|
| Wakeups/day | 884,449 | ~100 (timer fires only) |
| JVM spawns/day | 20,170 | ~200 (only for pm when inotify can't detect) |
| Processes | 6 | 1 |
| Background CPU | ~28 min/day | <1 min/day |
| Config reads | 43,200 forks/day | 0 (in-memory struct) |
| App detection latency | 10s–minutes | Instant (inotify) |
One binary. One process. One config file. No shell scripts in the hot path.
Keybox Management
custom and it stays untouchedSecurity Patch Automation
VBHash Spoofing
vbmeta.digest, device_state, verifiedbootstate, and 12 morero.boot.vbmeta.digest before any modules are activeCustom ROM Identity Hiding
lineage_ prefix from ro.product.vendor.name, replaces org.lineageos.aperture in vendor.camera.aux.packagelist and persist.vendor.camera.privapp.list, stops vendor.lineage_health and deletes its init.svc.* status propAttestation Engine Health Monitor
.health_state, visible in WebUITarget List Automation
target.txt instantlyConflict Detection
Live Status Monitor
⚡ 37 Apps │ 🔑 Yurikey │ 🛡️ 2026-01-05 │ 🔒 VBHash
Real-time status directly in your module manager — no need to open anything.
WebUI
#0F0F1A → #1A1A2E), 6 accent color presets with random selection on launchOK, blue AOSP when an AOSP-rooted keybox is loaded on a non-AOSP device, amber Invalid for structural failures, gray No Keybox when absent. Hover surfaces the full validation error list. Revocation is exposed as JSON metadata but no longer drives the badge color since TEESimulator routes around Google's attestation status list at runtimeSet It and Forget It
A single native daemon manages all background tasks — if anything dies, it restarts within 1s:
target.txt via inotify| Root Manager | Minimum Version | WebUI Support |
|---|---|---|
| KernelSU | 32234+ | Built-in |
| APatch | 11159+ | Built-in |
| Magisk | 20.4+ | KSUWebUIStandalone or WebUI-X required |
Requires: TEESimulator or TrickyStore installed as the attestation engine.
During install, press Vol− for manual target mode (GMS/GSF only) or Vol+ / wait 10s for full automation.
Conflicting modules are detected and rm -rf'd at install time, so an old TA fork or competing keybox/VBHash module is removed automatically.
The module captures VBHash, builds the exclude list, generates target.txt, fetches a valid keybox, sets security patch dates, and starts the daemon. Nothing else to do.
Requires Rust toolchain and Android NDK.
git clone https://github.com/Enginex0/tricky-addon-enhanced.git
cd tricky-addon-enhanced
bash package.sh --no-bump
The ZIP lands in release/. CI also builds on every push — grab artifacts from the Actions tab.
| Flag | Effect |
|---|---|
| (none) | Bump version, cross-compile, package |
--no-bump | Build without incrementing version |
--no-build | Package only (skip Rust compile) |
--clean | Remove old ZIPs before packaging |
All settings are configurable from the WebUI (open from your root manager) or via CLI:
ta-enhanced config get keybox.source
ta-enhanced config set keybox.interval 3600
Config lives at /data/adb/tricky_store/config.toml and is preserved across reinstalls.
| Key | Default | Description |
|---|---|---|
keybox.enabled | true | Auto keybox fetching |
keybox.source | yurikey | Primary source (yurikey, upstream, custom) |
keybox.interval | 300 | Seconds between fetch attempts |
security_patch.auto_update | true | Auto patch date updates |
security_patch.interval | 86400 | Seconds between patch checks |
automation.enabled | true | Auto target.txt population |
automation.use_inotify | true | Use inotify for instant app detection |
health.enabled | true | Attestation engine health monitor |
health.interval | 10 | Seconds between health checks |
conflict.enabled | true | Conflicting module detection |
vbhash.enabled | true | VBHash spoofing |
/data/adb/tricky_store/
├── config.toml # Module configuration
├── target.txt # Apps to protect
├── keybox.xml # Current keybox
├── keybox.xml.bak # Keybox backup
├── security_patch.txt # Patch dates
├── .health_state # Health monitor state
/data/adb/Tricky-addon-enhanced/logs/
├── daemon.log # Unified daemon log
└── conflict.log # Conflict detection
/data/adb/boot_hash # Persisted VBHash
On Snapdragon-class devices, the runtime VBMeta digest spoof can prevent enrollment of new fingerprints. Existing prints keep working; only adding new ones fails. Two escape hatches, available from the WebUI under Automation → Compatibility, or via terminal:
touch /data/adb/disable_vbmeta_digest_spoof — keeps Play Integrity spoofing, drops only the digest rewrite. Try this first.touch /data/adb/disable_prop_handler — disables the entire boot-state spoof. Use only if the first doesn't help.Reboot after either change. Remove the file to restore the spoof.
$ ta-enhanced --connect
███████╗██╗ ██╗██████╗ ███████╗██████╗
██╔════╝██║ ██║██╔══██╗██╔════╝██╔══██╗
███████╗██║ ██║██████╔╝█████╗ ██████╔╝
╚════██║██║ ██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██████╔╝██║ ███████╗██║ ██║
╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
POWERS
[✓] SIGNAL ──→ t.me/superpowers9
[✓] UPLINK ──→ bug reports · feature drops · dev updates
[✓] STATUS ──→ OPEN — all operators welcome
This project is licensed under the GNU General Public License v3.0.
⚡ Flash once. Forget forever.
88 followers · starred Mar 2026
180 followers · starred Jul 2026
1,050 followers · starred Apr 2026
322 followers · starred May 2026
Enhanced fork of Tricky Addon - Update Target List with automatic target management, Xposed detection, and auto-fetch keybox
Rust
1,304
120 commits
updated May 1, 2026
Automated TrickyStore & TEESimulator Management
Flash once. Forget forever.
[!NOTE] This is a personal project built for automation enthusiasts — flash and forget.
It was never planned for public release, but enough people wanted it, so here it is. It's open-source because sharing is good — not because anyone is owed support, features, or responses on a timeline. If something breaks, report it on Telegram. PRs are welcome. Entitlement is not.
Do NOT report issues to TrickyStore, TEESimulator, or any upstream project. They have nothing to do with this module. All support goes through one place: the SuperPowers Telegram.
A native Rust daemon that manages TrickyStore and TEESimulator silently in the background — keybox rotation, security patch spoofing, VBHash injection, attestation engine monitoring, and target list management — all running as a single process with zero user intervention after install.
This is a clean-room rewrite. The original concept drew from several community projects, but every line of backend logic has been rebuilt from scratch in Rust with a completely different architecture — a single native daemon replacing 6 shell processes, inotify replacing poll loops, in-memory config replacing fork-per-read patterns. No commits were squashed or rebased from any other project. This is new code.
The previous shell-based approach worked, but it was fragile. Config reads forked a new process every time. App detection polled in a sleep loop. Six separate scripts competed for resources. The result was hundreds of thousands of unnecessary wakeups per day, constant JVM spawns, and race conditions that caused intermittent failures users couldn't diagnose.
The Rust rewrite eliminates all of that:
| Metric | Shell | Rust |
|---|---|---|
| Wakeups/day | 884,449 | ~100 (timer fires only) |
| JVM spawns/day | 20,170 | ~200 (only for pm when inotify can't detect) |
| Processes | 6 | 1 |
| Background CPU | ~28 min/day | <1 min/day |
| Config reads | 43,200 forks/day | 0 (in-memory struct) |
| App detection latency | 10s–minutes | Instant (inotify) |
One binary. One process. One config file. No shell scripts in the hot path.
Keybox Management
custom and it stays untouchedSecurity Patch Automation
VBHash Spoofing
vbmeta.digest, device_state, verifiedbootstate, and 12 morero.boot.vbmeta.digest before any modules are activeCustom ROM Identity Hiding
lineage_ prefix from ro.product.vendor.name, replaces org.lineageos.aperture in vendor.camera.aux.packagelist and persist.vendor.camera.privapp.list, stops vendor.lineage_health and deletes its init.svc.* status propAttestation Engine Health Monitor
.health_state, visible in WebUITarget List Automation
target.txt instantlyConflict Detection
Live Status Monitor
⚡ 37 Apps │ 🔑 Yurikey │ 🛡️ 2026-01-05 │ 🔒 VBHash
Real-time status directly in your module manager — no need to open anything.
WebUI
#0F0F1A → #1A1A2E), 6 accent color presets with random selection on launchOK, blue AOSP when an AOSP-rooted keybox is loaded on a non-AOSP device, amber Invalid for structural failures, gray No Keybox when absent. Hover surfaces the full validation error list. Revocation is exposed as JSON metadata but no longer drives the badge color since TEESimulator routes around Google's attestation status list at runtimeSet It and Forget It
A single native daemon manages all background tasks — if anything dies, it restarts within 1s:
target.txt via inotify| Root Manager | Minimum Version | WebUI Support |
|---|---|---|
| KernelSU | 32234+ | Built-in |
| APatch | 11159+ | Built-in |
| Magisk | 20.4+ | KSUWebUIStandalone or WebUI-X required |
Requires: TEESimulator or TrickyStore installed as the attestation engine.
During install, press Vol− for manual target mode (GMS/GSF only) or Vol+ / wait 10s for full automation.
Conflicting modules are detected and rm -rf'd at install time, so an old TA fork or competing keybox/VBHash module is removed automatically.
The module captures VBHash, builds the exclude list, generates target.txt, fetches a valid keybox, sets security patch dates, and starts the daemon. Nothing else to do.
Requires Rust toolchain and Android NDK.
git clone https://github.com/Enginex0/tricky-addon-enhanced.git
cd tricky-addon-enhanced
bash package.sh --no-bump
The ZIP lands in release/. CI also builds on every push — grab artifacts from the Actions tab.
| Flag | Effect |
|---|---|
| (none) | Bump version, cross-compile, package |
--no-bump | Build without incrementing version |
--no-build | Package only (skip Rust compile) |
--clean | Remove old ZIPs before packaging |
All settings are configurable from the WebUI (open from your root manager) or via CLI:
ta-enhanced config get keybox.source
ta-enhanced config set keybox.interval 3600
Config lives at /data/adb/tricky_store/config.toml and is preserved across reinstalls.
| Key | Default | Description |
|---|---|---|
keybox.enabled | true | Auto keybox fetching |
keybox.source | yurikey | Primary source (yurikey, upstream, custom) |
keybox.interval | 300 | Seconds between fetch attempts |
security_patch.auto_update | true | Auto patch date updates |
security_patch.interval | 86400 | Seconds between patch checks |
automation.enabled | true | Auto target.txt population |
automation.use_inotify | true | Use inotify for instant app detection |
health.enabled | true | Attestation engine health monitor |
health.interval | 10 | Seconds between health checks |
conflict.enabled | true | Conflicting module detection |
vbhash.enabled | true | VBHash spoofing |
/data/adb/tricky_store/
├── config.toml # Module configuration
├── target.txt # Apps to protect
├── keybox.xml # Current keybox
├── keybox.xml.bak # Keybox backup
├── security_patch.txt # Patch dates
├── .health_state # Health monitor state
/data/adb/Tricky-addon-enhanced/logs/
├── daemon.log # Unified daemon log
└── conflict.log # Conflict detection
/data/adb/boot_hash # Persisted VBHash
On Snapdragon-class devices, the runtime VBMeta digest spoof can prevent enrollment of new fingerprints. Existing prints keep working; only adding new ones fails. Two escape hatches, available from the WebUI under Automation → Compatibility, or via terminal:
touch /data/adb/disable_vbmeta_digest_spoof — keeps Play Integrity spoofing, drops only the digest rewrite. Try this first.touch /data/adb/disable_prop_handler — disables the entire boot-state spoof. Use only if the first doesn't help.Reboot after either change. Remove the file to restore the spoof.
$ ta-enhanced --connect
███████╗██╗ ██╗██████╗ ███████╗██████╗
██╔════╝██║ ██║██╔══██╗██╔════╝██╔══██╗
███████╗██║ ██║██████╔╝█████╗ ██████╔╝
╚════██║██║ ██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██████╔╝██║ ███████╗██║ ██║
╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
POWERS
[✓] SIGNAL ──→ t.me/superpowers9
[✓] UPLINK ──→ bug reports · feature drops · dev updates
[✓] STATUS ──→ OPEN — all operators welcome
This project is licensed under the GNU General Public License v3.0.
⚡ Flash once. Forget forever.
88 followers · starred Mar 2026
180 followers · starred Jul 2026
1,050 followers · starred Apr 2026
322 followers · starred May 2026