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.