summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Guojing Yuan <guojing@google.com> 2023-12-14 19:30:04 +0000
committer Guojing Yuan <guojing@google.com> 2024-04-06 04:21:52 +0000
commit8d008c61451dba86aa9f14c6bcd661db2cea4856 (patch)
tree0ef43c39c514204106492bd165d3d0673bc1da57
parent944ea959ab8464c39a8f6a4fc391fb6953e1df89 (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 Change-Id: I5539b3594feb5544c458c0fd1061b51a0a808900 Merged-In: I5539b3594feb5544c458c0fd1061b51a0a808900 (cherry picked from commit 1761a0fee9c2cd9787bbb7fbdbe30b4c2b03396e)
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index eccfe2ecb0b2..f31ba03e3b5f 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -86,12 +86,11 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
+import android.os.ParcelFileDescriptor;
import android.os.PowerWhitelistManager;
import android.os.Process;
import android.os.RemoteException;
-import android.os.ResultReceiver;
import android.os.ServiceManager;
-import android.os.ShellCallback;
import android.os.ShellCommand;
import android.os.UserHandle;
import android.os.UserManager;
@@ -699,10 +698,12 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
}
@Override
- public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
- String[] args, ShellCallback callback, ResultReceiver resultReceiver)
- throws RemoteException {
- new ShellCmd().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 ShellCmd()
+ .exec(this, in.getFileDescriptor(), out.getFileDescriptor(),
+ err.getFileDescriptor(), args);
}
@Override