summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java20
1 files changed, 6 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index edb80d73e95f..99a0e9032add 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1928,22 +1928,14 @@ public class WindowManagerService extends IWindowManager.Stub
&& attachedWindow.mActivityRecord.mTargetSdk >= Build.VERSION_CODES.O;
} else {
// Otherwise, look at the package
- try {
- ApplicationInfo appInfo = mContext.getPackageManager()
- .getApplicationInfoAsUser(packageName, 0,
- UserHandle.getUserId(callingUid));
- if (appInfo.uid != callingUid) {
- throw new SecurityException("Package " + packageName + " not in UID "
- + callingUid);
- }
- if (appInfo.targetSdkVersion >= Build.VERSION_CODES.O) {
- return true;
- }
- } catch (PackageManager.NameNotFoundException e) {
- /* ignore */
+ final ApplicationInfo appInfo = mPmInternal.getApplicationInfo(
+ packageName, 0 /* flags */, SYSTEM_UID, UserHandle.getUserId(callingUid));
+ if (appInfo == null || appInfo.uid != callingUid) {
+ throw new SecurityException("Package " + packageName + " not in UID "
+ + callingUid);
}
+ return appInfo.targetSdkVersion >= Build.VERSION_CODES.O;
}
- return false;
}
/**