Skip to content

Security woven into
your Android build.

A Gradle-delivered engine that instruments supported bytecode, bundles native detection, and reroutes supported sensitive API calls. No initialization call in the consumer app.

app/build.gradle.kts
plugins {
    id("com.android.application")
    id("com.apparmorx.security") version "0.1.0"
}

Integration preview. Public plugin distribution is pending; local evaluation uses Maven Local and the engine quickstart. The runtime plugin is licensed Apache-2.0.

Try the attacks

Run what a careless or malicious library could do inside any app, then see what it receives. One scenario shows where the protection stops.

Attack simulatorIllustrative demo

0 of 4 SDK scenarios run

Read the clipboard

One-time codes and passwords pass through the clipboard. Many SDKs read it silently.

clipboard.getPrimaryClip()

Right-hand values are the measured demo-app result on a Pixel 7 Pro. Left-hand values are illustrative. Covers the app's own supported call sites only.

Runtime evidence

28 documented probes

JVM, framework, and native checks cover root indicators, debugger and tracer state, hooking artifacts, executable-memory indicators, and integrity signals. CLEAR, DETECTED, and UNAVAILABLE keep failed probes separate from clean outcomes.

Dependency firewall

Supported rewritten call sites

Reroute supported clipboard, identifier, location, and TLS setup calls in instrumented app and dependency bytecode. Direct framework calls from injected code can bypass these rewritten call sites.

Policy-controlled response

Observe, warn, or restrict

Review development, standard, and hardened profiles alongside signing and startup behavior. Debuggable builds suppress enforcement against the developer. Reports expose overrides that weaken a profile.

What about process termination?

killOnConfirmedHooking is explicitly opt-in and false by default in every profile. It is disabled for debuggable builds and responds only to DETECTED hooking or injection evidence. Checks are periodic or lifecycle-triggered, not continuous: they cannot guarantee prevention of the action already in flight, only stop further activity in that process. A documented attach-mode test stopped its tested payload; spawn-time injection still succeeded.

Is it available on the Plugin Portal?

Not yet. Domain ownership is only one part of release preparation. Licensing, public source, namespace approval, publishing credentials, build validation, and compatibility evidence must be reviewed before publication.

Does this protect iOS or every Android framework?

This engine targets Android. Flutter, React Native, and Unity hosts remain untested; protecting an Android shell does not imply protection of Dart or JavaScript application logic. No independent penetration test has been completed.