From 24274277e1d0dbdbc1d9d7ed2e6f851c068112ac Mon Sep 17 00:00:00 2001 From: atrost Date: Mon, 17 Feb 2020 19:26:41 +0000 Subject: Clear calling id before binder call The permission check in app compat fails without clearing calling id. Bug: 149662772 Test: launch com.appstem.mammoth, it crashed -> add clearcallingid -> doesn't crash Change-Id: Ide87da8b8c13e8a10723f379bd4e4b386e5d35e4 --- .../com/android/server/pm/permission/PermissionManagerService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 1fc2dd5193e1..36697f9b6d60 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1878,6 +1878,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { return false; } + final long token = Binder.clearCallingIdentity(); try { if (permName.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION) && mPlatformCompat.isChangeEnabledByPackageName(BACKGROUND_RATIONALE_CHANGE_ID, @@ -1886,6 +1887,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { } } catch (RemoteException e) { Log.e(TAG, "Unable to check if compatibility change is enabled.", e); + } finally { + Binder.restoreCallingIdentity(token); } return (flags & PackageManager.FLAG_PERMISSION_USER_SET) != 0; -- cgit v1.2.3-59-g8ed1b