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

Commit f1a97a85 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android Git Automerger
Browse files

am 044d40ad: am 824aa860: Merge "Accessibility service needs to request...

am 044d40ad: am 824aa860: Merge "Accessibility service needs to request permission to be bound to." into jb-dev

* commit '044d40ad':
  Accessibility service needs to request permission to be bound to.
parents 785d10a1 044d40ad
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -59,9 +59,14 @@ import com.android.internal.os.HandlerCaller;
 * An accessibility is declared as any other service in an AndroidManifest.xml but it
 * must also specify that it handles the "android.accessibilityservice.AccessibilityService"
 * {@link android.content.Intent}. Failure to declare this intent will cause the system to
 * ignore the accessibility service. Following is an example declaration:
 * ignore the accessibility service. Additionally an accessibility service must request
 * {@link android.Manifest.permission#BIND_ACCESSIBILITY_SERVICE
 * android.permission.BIND_ACCESSIBILITY_SERVICE} permission to ensure that only the system
 * can bind to it. Failure to declare this intent will cause the system to ignore the
 * accessibility service. Following is an example declaration:
 * </p>
 * <pre> &lt;service android:name=".MyAccessibilityService"&gt;
 * <pre> &lt;service android:name=".MyAccessibilityService"
 *         android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE&gt;
 *     &lt;intent-filter&gt;
 *         &lt;action android:name="android.accessibilityservice.AccessibilityService" /&gt;
 *     &lt;/intent-filter&gt;
+2 −1
Original line number Diff line number Diff line
@@ -1039,7 +1039,8 @@
            </intent-filter>
        </activity>

        <service android:name="android.webkit.AccessibilityInjectorTest$MockAccessibilityService">
        <service android:name="android.webkit.AccessibilityInjectorTest$MockAccessibilityService"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
+13 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.database.ContentObserver;
import android.graphics.Rect;
import android.hardware.input.InputManager;
@@ -532,6 +533,18 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub

        for (int i = 0, count = installedServices.size(); i < count; i++) {
            ResolveInfo resolveInfo = installedServices.get(i);
            ServiceInfo serviceInfo = resolveInfo.serviceInfo;
            // For now we are enforcing this if the target version is JellyBean or
            // 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(
                        serviceInfo.packageName, serviceInfo.name).flattenToShortString()
                        + ": it does not require the permission "
                        + android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE);
                continue;
            }
            AccessibilityServiceInfo accessibilityServiceInfo;
            try {
                accessibilityServiceInfo = new AccessibilityServiceInfo(resolveInfo, mContext);
+4 −2
Original line number Diff line number Diff line
@@ -37,13 +37,15 @@
    <application>
        <uses-library android:name="android.test.runner" />

        <service android:name="com.android.server.AccessibilityManagerServiceTest$MyFirstMockAccessibilityService">
        <service android:name="com.android.server.AccessibilityManagerServiceTest$MyFirstMockAccessibilityService"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
          <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"/>
          </intent-filter>
        </service>

        <service android:name="com.android.server.AccessibilityManagerServiceTest$MySecondMockAccessibilityService">
        <service android:name="com.android.server.AccessibilityManagerServiceTest$MySecondMockAccessibilityService"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
          <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"/>
          </intent-filter>