Change argument types from FD to PFD
Bug: 142751512
Test: "adb shell cmd jobschduler help"
Test: "adb shell cmd activity help"
Change-Id: Ic35588f7c9fcaa06e3cf4feeedf54b3a0835ad44
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
index 593e494..4e96f5e 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
@@ -57,6 +57,7 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+import android.os.ParcelFileDescriptor;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -2688,10 +2689,12 @@
}
@Override
- protected int handleShellCommand(@NonNull FileDescriptor in, @NonNull FileDescriptor out,
- @NonNull FileDescriptor err, @NonNull String[] args) {
+ protected int handleShellCommand(@NonNull ParcelFileDescriptor in,
+ @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err,
+ @NonNull String[] args) {
return (new JobSchedulerShellCommand(JobSchedulerService.this)).exec(
- this, in, out, err, args);
+ this, in.getFileDescriptor(), out.getFileDescriptor(), err.getFileDescriptor(),
+ args);
}
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index a856975..fda1539 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -933,7 +933,8 @@
int result = -1;
try {
- result = handleShellCommand(in, out, err, args);
+ result = handleShellCommand(new ParcelFileDescriptor(in),
+ new ParcelFileDescriptor(out), new ParcelFileDescriptor(err), args);
} finally {
resultReceiver.send(result, null);
}
@@ -954,9 +955,10 @@
* @hide
*/
// @SystemApi TODO Make it a system API.
- protected int handleShellCommand(@NonNull FileDescriptor in, @NonNull FileDescriptor out,
- @NonNull FileDescriptor err, @NonNull String[] args) {
- FileOutputStream ferr = new FileOutputStream(err);
+ protected int handleShellCommand(@NonNull ParcelFileDescriptor in,
+ @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err,
+ @NonNull String[] args) {
+ FileOutputStream ferr = new FileOutputStream(err.getFileDescriptor());
PrintWriter pw = new FastPrintWriter(ferr);
pw.println("No shell command implementation.");
pw.flush();