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

Commit a3415c27 authored by Daniel Norman's avatar Daniel Norman
Browse files

fix(trusted_service): Resolve user ID in enableTrustedAccessibilityService

Certain AccessibilityManager callers have userId=USER_CURRENT
which needs to be resolved to a real user ID before acting on
the request.

Bug: 418057329
Test: verified by consumer of this API
Flag: android.view.accessibility.enable_trusted_accessibility_service_api
Change-Id: I7baa8cd4551bbd665d7acd8f25621f5fcbbff54b
parent c5a28975
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -4729,13 +4729,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
            return false;
        }
        synchronized (mLock) {
            if (userId != mCurrentUserId) {
            final int resolvedUserId = mSecurityPolicy
                    .resolveCallingUserIdEnforcingPermissionsLocked(userId);
            if (resolvedUserId != mCurrentUserId) {
                return false;
            }
            final AccessibilityServiceInfo info = getCurrentUserStateLocked()
                    .getInstalledServiceInfoLocked(trustedAccessibilityService);
            if (info != null && isAccessibilityServicePreinstalledAndTrusted(info)) {
                enableAccessibilityServiceLocked(trustedAccessibilityService, userId);
                enableAccessibilityServiceLocked(trustedAccessibilityService, resolvedUserId);
                return true;
            }
            return false;