am 824aa860: Merge "Accessibility service needs to request permission to be bound to." into jb-dev
* commit '824aa860cd0b38b09779aab417612b115fd495a3': Accessibility service needs to request permission to be bound to.
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user