summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Song Chun Fan <schfan@google.com> 2023-04-07 22:09:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-07 22:09:10 +0000
commit34729ab5a852a1f52f8339106b2522de4768d603 (patch)
treea136fa3d1b5bacf84eab7592e619050c6bf91376
parent53ea8320242b260307f62a868c0ab8a8e8b1d154 (diff)
parent98261b47d4761583d6a1689f46353a9d4db94d33 (diff)
Merge "[MediaProjection] Fix package visibility check" into udc-dev
-rw-r--r--services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java27
1 files changed, 12 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java
index f0e8ede5987d..94d5aabe24e5 100644
--- a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java
+++ b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java
@@ -357,12 +357,16 @@ public final class MediaProjectionManagerService extends SystemService
} catch (NameNotFoundException e) {
throw new IllegalArgumentException("No package matching :" + packageName);
}
-
- projection = new MediaProjection(type, uid, packageName, ai.targetSdkVersion,
- ai.isPrivilegedApp());
- if (isPermanentGrant) {
- mAppOps.setMode(AppOpsManager.OP_PROJECT_MEDIA,
- projection.uid, projection.packageName, AppOpsManager.MODE_ALLOWED);
+ final long callingToken = Binder.clearCallingIdentity();
+ try {
+ projection = new MediaProjection(type, uid, packageName, ai.targetSdkVersion,
+ ai.isPrivilegedApp());
+ if (isPermanentGrant) {
+ mAppOps.setMode(AppOpsManager.OP_PROJECT_MEDIA,
+ projection.uid, projection.packageName, AppOpsManager.MODE_ALLOWED);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(callingToken);
}
return projection;
}
@@ -418,16 +422,9 @@ public final class MediaProjectionManagerService extends SystemService
if (packageName == null || packageName.isEmpty()) {
throw new IllegalArgumentException("package name must not be empty");
}
- MediaProjection projection;
final UserHandle callingUser = Binder.getCallingUserHandle();
- final long callingToken = Binder.clearCallingIdentity();
- try {
- projection = createProjectionInternal(uid, packageName, type, isPermanentGrant,
- callingUser, false);
- } finally {
- Binder.restoreCallingIdentity(callingToken);
- }
- return projection;
+ return createProjectionInternal(uid, packageName, type, isPermanentGrant,
+ callingUser, false);
}
@Override // Binder call