diff options
author | Guojing Yuan <guojing@google.com> | 2023-12-14 19:30:04 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-05-02 10:44:57 +0000 |
commit | 783c1ea6e7fc4a22b37e4ae87ccbf465fb4939b9 (patch) | |
tree | e3e0e96122b6458c92fd9e24378a0209a9ab3b73 | |
parent | 01ae6dca58d6d7cfeae984b80511f62783317650 (diff) |
[CDM][CMD] Check permissions for CDM shell commands
Override handleShellCommand instead of onShellCommand because
Binder.onShellCommand checks the necessary permissions of the caller.
Bug: 313428840
Test: manually tested CDM shell commands
(cherry picked from commit 1761a0fee9c2cd9787bbb7fbdbe30b4c2b03396e)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:54c968aaa66e9364bc0380c9a57af5c6844759aa)
Merged-In: I5539b3594feb5544c458c0fd1061b51a0a808900
Change-Id: I5539b3594feb5544c458c0fd1061b51a0a808900
-rw-r--r-- | services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 5c36a6b07392..2194a0863238 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -83,9 +83,7 @@ import android.os.ParcelFileDescriptor; import android.os.PowerWhitelistManager; import android.os.RemoteCallbackList; import android.os.RemoteException; -import android.os.ResultReceiver; import android.os.ServiceManager; -import android.os.ShellCallback; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; @@ -931,13 +929,14 @@ public class CompanionDeviceManagerService extends SystemService { } @Override - public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err, - String[] args, ShellCallback callback, ResultReceiver resultReceiver) - throws RemoteException { - new CompanionDeviceShellCommand(CompanionDeviceManagerService.this, mAssociationStore, - mDevicePresenceMonitor, mTransportManager, mSystemDataTransferRequestStore, - mAssociationRequestsProcessor) - .exec(this, in, out, err, args, callback, resultReceiver); + public int handleShellCommand(@NonNull ParcelFileDescriptor in, + @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err, + @NonNull String[] args) { + return new CompanionDeviceShellCommand(CompanionDeviceManagerService.this, + mAssociationStore, mDevicePresenceMonitor, mTransportManager, + mSystemDataTransferRequestStore, mAssociationRequestsProcessor) + .exec(this, in.getFileDescriptor(), out.getFileDescriptor(), + err.getFileDescriptor(), args); } @Override |