From afe3ef1b36d040f3095db7ec1df644a074df8906 Mon Sep 17 00:00:00 2001 From: Casey Burkhardt Date: Wed, 5 Apr 2017 16:47:19 -0700 Subject: [PATCH] Revise Accessibility button chooser intent/permissions 1) Switch AccessibilityButtonChooserActivity to non-exported 2) Update AccessibilityButtonChooserActivity's intent action to be CTS-compliant 3) Switches to correct permission to validate a click of the accessibility button originated from the status bar service Bug: 36866328 Bug: 36976440 Test: Manual / Created app to validate launch protection Change-Id: Ifcd5e8dbbe683dc99bb900a5870a9ba374fbd5d4 --- .../android/view/accessibility/AccessibilityManager.java | 2 +- core/res/AndroidManifest.xml | 3 ++- .../server/accessibility/AccessibilityManagerService.java | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index 35276ccd51725..0783780d0bbba 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -112,7 +112,7 @@ public final class AccessibilityManager { */ @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_CHOOSE_ACCESSIBILITY_BUTTON = - "android.intent.action.CHOOSE_ACCESSIBILITY_BUTTON"; + "com.android.internal.intent.action.CHOOSE_ACCESSIBILITY_BUTTON"; static final Object sInstanceSync = new Object(); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 792225083e8df..c15fbfdeae60d 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -3356,6 +3356,7 @@ - + diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 1968d2e925aa8..9666c9f9f5bc2 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -876,10 +876,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { */ @Override public void notifyAccessibilityButtonClicked() { - if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR) + if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR_SERVICE) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Caller does not hold permission " - + android.Manifest.permission.STATUS_BAR); + + android.Manifest.permission.STATUS_BAR_SERVICE); } synchronized (mLock) { notifyAccessibilityButtonClickedLocked(); @@ -895,10 +895,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { */ @Override public void notifyAccessibilityButtonAvailabilityChanged(boolean available) { - if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR) + if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR_SERVICE) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Caller does not hold permission " - + android.Manifest.permission.STATUS_BAR); + + android.Manifest.permission.STATUS_BAR_SERVICE); } synchronized (mLock) { notifyAccessibilityButtonAvailabilityChangedLocked(available);