From cc9e2c7169dd73cb7509e46661e72ff9c7fe7ad4 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Fri, 8 Nov 2019 14:57:15 -0800 Subject: [PATCH] Add update flag notify to reset callback The resetRuntimePermissionsInternal method defines its own version of the PermissionCallback. However, it did not override the -NotifyListener versions of the onPermissionUpdated method, which is used by the updatePermissionFlagsInternal method. This meant that the updated onPermissionsUpdated was not being called, in favor of the empty, default onPermissionsUpdatedNotifyListener. Test: manual Change-Id: Id1e1b23f9407016c526c10c6a527a44d7ef1b67b --- .../server/pm/permission/PermissionManagerService.java | 10 ++++++++++ .../permission/PermissionManagerServiceInternal.java | 2 ++ 2 files changed, 12 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 bb3388cc5b9a0..e9aad4fa94d85 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1539,6 +1539,16 @@ public class PermissionManagerService extends IPermissionManager.Stub { public void onInstallPermissionUpdated() { mDefaultPermissionCallback.onInstallPermissionUpdated(); } + + public void onPermissionUpdatedNotifyListener(@UserIdInt int[] updatedUserIds, + boolean sync, int uid) { + onPermissionUpdated(updatedUserIds, sync); + mOnPermissionChangeListeners.onPermissionsChanged(uid); + } + + public void onInstallPermissionUpdatedNotifyListener(int uid) { + mDefaultPermissionCallback.onInstallPermissionUpdatedNotifyListener(uid); + } }; for (int i = 0; i < permissionCount; i++) { diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java index a807a7e6313cc..fb5c6fddedc66 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java @@ -162,12 +162,14 @@ public abstract class PermissionManagerServiceInternal extends PermissionManager } public void onPermissionUpdatedNotifyListener(@UserIdInt int[] updatedUserIds, boolean sync, int uid) { + onPermissionUpdated(updatedUserIds, sync); } public void onPermissionRemoved() { } public void onInstallPermissionUpdated() { } public void onInstallPermissionUpdatedNotifyListener(int uid) { + onInstallPermissionUpdated(); } }