diff options
| author | 2019-07-13 09:39:32 -0700 | |
|---|---|---|
| committer | 2019-07-13 09:39:32 -0700 | |
| commit | eca7403bcfa209e7cf7879be651714591b233c7e (patch) | |
| tree | 46c370e8fdf4a9019a60cc0daf26b4add82940f2 | |
| parent | 1eafb6fd88b37e466b3d9cc42ff72a13a84a905f (diff) | |
| parent | f4b0318d6f9ff9078fc5fda5be7046105bca3fb1 (diff) | |
Merge "Add a new API applyPayloadFd() of UpdateEngine"
am: f4b0318d6f
Change-Id: I771090d681ca565392a9aaeb8ecd60026b572ae3
| -rw-r--r-- | api/system-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/os/UpdateEngine.java | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 7cf2bc3c5d82..e5ea2c859bb4 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5471,6 +5471,7 @@ package android.os { public class UpdateEngine { ctor public UpdateEngine(); method public void applyPayload(String, long, long, String[]); + method public void applyPayload(java.io.FileDescriptor, long, long, String[]); method public boolean bind(android.os.UpdateEngineCallback, android.os.Handler); method public boolean bind(android.os.UpdateEngineCallback); method public void cancel(); 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 |