Loading apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +6 −4 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import android.os.Binder; 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; Loading Loading @@ -2688,13 +2689,14 @@ public class JobSchedulerService extends com.android.server.SystemService } @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); } /** * <b>For internal system user only!</b> * Returns a list of all currently-executing jobs. Loading core/java/android/os/Binder.java +12 −5 Original line number Diff line number Diff line Loading @@ -932,8 +932,14 @@ public class Binder implements IBinder { } int result = -1; try { result = handleShellCommand(in, out, err, args); try (ParcelFileDescriptor inPfd = ParcelFileDescriptor.dup(in); ParcelFileDescriptor outPfd = ParcelFileDescriptor.dup(out); ParcelFileDescriptor errPfd = ParcelFileDescriptor.dup(err)) { result = handleShellCommand(inPfd, outPfd, errPfd, args); } catch (IOException e) { PrintWriter pw = new FastPrintWriter(new FileOutputStream(err)); pw.println("dup() failed: " + e.getMessage()); pw.flush(); } finally { resultReceiver.send(result, null); } Loading @@ -954,9 +960,10 @@ public class Binder implements IBinder { * @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(); Loading Loading
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +6 −4 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import android.os.Binder; 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; Loading Loading @@ -2688,13 +2689,14 @@ public class JobSchedulerService extends com.android.server.SystemService } @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); } /** * <b>For internal system user only!</b> * Returns a list of all currently-executing jobs. Loading
core/java/android/os/Binder.java +12 −5 Original line number Diff line number Diff line Loading @@ -932,8 +932,14 @@ public class Binder implements IBinder { } int result = -1; try { result = handleShellCommand(in, out, err, args); try (ParcelFileDescriptor inPfd = ParcelFileDescriptor.dup(in); ParcelFileDescriptor outPfd = ParcelFileDescriptor.dup(out); ParcelFileDescriptor errPfd = ParcelFileDescriptor.dup(err)) { result = handleShellCommand(inPfd, outPfd, errPfd, args); } catch (IOException e) { PrintWriter pw = new FastPrintWriter(new FileOutputStream(err)); pw.println("dup() failed: " + e.getMessage()); pw.flush(); } finally { resultReceiver.send(result, null); } Loading @@ -954,9 +960,10 @@ public class Binder implements IBinder { * @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(); Loading