summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/accessibility/AccessibilityManagerService.java
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2012-10-24 19:45:07 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2012-10-25 09:41:11 -0700
commit7fd9882ba3e97423901e06188c6dbaaca661ecbd (patch)
treeb580140b9ed579388dc06755cd52b10671cb4b09 /services/java/com/android/server/accessibility/AccessibilityManagerService.java
parentead7d90e8b049c9689560015dbb761242fd86c99 (diff)
Accessibility layer in inconsistent state after running UI test automation tests.
1. The accessibility layer has a back door for a UI test automation code running from the shell to attach. The unregister code does an incorrect identity check and as a result the register UI test automation service is not disconnected until its process is killed. The fix is super safe and simple. bug:7409261 Change-Id: I4b1da18be6c5619dadd4a58fca6724529bc59dea
Diffstat (limited to 'services/java/com/android/server/accessibility/AccessibilityManagerService.java')
-rw-r--r--services/java/com/android/server/accessibility/AccessibilityManagerService.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 7c482f58f80b..6b277c7887e2 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -558,8 +558,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
public void unregisterUiTestAutomationService(IAccessibilityServiceClient serviceClient) {
synchronized (mLock) {
// Automation service is not bound, so pretend it died to perform clean up.
- if (mUiAutomationService != null
- && mUiAutomationService.mServiceInterface == serviceClient) {
+ if (mUiAutomationService != null && mUiAutomationService.mServiceInterface != null
+ && serviceClient != null && mUiAutomationService.mServiceInterface
+ .asBinder() == serviceClient.asBinder()) {
mUiAutomationService.binderDied();
}
}