TrickyStore keybox setup: the complete guide
This is the full version of the short guide on the repository page. It covers every file TrickyStore reads, what each setting does, and the failure modes people hit most often. If you only need the commands, skip to the numbered steps.
Requirements
- Android 10 or newer, rooted with Magisk, KernelSU or APatch.
- Zygisk enabled in Magisk, or a Zygisk implementation such as ReZygisk / ZygiskNext on KernelSU and APatch. TrickyStore is a Zygisk module.
- TrickyStore from 5ec1cff's releases. Recent versions are closed-source; TrickyStoreOSS is an open-source alternative that reads the same config files.
- A valid keybox. Get the newest one marked Strong from the repository.
- Optional but usual: a Play Integrity fix module (PlayIntegrityFork or PlayIntegrityFix) for the device fingerprint side, and a root file manager or terminal.
1. Install TrickyStore
Flash the module zip from your root manager and reboot. After the reboot the module creates /data/adb/tricky_store/ with a default target.txt. Nothing else happens until you configure it.
2. Place keybox.xml
Copy the keybox to the exact path below. TrickyStore watches the directory and reloads the file immediately; no reboot needed.
su
cp /sdcard/Download/keybox.xml /data/adb/tricky_store/keybox.xml
chown root:root /data/adb/tricky_store/keybox.xml
chmod 644 /data/adb/tricky_store/keybox.xml
Make sure the file is the raw XML (starts with <?xml or <AndroidAttestation>), not a zip, not base64, and has no stray characters before the first tag. Files from the repository are already in the right form.
Without a keybox, TrickyStore uses a built-in software keybox. That is fine for DEVICE integrity on many setups but can never produce STRONG, because the chain is not hardware-trusted.
3. Configure target.txt
/data/adb/tricky_store/target.txt lists the packages whose attestation requests TrickyStore should intercept, one package name per line. Only these apps see the spoofed chain; everything else gets the device's real attestation.
com.google.android.gms
com.android.vending
com.google.android.apps.walletnfcrel
io.github.vvb2060.keyattestation
com.yourbank.mobile!
Two optional suffixes control how the chain is produced:
| Suffix | Mode | When to use |
|---|---|---|
! | Certificate generation | Build a fresh chain signed by the keybox. Needed on devices with a broken TEE, and the safer choice for strict apps. |
? | Leaf certificate hack | Keep the real chain and patch only the leaf's attestation extension. Cheaper, works while the device's own key is still trusted. |
| none | Automatic | TrickyStore tries the leaf hack and falls back to generation if the TEE cannot supply a leaf. |
Keep the list short. Every app that attests through your keybox is another data point Google sees on that key, and public keys are revoked partly because of volume. The Tricky Addon WebUI can build the list from installed apps, and it can fetch a keybox for you as well.
4. security_patch.txt (optional)
Play Integrity's strongest verdict expects a recent security patch level. If your ROM is stale, TrickyStore can report a different level in the attestation result only; system properties are untouched. Create /data/adb/tricky_store/security_patch.txt with either the simple form:
20260801
or the per-component form introduced in TrickyStore 1.2.1:
system=202608
boot=2026-08-01
vendor=no
no leaves that component's real value alone. Choose a date that is plausible for your device; a 2019 phone claiming last week's patch is a contradiction that some verifiers catch.
5. Verify
- Key Attestation. Install Key Attestation, add
io.github.vvb2060.keyattestationtotarget.txt, open it. You want: chain trusted, attestation security level TrustedEnvironment or StrongBox, verified boot state Verified, bootloader locked, and no "revoked" line. - Play Integrity. Run a checker such as Play Integrity API Checker once. The expected result is
MEETS_STRONG_INTEGRITYtogether with DEVICE and BASIC. - Then stop checking. Repeated attestations shorten the keybox's life and tell you nothing new.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| DEVICE but not STRONG | Keybox revoked, or not loaded. | Check the keybox in Key Attestation. If revoked, replace it with the newest Strong one from the repository. If "not loaded", verify path, permissions and that the XML is well-formed. |
| Only BASIC | Fingerprint or props still expose root/unlocked bootloader. | Install and configure a Play Integrity fix module; make sure Zygisk and the deny list / unmount are set up for Google Play services. |
| Key Attestation shows an untrusted chain | File truncated or watermark comments broke the PEM blocks. | Re-download; compare the SHA-256 shown on the repository page with sha256sum keybox.xml. |
| Everything green, bank app still refuses | The app uses its own detection (root files, Magisk app, Xposed, developer options) or account-level signals. | Hide the root manager app, disable developer options and USB debugging, clear the bank app's data and retry. |
| Wallet tap-to-pay fails | Wallet not in target.txt or GMS cached an old verdict. | Add com.google.android.apps.walletnfcrel, then clear data of Google Play services and Wallet. |
| Was STRONG yesterday | Revoked overnight. | This is normal for public keys. See why keyboxes get revoked. |
Automating keybox updates
Replacing the file by hand every time a key dies gets old. AlwaysStrong is a Magisk / KernelSU / APatch module that fetches the current keybox from this site's /key endpoint into /data/adb/tricky_store/keybox.xml when you press its action button, and bundles TEESimulator-RS and PlayIntegrityFork so a bare device can reach STRONG in one install. Scripts can do the same with the raw endpoints:
curl -s https://evoker.qzz.io/key | base64 -d > /data/adb/tricky_store/keybox.xml
curl -s https://evoker.qzz.io/meta.json # filename, sha256, timestamp
curl -s https://evoker.qzz.io/keys.json # full archive index
Sources and further reading
- 5ec1cff, TrickyStore README (configuration files, target.txt suffixes, security_patch.txt formats)
- beakthoven, TrickyStoreOSS
- KOWX712, Tricky Addon – Update Target List
- vvb2060, Key Attestation
- osm0sis, PlayIntegrityFork; chiteroman, PlayIntegrityFix
- XDA, Tricky Store – Bootloader & Keybox Spoofing