From 7a35906cb61e0f0e89f1fb8fd3210a0b589c5c65 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Mon, 10 May 2021 01:01:00 +0800 Subject: [PATCH] Update xposed module metadata parsing (#558) * Stop read xposedmodule Official documentation requires `xposedmodule` value is `true`, but in the previous implementation there was no judgment on what the value was, even if `false`. So, remove it and use `xposedminversion` to determine if the app is an xposed module. * xposedscope supports string ```xml ``` --- .../java/org/lsposed/manager/adapters/ScopeAdapter.java | 2 +- .../main/java/org/lsposed/manager/util/ModuleUtil.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java b/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java index 14dca2b4..2c2662fd 100644 --- a/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java +++ b/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java @@ -164,7 +164,7 @@ public class ScopeAdapter extends RecyclerView.Adapter return false; } if (preferences.getBoolean("filter_modules", true)) { - if (info.applicationInfo.metaData != null && info.applicationInfo.metaData.containsKey("xposedmodule")) { + if (info.applicationInfo.metaData != null && info.applicationInfo.metaData.containsKey("xposedminversion")) { return true; } } diff --git a/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java b/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java index f6d0dcfe..f5660af1 100644 --- a/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java +++ b/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java @@ -88,7 +88,7 @@ public final class ModuleUtil { if (!app.enabled || app.uid / 100000 != 0) continue; - if (app.metaData != null && app.metaData.containsKey("xposedmodule")) { + if (app.metaData != null && app.metaData.containsKey("xposedminversion")) { InstalledModule installed = new InstalledModule(pkg, false); modules.put(pkg.packageName, installed); } @@ -119,7 +119,7 @@ public final class ModuleUtil { } ApplicationInfo app = pkg.applicationInfo; - if (app.enabled && app.metaData != null && app.metaData.containsKey("xposedmodule")) { + if (app.enabled && app.metaData != null && app.metaData.containsKey("xposedminversion")) { InstalledModule module = new InstalledModule(pkg, false); installedModules.put(packageName, module); for (ModuleListener listener : listeners) { @@ -262,6 +262,10 @@ public final class ModuleUtil { int scopeListResourceId = app.metaData.getInt("xposedscope"); if (scopeListResourceId != 0) { scopeList = Arrays.asList(pm.getResourcesForApplication(app).getStringArray(scopeListResourceId)); + } else { + String scopeListString = app.metaData.getString("xposedscope"); + if (scopeListString != null) + scopeList = Arrays.asList(scopeListString.split(";")); } } catch (Exception e) { e.printStackTrace();