Loading services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +5 −10 Original line number Original line Diff line number Diff line Loading @@ -457,13 +457,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfosByViewId(accessibilityNodeId, connection.getRemote().findAccessibilityNodeInfosByViewId(accessibilityNodeId, viewIdResName, partialInteractiveRegion, interactionId, callback, mFetchFlags, viewIdResName, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -514,13 +513,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfosByText(accessibilityNodeId, connection.getRemote().findAccessibilityNodeInfosByText(accessibilityNodeId, text, partialInteractiveRegion, interactionId, callback, mFetchFlags, text, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -571,13 +569,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfoByAccessibilityId( connection.getRemote().findAccessibilityNodeInfoByAccessibilityId( accessibilityNodeId, partialInteractiveRegion, interactionId, callback, accessibilityNodeId, partialInteractiveRegion, interactionId, callback, mFetchFlags | flags, interrogatingPid, interrogatingTid, spec, arguments); mFetchFlags | flags, interrogatingPid, interrogatingTid, spec, arguments); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -628,13 +625,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findFocus(accessibilityNodeId, focusType, connection.getRemote().findFocus(accessibilityNodeId, focusType, partialInteractiveRegion, interactionId, callback, mFetchFlags, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -684,13 +680,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().focusSearch(accessibilityNodeId, direction, connection.getRemote().focusSearch(accessibilityNodeId, direction, partialInteractiveRegion, interactionId, callback, mFetchFlags, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +44 −33 Original line number Original line Diff line number Diff line Loading @@ -348,11 +348,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } boolean getBindInstantServiceAllowed(int userId) { boolean getBindInstantServiceAllowed(int userId) { return mSecurityPolicy.getBindInstantServiceAllowed(userId); final UserState userState = getUserState(userId); if (userState == null) return false; return userState.getBindInstantServiceAllowed(); } } void setBindInstantServiceAllowed(int userId, boolean allowed) { void setBindInstantServiceAllowed(int userId, boolean allowed) { mSecurityPolicy.setBindInstantServiceAllowed(userId, allowed); UserState userState; synchronized (mLock) { userState = getUserState(userId); if (userState == null) { if (!allowed) { return; } userState = new UserState(userId); mUserStates.put(userId, userState); } } userState.setBindInstantServiceAllowed(allowed); } } private void registerBroadcastReceivers() { private void registerBroadcastReceivers() { Loading Loading @@ -1316,7 +1329,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; if (userState.mBindInstantServiceAllowed) { if (userState.getBindInstantServiceAllowed()) { flags |= PackageManager.MATCH_INSTANT; flags |= PackageManager.MATCH_INSTANT; } } Loading Loading @@ -3158,9 +3171,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return packageNames[0]; return packageNames[0]; } } String[] computeValidReportedPackages(int callingUid, /** String targetPackage, int targetUid) { * Get a list of package names an app may report, including any widget packages it owns. if (UserHandle.getAppId(callingUid) == Process.SYSTEM_UID) { * * @param targetPackage The known valid target package * @param targetUid The uid of the target app * @return */ String[] computeValidReportedPackages(String targetPackage, int targetUid) { if (UserHandle.getAppId(targetUid) == Process.SYSTEM_UID) { // Empty array means any package is Okay // Empty array means any package is Okay return EmptyArray.STRING; return EmptyArray.STRING; } } Loading @@ -3184,32 +3203,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return uidPackages; return uidPackages; } } private boolean getBindInstantServiceAllowed(int userId) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "getBindInstantServiceAllowed"); UserState state = mUserStates.get(userId); return (state != null) && state.mBindInstantServiceAllowed; } private void setBindInstantServiceAllowed(int userId, boolean allowed) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "setBindInstantServiceAllowed"); UserState state = mUserStates.get(userId); if (state == null) { if (!allowed) { return; } state = new UserState(userId); mUserStates.put(userId, state); } if (state.mBindInstantServiceAllowed != allowed) { state.mBindInstantServiceAllowed = allowed; onUserStateChangedLocked(state); } } public void clearWindowsLocked() { public void clearWindowsLocked() { List<WindowInfo> windows = Collections.emptyList(); List<WindowInfo> windows = Collections.emptyList(); final int activeWindowId = mActiveWindowId; final int activeWindowId = mActiveWindowId; Loading Loading @@ -3819,7 +3812,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub public boolean mUserMinimumUiTimeoutEnabled; public boolean mUserMinimumUiTimeoutEnabled; public int mUserMinimumUiTimeout; public int mUserMinimumUiTimeout; public boolean mBindInstantServiceAllowed; private boolean mBindInstantServiceAllowed; public UserState(int userId) { public UserState(int userId) { mUserId = userId; mUserId = userId; Loading Loading @@ -4051,6 +4044,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, 0) Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, 0) & SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE) != 0; & SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE) != 0; } } public boolean getBindInstantServiceAllowed() { synchronized (mLock) { return mBindInstantServiceAllowed; } } public void setBindInstantServiceAllowed(boolean allowed) { synchronized (mLock) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "setBindInstantServiceAllowed"); if (allowed) { mBindInstantServiceAllowed = allowed; onUserStateChangedLocked(this); } } } } } private final class AccessibilityContentObserver extends ContentObserver { private final class AccessibilityContentObserver extends ContentObserver { Loading services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -92,7 +92,7 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect final long identity = Binder.clearCallingIdentity(); final long identity = Binder.clearCallingIdentity(); try { try { int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE; int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE; if (userState.mBindInstantServiceAllowed) { if (userState.getBindInstantServiceAllowed()) { flags |= Context.BIND_ALLOW_INSTANT; flags |= Context.BIND_ALLOW_INSTANT; } } if (mService == null && mContext.bindServiceAsUser( if (mService == null && mContext.bindServiceAsUser( Loading Loading
services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +5 −10 Original line number Original line Diff line number Diff line Loading @@ -457,13 +457,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfosByViewId(accessibilityNodeId, connection.getRemote().findAccessibilityNodeInfosByViewId(accessibilityNodeId, viewIdResName, partialInteractiveRegion, interactionId, callback, mFetchFlags, viewIdResName, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -514,13 +513,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfosByText(accessibilityNodeId, connection.getRemote().findAccessibilityNodeInfosByText(accessibilityNodeId, text, partialInteractiveRegion, interactionId, callback, mFetchFlags, text, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -571,13 +569,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findAccessibilityNodeInfoByAccessibilityId( connection.getRemote().findAccessibilityNodeInfoByAccessibilityId( accessibilityNodeId, partialInteractiveRegion, interactionId, callback, accessibilityNodeId, partialInteractiveRegion, interactionId, callback, mFetchFlags | flags, interrogatingPid, interrogatingTid, spec, arguments); mFetchFlags | flags, interrogatingPid, interrogatingTid, spec, arguments); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -628,13 +625,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().findFocus(accessibilityNodeId, focusType, connection.getRemote().findFocus(accessibilityNodeId, focusType, partialInteractiveRegion, interactionId, callback, mFetchFlags, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading Loading @@ -684,13 +680,12 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ final int interrogatingPid = Binder.getCallingPid(); final int interrogatingPid = Binder.getCallingPid(); callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, callback = mSystemSupport.replaceCallbackIfNeeded(callback, resolvedWindowId, interactionId, interrogatingPid, interrogatingTid); interrogatingPid, interrogatingTid); final int callingUid = Binder.getCallingUid(); final long identityToken = Binder.clearCallingIdentity(); final long identityToken = Binder.clearCallingIdentity(); try { try { connection.getRemote().focusSearch(accessibilityNodeId, direction, connection.getRemote().focusSearch(accessibilityNodeId, direction, partialInteractiveRegion, interactionId, callback, mFetchFlags, partialInteractiveRegion, interactionId, callback, mFetchFlags, interrogatingPid, interrogatingTid, spec); interrogatingPid, interrogatingTid, spec); return mSecurityPolicy.computeValidReportedPackages(callingUid, return mSecurityPolicy.computeValidReportedPackages( connection.getPackageName(), connection.getUid()); connection.getPackageName(), connection.getUid()); } catch (RemoteException re) { } catch (RemoteException re) { if (DEBUG) { if (DEBUG) { Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +44 −33 Original line number Original line Diff line number Diff line Loading @@ -348,11 +348,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } boolean getBindInstantServiceAllowed(int userId) { boolean getBindInstantServiceAllowed(int userId) { return mSecurityPolicy.getBindInstantServiceAllowed(userId); final UserState userState = getUserState(userId); if (userState == null) return false; return userState.getBindInstantServiceAllowed(); } } void setBindInstantServiceAllowed(int userId, boolean allowed) { void setBindInstantServiceAllowed(int userId, boolean allowed) { mSecurityPolicy.setBindInstantServiceAllowed(userId, allowed); UserState userState; synchronized (mLock) { userState = getUserState(userId); if (userState == null) { if (!allowed) { return; } userState = new UserState(userId); mUserStates.put(userId, userState); } } userState.setBindInstantServiceAllowed(allowed); } } private void registerBroadcastReceivers() { private void registerBroadcastReceivers() { Loading Loading @@ -1316,7 +1329,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; | PackageManager.MATCH_DIRECT_BOOT_UNAWARE; if (userState.mBindInstantServiceAllowed) { if (userState.getBindInstantServiceAllowed()) { flags |= PackageManager.MATCH_INSTANT; flags |= PackageManager.MATCH_INSTANT; } } Loading Loading @@ -3158,9 +3171,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return packageNames[0]; return packageNames[0]; } } String[] computeValidReportedPackages(int callingUid, /** String targetPackage, int targetUid) { * Get a list of package names an app may report, including any widget packages it owns. if (UserHandle.getAppId(callingUid) == Process.SYSTEM_UID) { * * @param targetPackage The known valid target package * @param targetUid The uid of the target app * @return */ String[] computeValidReportedPackages(String targetPackage, int targetUid) { if (UserHandle.getAppId(targetUid) == Process.SYSTEM_UID) { // Empty array means any package is Okay // Empty array means any package is Okay return EmptyArray.STRING; return EmptyArray.STRING; } } Loading @@ -3184,32 +3203,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return uidPackages; return uidPackages; } } private boolean getBindInstantServiceAllowed(int userId) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "getBindInstantServiceAllowed"); UserState state = mUserStates.get(userId); return (state != null) && state.mBindInstantServiceAllowed; } private void setBindInstantServiceAllowed(int userId, boolean allowed) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "setBindInstantServiceAllowed"); UserState state = mUserStates.get(userId); if (state == null) { if (!allowed) { return; } state = new UserState(userId); mUserStates.put(userId, state); } if (state.mBindInstantServiceAllowed != allowed) { state.mBindInstantServiceAllowed = allowed; onUserStateChangedLocked(state); } } public void clearWindowsLocked() { public void clearWindowsLocked() { List<WindowInfo> windows = Collections.emptyList(); List<WindowInfo> windows = Collections.emptyList(); final int activeWindowId = mActiveWindowId; final int activeWindowId = mActiveWindowId; Loading Loading @@ -3819,7 +3812,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub public boolean mUserMinimumUiTimeoutEnabled; public boolean mUserMinimumUiTimeoutEnabled; public int mUserMinimumUiTimeout; public int mUserMinimumUiTimeout; public boolean mBindInstantServiceAllowed; private boolean mBindInstantServiceAllowed; public UserState(int userId) { public UserState(int userId) { mUserId = userId; mUserId = userId; Loading Loading @@ -4051,6 +4044,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, 0) Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, 0) & SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE) != 0; & SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE) != 0; } } public boolean getBindInstantServiceAllowed() { synchronized (mLock) { return mBindInstantServiceAllowed; } } public void setBindInstantServiceAllowed(boolean allowed) { synchronized (mLock) { mContext.enforceCallingOrSelfPermission( Manifest.permission.MANAGE_BIND_INSTANT_SERVICE, "setBindInstantServiceAllowed"); if (allowed) { mBindInstantServiceAllowed = allowed; onUserStateChangedLocked(this); } } } } } private final class AccessibilityContentObserver extends ContentObserver { private final class AccessibilityContentObserver extends ContentObserver { Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -92,7 +92,7 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect final long identity = Binder.clearCallingIdentity(); final long identity = Binder.clearCallingIdentity(); try { try { int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE; int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE; if (userState.mBindInstantServiceAllowed) { if (userState.getBindInstantServiceAllowed()) { flags |= Context.BIND_ALLOW_INSTANT; flags |= Context.BIND_ALLOW_INSTANT; } } if (mService == null && mContext.bindServiceAsUser( if (mService == null && mContext.bindServiceAsUser( Loading