diff options
author | 2024-09-03 05:26:33 +0000 | |
---|---|---|
committer | 2024-09-03 05:26:33 +0000 | |
commit | 2cf6816af362bbf2eb21434dfc264e9c39255cd8 (patch) | |
tree | 4608a5793c39217894e04da0a59f4f6db4aa8d47 | |
parent | 07a2b2bdb0b6831c835c31d30d99530917a03eb5 (diff) | |
parent | 7b95c6150b98555848f51a7a75c7c245f10ab520 (diff) |
Merge "Flash notification-related APIs should be restricted to system level access only" into main
3 files changed, 24 insertions, 42 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index ab29df357268..a87e5c8e1b56 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -2095,9 +2095,7 @@ public final class AccessibilityManager { * {@link android.view.Display#DEFAULT_DISPLAY}, is or lower than * {@link android.view.Display#INVALID_DISPLAY}, or is already being proxy-ed. * - * @throws SecurityException if the app does not hold the - * {@link Manifest.permission#MANAGE_ACCESSIBILITY} permission or the - * {@link Manifest.permission#CREATE_VIRTUAL_DEVICE} permission. + * @throws SecurityException if the app does not hold the required permissions. * * @hide */ @@ -2125,9 +2123,7 @@ public final class AccessibilityManager { * * @return {@code true} if the proxy is successfully unregistered. * - * @throws SecurityException if the app does not hold the - * {@link Manifest.permission#MANAGE_ACCESSIBILITY} permission or the - * {@link Manifest.permission#CREATE_VIRTUAL_DEVICE} permission. + * @throws SecurityException if the app does not hold the required permissions. * * @hide */ @@ -2180,8 +2176,8 @@ public final class AccessibilityManager { try { return service.startFlashNotificationSequence(context.getOpPackageName(), reason, mBinder); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while start flash notification sequence", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while start flash notification sequence", e); return false; } } @@ -2210,8 +2206,8 @@ public final class AccessibilityManager { try { return service.stopFlashNotificationSequence(context.getOpPackageName()); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while stop flash notification sequence", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while stop flash notification sequence", e); return false; } } @@ -2238,8 +2234,8 @@ public final class AccessibilityManager { try { return service.startFlashNotificationEvent(context.getOpPackageName(), reason, reasonPkg); - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error while start flash notification event", re); + } catch (RemoteException | SecurityException e) { + Log.e(LOG_TAG, "Error while start flash notification event", e); return false; } } diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl index bf79a2c6c6ea..2de3ce8532e3 100644 --- a/core/java/android/view/accessibility/IAccessibilityManager.aidl +++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl @@ -157,13 +157,13 @@ interface IAccessibilityManager { @EnforcePermission("INJECT_EVENTS") void injectInputEventToInputFilter(in InputEvent event); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean startFlashNotificationSequence(String opPkg, int reason, IBinder token); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean stopFlashNotificationSequence(String opPkg); - @RequiresNoPermission + @EnforcePermission("MANAGE_ACCESSIBILITY") boolean startFlashNotificationEvent(String opPkg, int reason, String reasonPkg); @RequiresNoPermission diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index f1a8b5a96080..b541345e1cb8 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -4903,40 +4903,26 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override - @RequiresNoPermission - public boolean startFlashNotificationSequence(String opPkg, - @FlashNotificationReason int reason, IBinder token) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.startFlashNotificationSequence(opPkg, - reason, token); - } finally { - Binder.restoreCallingIdentity(identity); - } + @EnforcePermission(MANAGE_ACCESSIBILITY) + public boolean startFlashNotificationSequence(String opPkg, @FlashNotificationReason int reason, + IBinder token) { + startFlashNotificationSequence_enforcePermission(); + return mFlashNotificationsController.startFlashNotificationSequence(opPkg, reason, token); } @Override - @RequiresNoPermission + @EnforcePermission(MANAGE_ACCESSIBILITY) public boolean stopFlashNotificationSequence(String opPkg) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.stopFlashNotificationSequence(opPkg); - } finally { - Binder.restoreCallingIdentity(identity); - } + stopFlashNotificationSequence_enforcePermission(); + return mFlashNotificationsController.stopFlashNotificationSequence(opPkg); } @Override - @RequiresNoPermission - public boolean startFlashNotificationEvent(String opPkg, - @FlashNotificationReason int reason, String reasonPkg) { - final long identity = Binder.clearCallingIdentity(); - try { - return mFlashNotificationsController.startFlashNotificationEvent(opPkg, - reason, reasonPkg); - } finally { - Binder.restoreCallingIdentity(identity); - } + @EnforcePermission(MANAGE_ACCESSIBILITY) + public boolean startFlashNotificationEvent(String opPkg, @FlashNotificationReason int reason, + String reasonPkg) { + startFlashNotificationEvent_enforcePermission(); + return mFlashNotificationsController.startFlashNotificationEvent(opPkg, reason, reasonPkg); } @Override |