From 87bfb3f8180c5716fc48a0bc4c1aa8b7d297cf16 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 6 Aug 2021 20:47:42 +0800 Subject: [PATCH] [core] Fix app filter for non-primary users (#852) --- .../main/java/org/lsposed/lspd/service/PackageService.java | 3 +-- .../src/main/java/android/content/pm/IPackageManager.java | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) 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 b27b2392..b9220cc1 100644 --- a/core/src/main/java/org/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/org/lsposed/lspd/service/PackageService.java @@ -65,7 +65,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; -import java.util.stream.Collectors; import hidden.HiddenApiBridge; @@ -209,7 +208,7 @@ public class PackageService { } } - if (pkgInfo == null || pkgInfo.applicationInfo == null || (!pkgInfo.packageName.equals("android") && (pkgInfo.applicationInfo.sourceDir == null || pkgInfo.applicationInfo.deviceProtectedDataDir == null || !new File(pkgInfo.applicationInfo.sourceDir).exists()))) + if (pkgInfo.applicationInfo == null ||(!pkgInfo.packageName.equals("android") && (pkgInfo.applicationInfo.sourceDir == null || !new File(pkgInfo.applicationInfo.sourceDir).exists() || (!pm.isPackageAvailable(packageName, userId) && !pm.getApplicationHiddenSettingAsUser(packageName, userId))))) return null; return pkgInfo; } diff --git a/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java b/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java index c45c463e..8bfc7eda 100644 --- a/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java +++ b/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java @@ -12,6 +12,10 @@ import java.util.List; public interface IPackageManager extends IInterface { + boolean isPackageAvailable(String packageName, int userId) throws RemoteException; + + boolean getApplicationHiddenSettingAsUser(String packageName, int userId) throws RemoteException; + ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) throws RemoteException;