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
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 7c482f5..6b277c7 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -558,8 +558,9 @@
     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();
             }
         }