From f010322c916310c85d983bb2a466a01df5e4b830 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 3 Jun 2021 18:42:32 +0800 Subject: [PATCH] [core] Fix get module source (#725) --- core/build.gradle.kts | 2 +- .../java/org/lsposed/lspd/service/LSPManagerService.java | 4 ++-- .../main/java/org/lsposed/lspd/service/PackageService.java | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 9b4be2bf..a4304d05 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -58,7 +58,7 @@ val verName: String by rootProject.extra dependencies { implementation("dev.rikka.ndk:riru:${moduleMinRiruVersionName}") implementation("dev.rikka.ndk.thirdparty:cxx:1.1.0") - implementation("com.android.tools.build:apksig:7.0.0-beta01") + implementation("com.android.tools.build:apksig:7.0.0-beta03") implementation("org.apache.commons:commons-lang3:3.12.0") implementation("de.upb.cs.swt:axml:2.1.1") compileOnly(project(":hiddenapi-stubs")) diff --git a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java index 552ff8f4..6dba20d4 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -118,7 +118,7 @@ public class LSPManagerService extends ILSPManagerService.Stub { @Override public boolean enableModule(String packageName) throws RemoteException { - PackageInfo pkgInfo = PackageService.getPackageInfo(packageName, 0, 0); + PackageInfo pkgInfo = PackageService.getPackageInfo(packageName, PackageService.MATCH_ALL_FLAGS, 0); if (pkgInfo == null) return false; return ConfigManager.getInstance().enableModule(packageName, pkgInfo.applicationInfo.sourceDir); } @@ -210,7 +210,7 @@ public class LSPManagerService extends ILSPManagerService.Stub { @Override public List getUsers() throws RemoteException { var users = new LinkedList(); - for(var user: UserService.getUsers()){ + for (var user : UserService.getUsers()) { var info = new UserInfo(); info.id = user.id; info.name = user.name; diff --git a/core/src/main/java/org/lsposed/lspd/service/PackageService.java b/core/src/main/java/org/lsposed/lspd/service/PackageService.java index 00b9a3d9..cf56cadf 100644 --- a/core/src/main/java/org/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/org/lsposed/lspd/service/PackageService.java @@ -74,6 +74,7 @@ public class PackageService { static final int INSTALL_FAILED_INTERNAL_ERROR = -110; static final int INSTALL_REASON_UNKNOWN = 0; + static final int MATCH_ALL_FLAGS = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE | PackageManager.MATCH_UNINSTALLED_PACKAGES; private static IPackageManager pm = null; private static IBinder binder = null; @@ -134,9 +135,8 @@ public class PackageService { } if (filterNoProcess) { res = res.stream().filter(packageInfo -> { - int baseFlag = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE | PackageManager.MATCH_UNINSTALLED_PACKAGES; try { - PackageInfo pkgInfo = getPackageInfoWithComponents(packageInfo.packageName, baseFlag, packageInfo.applicationInfo.uid / 100000); + PackageInfo pkgInfo = getPackageInfoWithComponents(packageInfo.packageName, MATCH_ALL_FLAGS, packageInfo.applicationInfo.uid / 100000); return !fetchProcesses(pkgInfo).isEmpty(); } catch (RemoteException e) { return true; @@ -173,8 +173,7 @@ public class PackageService { public static Pair, Integer> fetchProcessesWithUid(Application app) throws RemoteException { IPackageManager pm = getPackageManager(); if (pm == null) return new Pair<>(Collections.emptySet(), -1); - int baseFlag = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; - PackageInfo pkgInfo = getPackageInfoWithComponents(app.packageName, baseFlag, app.userId); + PackageInfo pkgInfo = getPackageInfoWithComponents(app.packageName, MATCH_ALL_FLAGS, app.userId); if (pkgInfo == null || pkgInfo.applicationInfo == null) return new Pair<>(Collections.emptySet(), -1); return new Pair<>(fetchProcesses(pkgInfo), pkgInfo.applicationInfo.uid);