Loading core/java/android/accessibilityservice/AccessibilityService.java +7 −2 Original line number Diff line number Diff line Loading @@ -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> <service android:name=".MyAccessibilityService"> * <pre> <service android:name=".MyAccessibilityService" * android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE> * <intent-filter> * <action android:name="android.accessibilityservice.AccessibilityService" /> * </intent-filter> Loading core/tests/coretests/AndroidManifest.xml +2 −1 Original line number Diff line number Diff line Loading @@ -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> Loading services/java/com/android/server/accessibility/AccessibilityManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading services/tests/servicestests/AndroidManifest.xml +4 −2 Original line number Diff line number Diff line Loading @@ -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> Loading Loading
core/java/android/accessibilityservice/AccessibilityService.java +7 −2 Original line number Diff line number Diff line Loading @@ -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> <service android:name=".MyAccessibilityService"> * <pre> <service android:name=".MyAccessibilityService" * android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE> * <intent-filter> * <action android:name="android.accessibilityservice.AccessibilityService" /> * </intent-filter> Loading
core/tests/coretests/AndroidManifest.xml +2 −1 Original line number Diff line number Diff line Loading @@ -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> Loading
services/java/com/android/server/accessibility/AccessibilityManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading
services/tests/servicestests/AndroidManifest.xml +4 −2 Original line number Diff line number Diff line Loading @@ -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> Loading