ARTICLE AD BOX
Suggested Answer:
Headline: Use getModuleApplicationInfo() instead of getModuleContext() in API 101
In libxposed API 101, the method getModuleContext() is indeed deprecated or removed from the base XposedModule class. To access your module's resources (like strings.xml), you should use getModuleApplicationInfo() to manually initialize your resources.
Here is the clean way to handle this in API 101:
@Override public void onPackageReady(@NonNull PackageReadyParam param) { if (!param.getPackageName().equals("com.android.systemui")) return; try { // 1. Get ApplicationInfo of your own module ApplicationInfo moduleInfo = getModuleApplicationInfo(); // 2. Initialize AssetManager and add your APK path AssetManager assets = AssetManager.class.newInstance(); Method addAssetPath = AssetManager.class.getMethod("addAssetPath", String.class); addAssetPath.invoke(assets, moduleInfo.sourceDir); // 3. Create Resources object using system metrics Resources systemRes = Resources.getSystem(); mRes = new Resources(assets, systemRes.getDisplayMetrics(), systemRes.getConfiguration()); // Now you can use mRes.getString() or mRes.getIdentifier() // to access your module's localized strings. } catch (Throwable t) { Log.e("Back2Kill", "Failed to load module resources: " + t.getMessage()); } }Why this happens: The new API focuses on a more "barebones" approach for better compatibility across different Android versions and Xposed loaders (like LSPosed). By manually loading the AssetManager, you ensure that your module remains independent of the target app's context.
