Use only with supported FoxPhone AOSP 10 / AOSP 12 native images, minimum Android API 26. Confirm native activation support first. Third-party app compatibility is not guaranteed. Do not add another Xposed Bridge.
Download xposed-bridge-debug.aar from the platform and verify its size and SHA-256. Place it in app/libs/ and use compileOnly to avoid bundling a duplicate Bridge.
Size: 271231 bytes
SHA-256: D9DC538315E875D83357B3986CC27D1F7535BE17D9F3F6E69C2F327C9A23FC98dependencies {
compileOnly(files("libs/xposed-bridge-debug.aar"))
}dependencies {
compileOnly files('libs/xposed-bridge-debug.aar')
}Create a No Activity project in Android Studio. In app/src/main/assets/xposed_init, put one fully qualified entry class per line. The namespace is de.robv.android.examed; do not substitute another Bridge namespace.
com.example.myapplication.Mainpackage com.example.myapplication;
import de.robv.android.examed.IXposedHookLoadPackage;
import de.robv.android.examed.XposedBridge;
import de.robv.android.examed.callbacks.XC_LoadPackage;
public class Main implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam param) throws Throwable {
if (!"com.example.target".equals(param.packageName)) { return; }
XposedBridge.log("Native Xposed module loaded: " + param.packageName);
}
}Implement the entry class and restrict logic to the authorized target package. Add a keep rule when shrinking code. Verify assets/xposed_init in the built APK, install on a supported device, enable through the native activation component and launch the target app to inspect logs.
-keep class com.example.myapplication.Main { *; }If loading fails, check the image, entry class, assets path, shrinking rules, namespace and duplicate dependencies. Validate again after image or app upgrades.