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

Commit 19f4a29f authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Enforcing BIND_ACCESSIBILITY_SERVICE for connecting to an accessibility service.

1. This change enforces an accessibility service to require the system
   defined BIND_ACCESSIBILITY_SERVICE permission.

bug:6507771

Change-Id: If5e16bb4fa97891be0ccbb35e343773712e33b98
parent 39de2b0e
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -682,11 +682,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
        for (int i = 0, count = installedServices.size(); i < count; i++) {
        for (int i = 0, count = installedServices.size(); i < count; i++) {
            ResolveInfo resolveInfo = installedServices.get(i);
            ResolveInfo resolveInfo = installedServices.get(i);
            ServiceInfo serviceInfo = resolveInfo.serviceInfo;
            ServiceInfo serviceInfo = resolveInfo.serviceInfo;
            // For now we are enforcing this if the target version is JellyBean or
            if (!android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE.equals(serviceInfo.permission)) {
            // higher and in a later release we will enforce this for everyone.
            if (serviceInfo.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.JELLY_BEAN
                    && !android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE.equals(
                    serviceInfo.permission)) {
                Slog.w(LOG_TAG, "Skipping accessibilty service " + new ComponentName(
                Slog.w(LOG_TAG, "Skipping accessibilty service " + new ComponentName(
                        serviceInfo.packageName, serviceInfo.name).flattenToShortString()
                        serviceInfo.packageName, serviceInfo.name).flattenToShortString()
                        + ": it does not require the permission "
                        + ": it does not require the permission "