Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ad432e5 authored by Jiakai Zhang's avatar Jiakai Zhang
Browse files

Use `ParcelFileDescriptor` when calling ART commands.

This change is required by API guidelines.

Bug: 235330409
Test: adb shell pm art get-optimization-status com.google.android.youtube
Change-Id: I857ba31c7ba96df8641e3c7927e8a7eb1e7af1d0
parent 81a01e9d
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -3414,9 +3414,14 @@ class PackageManagerShellCommand extends ShellCommand {
        // Remove the first arg "art" and forward to ART module.
        // Remove the first arg "art" and forward to ART module.
        String[] args = getAllArgs();
        String[] args = getAllArgs();
        args = Arrays.copyOfRange(args, 1, args.length);
        args = Arrays.copyOfRange(args, 1, args.length);
        try (var in = ParcelFileDescriptor.dup(getInFileDescriptor());
                var out = ParcelFileDescriptor.dup(getOutFileDescriptor());
                var err = ParcelFileDescriptor.dup(getErrFileDescriptor())) {
            return LocalManagerRegistry.getManagerOrThrow(ArtManagerLocal.class)
            return LocalManagerRegistry.getManagerOrThrow(ArtManagerLocal.class)
                .handleShellCommand(getTarget(), getInFileDescriptor(), getOutFileDescriptor(),
                    .handleShellCommand(getTarget(), in, out, err, args);
                        getErrFileDescriptor(), args);
        } catch (IOException e) {
            throw new IllegalStateException(e);
        }
    }
    }


    private static String checkAbiArgument(String abi) {
    private static String checkAbiArgument(String abi) {