Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2732,7 +2732,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err, String[] args, ShellCallback callback, ResultReceiver resultReceiver) { new AccessibilityShellCommand(this).exec(this, in, out, err, args, new AccessibilityShellCommand(this, mSystemActionPerformer).exec(this, in, out, err, args, callback, resultReceiver); } Loading services/accessibility/java/com/android/server/accessibility/AccessibilityShellCommand.java +27 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.server.accessibility; import android.annotation.NonNull; import android.app.ActivityManager; import android.os.Binder; import android.os.Process; import android.os.ShellCommand; import android.os.UserHandle; Loading @@ -28,9 +30,12 @@ import java.io.PrintWriter; */ final class AccessibilityShellCommand extends ShellCommand { final @NonNull AccessibilityManagerService mService; final @NonNull SystemActionPerformer mSystemActionPerformer; AccessibilityShellCommand(@NonNull AccessibilityManagerService service) { AccessibilityShellCommand(@NonNull AccessibilityManagerService service, @NonNull SystemActionPerformer systemActionPerformer) { mService = service; mSystemActionPerformer = systemActionPerformer; } @Override Loading @@ -45,6 +50,9 @@ final class AccessibilityShellCommand extends ShellCommand { case "set-bind-instant-service-allowed": { return runSetBindInstantServiceAllowed(); } case "call-system-action": { return runCallSystemAction(); } } return -1; } Loading Loading @@ -74,6 +82,22 @@ final class AccessibilityShellCommand extends ShellCommand { return 0; } private int runCallSystemAction() { final int callingUid = Binder.getCallingUid(); if (callingUid != Process.ROOT_UID && callingUid != Process.SYSTEM_UID && callingUid != Process.SHELL_UID) { return -1; } final String option = getNextArg(); if (option != null) { int actionId = Integer.parseInt(option); mSystemActionPerformer.performSystemAction(actionId); return 0; } return -1; } private Integer parseUserId() { final String option = getNextOption(); if (option != null) { Loading @@ -97,5 +121,7 @@ final class AccessibilityShellCommand extends ShellCommand { pw.println(" Set whether binding to services provided by instant apps is allowed."); pw.println(" get-bind-instant-service-allowed [--user <USER_ID>]"); pw.println(" Get whether binding to services provided by instant apps is allowed."); pw.println(" call-system-action <ACTION_ID>"); pw.println(" Calls the system action with the given action id."); } } No newline at end of file services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java +1 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,7 @@ public class SystemActionPerformer { sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HEADSETHOOK); return true; default: Slog.e(TAG, "Invalid action id: " + actionId); return false; } } finally { Loading Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2732,7 +2732,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err, String[] args, ShellCallback callback, ResultReceiver resultReceiver) { new AccessibilityShellCommand(this).exec(this, in, out, err, args, new AccessibilityShellCommand(this, mSystemActionPerformer).exec(this, in, out, err, args, callback, resultReceiver); } Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityShellCommand.java +27 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.server.accessibility; import android.annotation.NonNull; import android.app.ActivityManager; import android.os.Binder; import android.os.Process; import android.os.ShellCommand; import android.os.UserHandle; Loading @@ -28,9 +30,12 @@ import java.io.PrintWriter; */ final class AccessibilityShellCommand extends ShellCommand { final @NonNull AccessibilityManagerService mService; final @NonNull SystemActionPerformer mSystemActionPerformer; AccessibilityShellCommand(@NonNull AccessibilityManagerService service) { AccessibilityShellCommand(@NonNull AccessibilityManagerService service, @NonNull SystemActionPerformer systemActionPerformer) { mService = service; mSystemActionPerformer = systemActionPerformer; } @Override Loading @@ -45,6 +50,9 @@ final class AccessibilityShellCommand extends ShellCommand { case "set-bind-instant-service-allowed": { return runSetBindInstantServiceAllowed(); } case "call-system-action": { return runCallSystemAction(); } } return -1; } Loading Loading @@ -74,6 +82,22 @@ final class AccessibilityShellCommand extends ShellCommand { return 0; } private int runCallSystemAction() { final int callingUid = Binder.getCallingUid(); if (callingUid != Process.ROOT_UID && callingUid != Process.SYSTEM_UID && callingUid != Process.SHELL_UID) { return -1; } final String option = getNextArg(); if (option != null) { int actionId = Integer.parseInt(option); mSystemActionPerformer.performSystemAction(actionId); return 0; } return -1; } private Integer parseUserId() { final String option = getNextOption(); if (option != null) { Loading @@ -97,5 +121,7 @@ final class AccessibilityShellCommand extends ShellCommand { pw.println(" Set whether binding to services provided by instant apps is allowed."); pw.println(" get-bind-instant-service-allowed [--user <USER_ID>]"); pw.println(" Get whether binding to services provided by instant apps is allowed."); pw.println(" call-system-action <ACTION_ID>"); pw.println(" Calls the system action with the given action id."); } } No newline at end of file
services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java +1 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,7 @@ public class SystemActionPerformer { sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HEADSETHOOK); return true; default: Slog.e(TAG, "Invalid action id: " + actionId); return false; } } finally { Loading