Loading services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +8 −0 Original line number Diff line number Diff line Loading @@ -647,6 +647,14 @@ public class AccessibilitySecurityPolicy { return false; } if ((serviceInfo.flags & ServiceInfo.FLAG_EXTERNAL_SERVICE) != 0) { Slog.w(LOG_TAG, "Skipping accessibility service " + new ComponentName( serviceInfo.packageName, serviceInfo.name).flattenToShortString() + ": the service is the external one and doesn't allow to register as " + "an accessibility service "); return false; } int servicePackageUid = serviceInfo.applicationInfo.uid; if (mAppOpsManager.noteOpNoThrow(AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE, servicePackageUid, serviceInfo.packageName, null, null) Loading services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -572,6 +572,18 @@ public class AccessibilitySecurityPolicyTest { serviceInfo.applicationInfo.uid, serviceInfo.packageName, null, null); } @Test public void canRegisterService_isExternalService_returnFalse() { final ServiceInfo serviceInfo = new ServiceInfo(); serviceInfo.applicationInfo = new ApplicationInfo(); serviceInfo.packageName = PACKAGE_NAME; serviceInfo.name = AccessibilitySecurityPolicyTest.class.getSimpleName(); serviceInfo.permission = android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE; serviceInfo.flags |= ServiceInfo.FLAG_EXTERNAL_SERVICE; assertFalse(mA11ySecurityPolicy.canRegisterService(serviceInfo)); } @Test public void checkAccessibilityAccess_shouldCheckAppOps() { final AccessibilityServiceInfo mockServiceInfo = Mockito.mock( Loading Loading
services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +8 −0 Original line number Diff line number Diff line Loading @@ -647,6 +647,14 @@ public class AccessibilitySecurityPolicy { return false; } if ((serviceInfo.flags & ServiceInfo.FLAG_EXTERNAL_SERVICE) != 0) { Slog.w(LOG_TAG, "Skipping accessibility service " + new ComponentName( serviceInfo.packageName, serviceInfo.name).flattenToShortString() + ": the service is the external one and doesn't allow to register as " + "an accessibility service "); return false; } int servicePackageUid = serviceInfo.applicationInfo.uid; if (mAppOpsManager.noteOpNoThrow(AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE, servicePackageUid, serviceInfo.packageName, null, null) Loading
services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -572,6 +572,18 @@ public class AccessibilitySecurityPolicyTest { serviceInfo.applicationInfo.uid, serviceInfo.packageName, null, null); } @Test public void canRegisterService_isExternalService_returnFalse() { final ServiceInfo serviceInfo = new ServiceInfo(); serviceInfo.applicationInfo = new ApplicationInfo(); serviceInfo.packageName = PACKAGE_NAME; serviceInfo.name = AccessibilitySecurityPolicyTest.class.getSimpleName(); serviceInfo.permission = android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE; serviceInfo.flags |= ServiceInfo.FLAG_EXTERNAL_SERVICE; assertFalse(mA11ySecurityPolicy.canRegisterService(serviceInfo)); } @Test public void checkAccessibilityAccess_shouldCheckAppOps() { final AccessibilityServiceInfo mockServiceInfo = Mockito.mock( Loading