summaryrefslogtreecommitdiff
path: root/core/java/android/os/UpdateEngine.java
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2019-07-13 09:39:32 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-07-13 09:39:32 -0700
commiteca7403bcfa209e7cf7879be651714591b233c7e (patch)
tree46c370e8fdf4a9019a60cc0daf26b4add82940f2 /core/java/android/os/UpdateEngine.java
parent1eafb6fd88b37e466b3d9cc42ff72a13a84a905f (diff)
parentf4b0318d6f9ff9078fc5fda5be7046105bca3fb1 (diff)
Merge "Add a new API applyPayloadFd() of UpdateEngine"
am: f4b0318d6f Change-Id: I771090d681ca565392a9aaeb8ecd60026b572ae3
Diffstat (limited to 'core/java/android/os/UpdateEngine.java')
-rw-r--r--core/java/android/os/UpdateEngine.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/os/UpdateEngine.java b/core/java/android/os/UpdateEngine.java
index 5cf3b970c00c..29af17afc872 100644
--- a/core/java/android/os/UpdateEngine.java
+++ b/core/java/android/os/UpdateEngine.java
@@ -21,6 +21,8 @@ import android.os.IUpdateEngine;
import android.os.IUpdateEngineCallback;
import android.os.RemoteException;
+import java.io.FileDescriptor;
+
/**
* UpdateEngine handles calls to the update engine which takes care of A/B OTA
* updates. It wraps up the update engine Binder APIs and exposes them as
@@ -312,6 +314,22 @@ public class UpdateEngine {
}
/**
+ * Applies the payload passed as file descriptor {@code fd} instead of
+ * using the {@code file://} scheme.
+ *
+ * <p>See {@link #applyPayload(String)} for {@code offset}, {@code size} and
+ * {@code headerKeyValuePairs} parameters.
+ */
+ public void applyPayload(FileDescriptor fd, long offset, long size,
+ String[] headerKeyValuePairs) {
+ try {
+ mUpdateEngine.applyPayloadFd(fd, offset, size, headerKeyValuePairs);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Permanently cancels an in-progress update.
*
* <p>See {@link #resetStatus} to undo a finshed update (only available