Android Hidden API Compatibility Library
Starting from Android 9 (API level 28), the platform enforces restrictions on non-SDK interface usage. These restrictions apply when apps attempt to access non-SDK interfaces through reflection or JNI.
These measures were implemented to enhance stability by reducing unexpected crashes and minimizing emergency updates for developers.
For more details, see Google's official documentation: Improving Stability by Reducing Usage of non-SDK Interfaces.
try { 
    val clazz = Class.forName("dalvik.system.VMRuntime")
    val method = clazz.getDeclaredMethod("setHiddenApiExemptions", Array<String>::class.java)
    Toast.makeText(context, "API access succeeded: $method", Toast.LENGTH_SHORT).show()
} catch (e: Throwable) {
    Toast.makeText(context, "API access failed: ${e.message}", Toast.LENGTH_SHORT).show()
}- Zero Code Modification - Works with existing codebase without any changes
- Automatic Exemption Handling - Transparently manages hidden API access restrictions
- Lightweight Integration - Single initialization call for seamless operation
- Cross-Version Support - Compatible with Android 9+ (API 28 and higher)
Add dependency in your app's build.gradle:
dependencies {
    implementation 'io.github.chanjlee:hiddenapi:1.1.0'
}Initialize once in your Application class:
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        HiddenApiCompat.compat(this)
    }
}The library implements the following mechanisms:
- Automatic Signature Bypass - Utilizes Android's hidden API exemption protocol
- Reflection Optimization - Smart handling of reflection requirements
- Runtime Safety - Maintains original app behavior while enabling privileged access
| Android Version | API Level | Support Status | 
|---|---|---|
| Android 9 | 28 | ✔️ Full |