diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java index c928a18c4be33..44e24b14e1586 100644 --- a/core/java/android/content/pm/PackageInstaller.java +++ b/core/java/android/content/pm/PackageInstaller.java @@ -623,7 +623,7 @@ public class PackageInstaller { try { final ParcelFileDescriptor clientSocket = mSession.openWrite(name, offsetBytes, lengthBytes); - return new FileBridge.FileBridgeOutputStream(clientSocket.getFileDescriptor()); + return new FileBridge.FileBridgeOutputStream(clientSocket); } catch (RuntimeException e) { ExceptionUtils.maybeUnwrapIOException(e); throw e; diff --git a/core/java/android/os/FileBridge.java b/core/java/android/os/FileBridge.java index bf8d15c6209b4..37842252a9ad6 100644 --- a/core/java/android/os/FileBridge.java +++ b/core/java/android/os/FileBridge.java @@ -131,11 +131,13 @@ public class FileBridge extends Thread { } public static class FileBridgeOutputStream extends OutputStream { + private final ParcelFileDescriptor mClientPfd; private final FileDescriptor mClient; private final byte[] mTemp = new byte[MSG_LENGTH]; - public FileBridgeOutputStream(FileDescriptor client) { - mClient = client; + public FileBridgeOutputStream(ParcelFileDescriptor clientPfd) { + mClientPfd = clientPfd; + mClient = clientPfd.getFileDescriptor(); } @Override