Dakkshesh eaa017be86 cpp: RefBase: Dont use incWeakRequireWeak()
- Fixes the following on older android 10/11 platforms:
08-11 14:53:05.143  1388  1388 I TrickyStoreOSS: TrickyStore injector starting...
08-11 14:53:05.144  1388  1388 I TrickyStoreOSS: Starting injection of /data/adb/modules/tricky_store/libTrickyStoreOSS.so (entry: entry) into process 1024
08-11 14:53:05.151   587   587 I Zygote  : Preloading shared libraries...
08-11 14:53:05.155  1026  1053 I ServiceManager: Waiting for service 'package_native' on '/dev/binder'...
08-11 14:53:05.155  1388  1388 W TrickyStoreOSS: Primary dlopen failed for library: /data/adb/modules/tricky_store/libTrickyStoreOSS.so, dlerror: dlopen failed: cannot locate symbol "_ZN7android7RefBase12weakref_type18incWeakRequireWeakEPKv" referenced by "/data/adb/modules/tricky_store/libTrickyStoreOSS.so"..., trying fallback
08-11 14:53:05.155  1388  1388 I TrickyStoreOSS: Using fallback dlopen method for compatibility
08-11 14:53:05.158  1388  1388 E TrickyStoreOSS: Fallback dlopen failed for library: /data/adb/modules/tricky_store/libTrickyStoreOSS.so, dlerror: dlopen failed: cannot locate symbol "_ZN7android7RefBase12weakref_type18incWeakRequireWeakEPKv" referenced by "/data/adb/modules/tricky_store/libTrickyStoreOSS.so"...
08-11 14:53:05.158  1388  1388 E TrickyStoreOSS: Failed to load library in remote process
08-11 14:53:05.158  1388  1388 E TrickyStoreOSS: Injection failed

- Also improve error handling in injection process

Signed-off-by: Dakkshesh <beakthoven@gmail.com>
2025-08-11 20:33:37 +05:30
2025-08-06 19:46:42 +05:30
2025-08-06 19:46:58 +05:30
2025-08-06 21:01:53 +05:30
2025-08-11 16:20:15 +05:30
2025-08-06 19:46:42 +05:30
2025-08-06 21:01:18 +05:30
2025-08-06 19:46:42 +05:30
2025-08-04 09:38:02 +05:30
2025-08-06 21:01:53 +05:30
2025-08-06 21:01:53 +05:30
2025-08-04 14:01:31 +05:30
2025-08-06 21:06:15 +05:30
2025-08-06 19:46:42 +05:30

Tricky Store OSS A Trick of Keystore They Forgot to Hide

A FOSS alternative to the proprietary TrickyStore Magisk module.

Why?

We all know about the multiple violations and questionable practices by the author of TrickyStore.
Because of this, I decided to create a complete rewrite from scratch, based on:

  • Various projects mentioned in Acknowledgement section
  • Official changelogs and expected behavior of newer releases
  • My own feature additions and fixes that were part of an earlier fork of the older codebase

Tricky Store OSS is rightfully licensed under GPLv3, ensuring it stays free and compliant with open-source laws.

Features

  • 100% FOSS
  • Developed to match the proprietary implementations behavior and feature set as closely as possible

📦 Installtion

  1. Flash this module and reboot
  2. (Optional) Place an unrevoked hardware keybox.xml at /data/adb/tricky_store/keybox.xml for extended integrity
  3. (Optional) Customize target packages in /data/adb/tricky_store/target.txt
  4. (Optional) Customize security patch in /data/adb/tricky_store/security_patch.txt
  5. Enjoy!

All configuration files will take effect immediately.

keybox.xml

format:

<?xml version="1.0"?>
<AndroidAttestation>
    <NumberOfKeyboxes>1</NumberOfKeyboxes>
    <Keybox DeviceID="...">
        <Key algorithm="ecdsa|rsa">
            <PrivateKey format="pem">
-----BEGIN EC PRIVATE KEY-----
...
-----END EC PRIVATE KEY-----
            </PrivateKey>
            <CertificateChain>
                <NumberOfCertificates>...</NumberOfCertificates>
                    <Certificate format="pem">
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
                    </Certificate>
                ... more certificates
            </CertificateChain>
        </Key>...
    </Keybox>
</AndroidAttestation>

Mode configuration

Tricky Store OSS supports two modes: leaf certificate hacking and certificate generation. On TEE-broken devices, leaf hacking wont work since the leaf certificate cant be retrieved from TEE. The module automatically selects the appropriate mode for your device.

You can override this behavior per package:

  • Add ! → Force certificate generation mode
  • Add ? → Force leaf hacking mode
  • No symbol → Automatic mode

For example:

# target.txt
# use automatic mode for gsf
com.google.android.gsf
# use leaf certificate hacking mode for key attestation App
io.github.vvb2060.keyattestation?
# use certificate generating mode for gms
com.google.android.gms!

Customize security patch level

Create the file /data/adb/tricky_store/security_patch.txt.

Simple:

# Hack os/vendor/boot security patch level
20241101

Advanced:

# os security patch level is 202411
system=202411
# do not hack boot patch level
boot=no
# vendor patch level is 20241101 (another format)
vendor=2024-11-01
# default value
# all=20241101
# keep consistent with system prop
# system=prop

Note: This only affects KeyAttestation results. It does not change system properties; use resetprop separately if needed.

🤝 Contributions

PRs are welcome. Thank you for supporting true open-source development.

❤️ Acknowledgement

S
Description
Software simulation for Android hardware-backed key pairs with key attestation | https://t.me/superpowers9
Readme GPL-3.0
2.9 MiB
Languages
Kotlin 61.3%
C++ 18.2%
Rust 9.2%
Java 6.7%
Shell 4.4%
Other 0.2%