From 20eff34dfad2dc3a93c24e2ce6aa385db442e848 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Wed, 17 Jun 2020 14:03:49 -0700 Subject: [PATCH] Don't sync app op mode for root and system uid. Root and system server can pass all permission checks, so don't touch their app op mode to keep compatibility. Fixes: 155838450 Bug: 152592358 Test: b/155838450#comment32 Change-Id: Ia14542d132563aa01235dc9a9be1fd18851fd29e --- .../android/server/policy/PermissionPolicyService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index 3ee5f5097d593..37f088b170ebd 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -825,7 +825,15 @@ public final class PermissionPolicyService extends SystemService { return; } - if (pkgInfo == null || pkg == null || pkgInfo.requestedPermissions == null) { + if (pkgInfo == null || pkg == null || pkgInfo.applicationInfo == null + || pkgInfo.requestedPermissions == null) { + return; + } + + final int uid = pkgInfo.applicationInfo.uid; + if (uid == Process.ROOT_UID || uid == Process.SYSTEM_UID) { + // Root and system server always pass permission checks, so don't touch their app + // ops to keep compatibility. return; }