Loading services/core/java/com/android/server/am/ActiveServices.java +2 −2 Original line number Diff line number Diff line Loading @@ -5663,8 +5663,8 @@ public final class ActiveServices { } if (ret == REASON_DENIED) { if (mAm.checkPermission(SYSTEM_ALERT_WINDOW, callingPid, callingUid) == PERMISSION_GRANTED) { if (mAm.mAtmInternal.hasSystemAlertWindowPermission(callingUid, callingPid, callingPackage)) { ret = REASON_SYSTEM_ALERT_WINDOW_PERMISSION; } } Loading services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +6 −0 Original line number Diff line number Diff line Loading @@ -607,4 +607,10 @@ public abstract class ActivityTaskManagerInternal { */ void commit() throws RemoteException; } /** * A utility method to check AppOps and PackageManager for SYSTEM_ALERT_WINDOW permission. */ public abstract boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage); } services/core/java/com/android/server/wm/ActivityTaskManagerService.java +9 −1 Original line number Diff line number Diff line Loading @@ -933,7 +933,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return getUserManager().hasUserRestriction(restriction, userId); } boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { final int mode = getAppOpsManager().noteOpNoThrow(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, callingUid, callingPackage, /* featureId */ null, ""); if (mode == AppOpsManager.MODE_DEFAULT) { Loading Loading @@ -6370,6 +6371,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return new PackageConfigurationUpdaterImpl(Binder.getCallingPid()); } } @Override public boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { return ActivityTaskManagerService.this.hasSystemAlertWindowPermission(callingUid, callingPid, callingPackage); } } final class PackageConfigurationUpdaterImpl implements Loading Loading
services/core/java/com/android/server/am/ActiveServices.java +2 −2 Original line number Diff line number Diff line Loading @@ -5663,8 +5663,8 @@ public final class ActiveServices { } if (ret == REASON_DENIED) { if (mAm.checkPermission(SYSTEM_ALERT_WINDOW, callingPid, callingUid) == PERMISSION_GRANTED) { if (mAm.mAtmInternal.hasSystemAlertWindowPermission(callingUid, callingPid, callingPackage)) { ret = REASON_SYSTEM_ALERT_WINDOW_PERMISSION; } } Loading
services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +6 −0 Original line number Diff line number Diff line Loading @@ -607,4 +607,10 @@ public abstract class ActivityTaskManagerInternal { */ void commit() throws RemoteException; } /** * A utility method to check AppOps and PackageManager for SYSTEM_ALERT_WINDOW permission. */ public abstract boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage); }
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +9 −1 Original line number Diff line number Diff line Loading @@ -933,7 +933,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return getUserManager().hasUserRestriction(restriction, userId); } boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { final int mode = getAppOpsManager().noteOpNoThrow(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, callingUid, callingPackage, /* featureId */ null, ""); if (mode == AppOpsManager.MODE_DEFAULT) { Loading Loading @@ -6370,6 +6371,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return new PackageConfigurationUpdaterImpl(Binder.getCallingPid()); } } @Override public boolean hasSystemAlertWindowPermission(int callingUid, int callingPid, String callingPackage) { return ActivityTaskManagerService.this.hasSystemAlertWindowPermission(callingUid, callingPid, callingPackage); } } final class PackageConfigurationUpdaterImpl implements Loading