From 17ae954834097efdff80c7e819e7c6bea7e0d854 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Fri, 8 May 2020 12:00:48 -0700 Subject: [PATCH] Don't enforce declaration of app op permissions without public API. Fixes: 155936071 Test: atest IpSecManagerTunnelTest Change-Id: If817b995b1d15c98b3923292df382b8c71891f63 --- .../policy/PermissionPolicyService.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index 341fadc3b5778..8648a2392d9e4 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -208,15 +208,21 @@ public final class PermissionPolicyService extends SystemService { for (int i = 0; i < appOpPermissionInfosSize; i++) { final PermissionInfo appOpPermissionInfo = appOpPermissionInfos.get(i); - final int appOpCode = AppOpsManager.permissionToOpCode(appOpPermissionInfo.name); - if (appOpCode != OP_NONE) { - mAppOpPermissions.add(appOpPermissionInfo.name); - - try { - appOpsService.startWatchingMode(appOpCode, null, mAppOpsCallback); - } catch (RemoteException e) { - Slog.wtf(LOG_TAG, "Cannot set up app-ops listener", e); - } + switch (appOpPermissionInfo.name) { + case android.Manifest.permission.ACCESS_NOTIFICATIONS: + case android.Manifest.permission.MANAGE_IPSEC_TUNNELS: + continue; + default: + final int appOpCode = AppOpsManager.permissionToOpCode( + appOpPermissionInfo.name); + if (appOpCode != OP_NONE) { + mAppOpPermissions.add(appOpPermissionInfo.name); + try { + appOpsService.startWatchingMode(appOpCode, null, mAppOpsCallback); + } catch (RemoteException e) { + Slog.wtf(LOG_TAG, "Cannot set up app-ops listener", e); + } + } } }