diff --git a/api/system-current.txt b/api/system-current.txt index 3dbb333ef7894..71df2726919cc 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3806,6 +3806,7 @@ package android.os { method public void resume(); method public void suspend(); method public boolean unbind(); + method public boolean verifyPayloadMetadata(java.lang.String); } public static final class UpdateEngine.ErrorCodeConstants { diff --git a/core/java/android/os/UpdateEngine.java b/core/java/android/os/UpdateEngine.java index c6149bed9d6da..24c9c9177360d 100644 --- a/core/java/android/os/UpdateEngine.java +++ b/core/java/android/os/UpdateEngine.java @@ -271,4 +271,22 @@ public class UpdateEngine { } } } + + /** + * Verifies that a payload associated with the given payload metadata + * {@code payloadMetadataFilename} can be safely applied to ths device. + * Returns {@code true} if the update can successfully be applied and + * returns {@code false} otherwise. + * + * @param payloadMetadataFilename the location of the metadata without the + * {@code file://} prefix. + */ + @SystemApi + public boolean verifyPayloadMetadata(String payloadMetadataFilename) { + try { + return mUpdateEngine.verifyPayloadApplicable(payloadMetadataFilename); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } }