Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65105889 authored by Daniel Norman's avatar Daniel Norman Committed by Android (Google) Code Review
Browse files

Merge "cleanup: Fix permission protection of setObservedMotionEventSources" into main

parents a19e75b3 b3f09c0c
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.accessibility;

import static android.Manifest.permission.ACCESSIBILITY_MOTION_EVENT_OBSERVING;
import static android.accessibilityservice.AccessibilityService.ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS;
import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE;
import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER;
@@ -423,19 +424,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
        mNotificationTimeout = info.notificationTimeout;
        mIsDefault = (info.flags & DEFAULT) != 0;
        mGenericMotionEventSources = info.getMotionEventSources();
        if (android.view.accessibility.Flags.motionEventObserving()) {
            if (mContext.checkCallingOrSelfPermission(
                            android.Manifest.permission.ACCESSIBILITY_MOTION_EVENT_OBSERVING)
                    == PackageManager.PERMISSION_GRANTED) {
        mObservedMotionEventSources = info.getObservedMotionEventSources();
            } else {
                Slog.e(
                        LOG_TAG,
                        "Observing motion events requires"
                            + " android.Manifest.permission.ACCESSIBILITY_MOTION_EVENT_OBSERVING.");
                mObservedMotionEventSources = 0;
            }
        }

        if (supportsFlagForNotImportantViews(info)) {
            if ((info.flags & AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS) != 0) {
@@ -534,6 +523,13 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
            throw new IllegalStateException(
                    "Cannot update service info: size is larger than safe parcelable limits.");
        }
        if (info.getObservedMotionEventSources() != 0
                && mContext.checkCallingPermission(ACCESSIBILITY_MOTION_EVENT_OBSERVING)
                != PackageManager.PERMISSION_GRANTED) {
            Slog.e(LOG_TAG, "Observing motion events requires permission "
                    + ACCESSIBILITY_MOTION_EVENT_OBSERVING);
            info.setObservedMotionEventSources(0);
        }
        final long identity = Binder.clearCallingIdentity();
        try {
            synchronized (mLock) {